From b4c64b294e484f24f8ee5aabcdd6f0a22aee7104 Mon Sep 17 00:00:00 2001 From: lancedb automation Date: Sun, 27 Sep 2026 18:44:50 +0000 Subject: [PATCH] chore: update lance dependency to v13.0.0-beta.17 --- Cargo.lock | 91 +++++++++++++++++--------------- Cargo.toml | 28 +++++----- java/pom.xml | 2 +- nodejs/src/query.rs | 1 + python/src/query.rs | 3 ++ rust/lancedb/src/remote/table.rs | 49 +++++++++++++++++ 6 files changed, 115 insertions(+), 59 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ed0fad6f3..b63e4ad74 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3588,8 +3588,8 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "fsst" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arrow-array", "rand 0.9.5", @@ -5143,8 +5143,8 @@ checksum = "e037a2e1d8d5fdbd49b16a4ea09d5d6401c1f29eca5ff29d03d3824dba16256a" [[package]] name = "lance" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arc-swap", "arrow", @@ -5161,6 +5161,7 @@ dependencies = [ "async-trait", "async_cell", "aws-sdk-dynamodb", + "blake3", "byteorder", "bytes", "chrono", @@ -5216,8 +5217,8 @@ dependencies = [ [[package]] name = "lance-arrow" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arrow-array", "arrow-buffer", @@ -5239,7 +5240,7 @@ dependencies = [ [[package]] name = "lance-arrow-scalar" version = "58.0.0" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arrow-array", "arrow-buffer", @@ -5253,7 +5254,7 @@ dependencies = [ [[package]] name = "lance-arrow-stats" version = "58.0.0" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arrow-array", "arrow-schema", @@ -5262,8 +5263,8 @@ dependencies = [ [[package]] name = "lance-bitpacking" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arrayref", "crunchy", @@ -5273,8 +5274,8 @@ dependencies = [ [[package]] name = "lance-core" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arrow-array", "arrow-buffer", @@ -5311,8 +5312,8 @@ dependencies = [ [[package]] name = "lance-datafusion" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arrow", "arrow-array", @@ -5343,8 +5344,8 @@ dependencies = [ [[package]] name = "lance-datagen" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arrow", "arrow-array", @@ -5361,8 +5362,8 @@ dependencies = [ [[package]] name = "lance-derive" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "proc-macro2", "quote", @@ -5371,8 +5372,8 @@ dependencies = [ [[package]] name = "lance-encoding" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arrow-arith", "arrow-array", @@ -5405,8 +5406,8 @@ dependencies = [ [[package]] name = "lance-file" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arrow-arith", "arrow-array", @@ -5438,8 +5439,8 @@ dependencies = [ [[package]] name = "lance-geo" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "datafusion", "geo-traits", @@ -5453,8 +5454,8 @@ dependencies = [ [[package]] name = "lance-index" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arc-swap", "arrow", @@ -5524,8 +5525,8 @@ dependencies = [ [[package]] name = "lance-index-core" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arrow-array", "arrow-schema", @@ -5543,12 +5544,13 @@ dependencies = [ "roaring", "serde", "serde_json", + "tokio", ] [[package]] name = "lance-io" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arrow", "arrow-array", @@ -5590,8 +5592,8 @@ dependencies = [ [[package]] name = "lance-linalg" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arrow-array", "arrow-schema", @@ -5605,8 +5607,8 @@ dependencies = [ [[package]] name = "lance-namespace" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arrow", "async-trait", @@ -5620,9 +5622,10 @@ dependencies = [ [[package]] name = "lance-namespace-impls" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ + "arc-swap", "arrow", "arrow-ipc", "arrow-schema", @@ -5674,8 +5677,8 @@ dependencies = [ [[package]] name = "lance-select" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arrow-array", "arrow-buffer", @@ -5689,8 +5692,8 @@ dependencies = [ [[package]] name = "lance-table" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arrow", "arrow-array", @@ -5730,8 +5733,8 @@ dependencies = [ [[package]] name = "lance-testing" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "arrow-array", "arrow-schema", @@ -5744,8 +5747,8 @@ dependencies = [ [[package]] name = "lance-tokenizer" -version = "13.0.0-beta.14" -source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.14#b80ac1d9f3c24b47bd8e297d03053ea35d216a9f" +version = "13.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v13.0.0-beta.17#ebee40db5f7772b395f69c92fea013d05faf9872" dependencies = [ "frostem", "icu_segmenter", diff --git a/Cargo.toml b/Cargo.toml index 15770bebc..2c5c00b09 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,20 +13,20 @@ categories = ["database-implementations"] rust-version = "1.91.0" [workspace.dependencies] -lance = { "version" = "=13.0.0-beta.14", default-features = false, "tag" = "v13.0.0-beta.14", "git" = "https://github.com/lance-format/lance.git" } -lance-core = { "version" = "=13.0.0-beta.14", "tag" = "v13.0.0-beta.14", "git" = "https://github.com/lance-format/lance.git" } -lance-datagen = { "version" = "=13.0.0-beta.14", "tag" = "v13.0.0-beta.14", "git" = "https://github.com/lance-format/lance.git" } -lance-file = { "version" = "=13.0.0-beta.14", "tag" = "v13.0.0-beta.14", "git" = "https://github.com/lance-format/lance.git" } -lance-io = { "version" = "=13.0.0-beta.14", default-features = false, "tag" = "v13.0.0-beta.14", "git" = "https://github.com/lance-format/lance.git" } -lance-index = { "version" = "=13.0.0-beta.14", "tag" = "v13.0.0-beta.14", "git" = "https://github.com/lance-format/lance.git" } -lance-linalg = { "version" = "=13.0.0-beta.14", "tag" = "v13.0.0-beta.14", "git" = "https://github.com/lance-format/lance.git" } -lance-namespace = { "version" = "=13.0.0-beta.14", "tag" = "v13.0.0-beta.14", "git" = "https://github.com/lance-format/lance.git" } -lance-namespace-impls = { "version" = "=13.0.0-beta.14", default-features = false, "tag" = "v13.0.0-beta.14", "git" = "https://github.com/lance-format/lance.git" } -lance-table = { "version" = "=13.0.0-beta.14", "tag" = "v13.0.0-beta.14", "git" = "https://github.com/lance-format/lance.git" } -lance-testing = { "version" = "=13.0.0-beta.14", "tag" = "v13.0.0-beta.14", "git" = "https://github.com/lance-format/lance.git" } -lance-datafusion = { "version" = "=13.0.0-beta.14", "tag" = "v13.0.0-beta.14", "git" = "https://github.com/lance-format/lance.git" } -lance-encoding = { "version" = "=13.0.0-beta.14", "tag" = "v13.0.0-beta.14", "git" = "https://github.com/lance-format/lance.git" } -lance-arrow = { "version" = "=13.0.0-beta.14", "tag" = "v13.0.0-beta.14", "git" = "https://github.com/lance-format/lance.git" } +lance = { "version" = "=13.0.0-beta.17", default-features = false, "tag" = "v13.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-core = { "version" = "=13.0.0-beta.17", "tag" = "v13.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-datagen = { "version" = "=13.0.0-beta.17", "tag" = "v13.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-file = { "version" = "=13.0.0-beta.17", "tag" = "v13.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-io = { "version" = "=13.0.0-beta.17", default-features = false, "tag" = "v13.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-index = { "version" = "=13.0.0-beta.17", "tag" = "v13.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-linalg = { "version" = "=13.0.0-beta.17", "tag" = "v13.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-namespace = { "version" = "=13.0.0-beta.17", "tag" = "v13.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-namespace-impls = { "version" = "=13.0.0-beta.17", default-features = false, "tag" = "v13.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-table = { "version" = "=13.0.0-beta.17", "tag" = "v13.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-testing = { "version" = "=13.0.0-beta.17", "tag" = "v13.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-datafusion = { "version" = "=13.0.0-beta.17", "tag" = "v13.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-encoding = { "version" = "=13.0.0-beta.17", "tag" = "v13.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-arrow = { "version" = "=13.0.0-beta.17", "tag" = "v13.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } lancedb = { path = "rust/lancedb", default-features = false } ahash = "0.8" # Note that this one does not include pyarrow diff --git a/java/pom.xml b/java/pom.xml index 752dacefd..68a5732e9 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -28,7 +28,7 @@ UTF-8 15.0.0 - 13.0.0-beta.14 + 13.0.0-beta.17 false 2.30.0 1.7 diff --git a/nodejs/src/query.rs b/nodejs/src/query.rs index f9fe91d35..f542fe856 100644 --- a/nodejs/src/query.rs +++ b/nodejs/src/query.rs @@ -658,6 +658,7 @@ impl JsFullTextQuery { FtsQuery::Phrase(_) => "phrase".to_string(), FtsQuery::Boost(_) => "boost".to_string(), FtsQuery::MultiMatch(_) => "multi_match".to_string(), + FtsQuery::CombinedFields(_) => "combined_fields".to_string(), FtsQuery::Boolean(_) => "boolean".to_string(), } } diff --git a/python/src/query.rs b/python/src/query.rs index 2398376d5..3a4737ee0 100644 --- a/python/src/query.rs +++ b/python/src/query.rs @@ -180,6 +180,9 @@ impl<'py> IntoPyObject<'py> for PyLanceDB { .expect("Failed to import namespace"); match self.0 { + FtsQuery::CombinedFields(_) => Err(PyValueError::new_err( + "Combined-fields FTS queries are not yet supported in Python", + )), FtsQuery::Match(query) => { let kwargs = PyDict::new(py); kwargs.set_item("boost", query.boost)?; diff --git a/rust/lancedb/src/remote/table.rs b/rust/lancedb/src/remote/table.rs index d6abfea9a..d1a953e5a 100644 --- a/rust/lancedb/src/remote/table.rs +++ b/rust/lancedb/src/remote/table.rs @@ -96,6 +96,8 @@ const SCHEMA_SELECTOR_CHANGED: &str = "table selector changed while fetching sch fn fts_query_requires_document_granularity_support(query: &FtsQuery) -> bool { match query { + // Combined-fields queries do not expose a document granularity option. + FtsQuery::CombinedFields(_) => false, FtsQuery::Match(query) => query .document_granularity .is_some_and(|granularity| granularity.is_list_element()), @@ -6151,6 +6153,53 @@ mod tests { .unwrap(); } + #[tokio::test] + async fn test_query_combined_fields_uses_structured_fts() { + use lance_index::scalar::inverted::query::CombinedFieldsQuery; + + let table = + Table::new_with_handler_version("my_table", semver::Version::new(0, 3, 0), |request| { + let body = request.body().unwrap().as_bytes().unwrap(); + let body: serde_json::Value = serde_json::from_slice(body).unwrap(); + assert_eq!( + body["full_text_query"]["query"], + serde_json::json!({ + "combined_fields": { + "query": "hello world", + "columns": ["title", "text"], + "boost": [1.0, 1.0], + "operator": "Or" + } + }) + ); + + let data = RecordBatch::try_new( + Arc::new(Schema::new(vec![Field::new("a", DataType::Int32, false)])), + vec![Arc::new(Int32Array::from(vec![1]))], + ) + .unwrap(); + http::Response::builder() + .status(200) + .header(CONTENT_TYPE, ARROW_FILE_CONTENT_TYPE) + .body(write_ipc_file(&data)) + .unwrap() + }); + + table + .query() + .full_text_search(FullTextSearchQuery::new_query( + CombinedFieldsQuery::try_new( + "hello world".into(), + vec!["title".into(), "text".into()], + ) + .unwrap() + .into(), + )) + .execute() + .await + .unwrap(); + } + #[tokio::test] async fn test_query_row_document_granularity_uses_structured_fts() { let table =