diff --git a/.bumpversion.toml b/.bumpversion.toml index e74604e0c..487948f7d 100644 --- a/.bumpversion.toml +++ b/.bumpversion.toml @@ -1,5 +1,5 @@ [tool.bumpversion] -current_version = "0.41.0-beta.3" +current_version = "0.41.0-beta.4" parse = """(?x) (?P0|[1-9]\\d*)\\. (?P0|[1-9]\\d*)\\. diff --git a/Cargo.lock b/Cargo.lock index 5dbca21c9..a06aa9523 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3584,8 +3584,8 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "fsst" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arrow-array", "rand 0.9.5", @@ -5059,8 +5059,8 @@ checksum = "e037a2e1d8d5fdbd49b16a4ea09d5d6401c1f29eca5ff29d03d3824dba16256a" [[package]] name = "lance" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arc-swap", "arrow", @@ -5133,8 +5133,8 @@ dependencies = [ [[package]] name = "lance-arrow" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arrow-array", "arrow-buffer", @@ -5156,7 +5156,7 @@ dependencies = [ [[package]] name = "lance-arrow-scalar" version = "58.0.0" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arrow-array", "arrow-buffer", @@ -5170,7 +5170,7 @@ dependencies = [ [[package]] name = "lance-arrow-stats" version = "58.0.0" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arrow-array", "arrow-schema", @@ -5179,8 +5179,8 @@ dependencies = [ [[package]] name = "lance-bitpacking" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arrayref", "crunchy", @@ -5190,8 +5190,8 @@ dependencies = [ [[package]] name = "lance-core" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arrow-array", "arrow-buffer", @@ -5228,8 +5228,8 @@ dependencies = [ [[package]] name = "lance-datafusion" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arrow", "arrow-array", @@ -5260,8 +5260,8 @@ dependencies = [ [[package]] name = "lance-datagen" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arrow", "arrow-array", @@ -5278,8 +5278,8 @@ dependencies = [ [[package]] name = "lance-derive" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "proc-macro2", "quote", @@ -5288,8 +5288,8 @@ dependencies = [ [[package]] name = "lance-encoding" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arrow-arith", "arrow-array", @@ -5322,8 +5322,8 @@ dependencies = [ [[package]] name = "lance-file" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arrow-arith", "arrow-array", @@ -5355,8 +5355,8 @@ dependencies = [ [[package]] name = "lance-geo" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "datafusion", "geo-traits", @@ -5370,8 +5370,8 @@ dependencies = [ [[package]] name = "lance-index" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arc-swap", "arrow", @@ -5443,8 +5443,8 @@ dependencies = [ [[package]] name = "lance-index-core" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arrow-array", "arrow-schema", @@ -5467,8 +5467,8 @@ dependencies = [ [[package]] name = "lance-io" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arrow", "arrow-array", @@ -5510,8 +5510,8 @@ dependencies = [ [[package]] name = "lance-jsonb" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "byteorder", "ethnum", @@ -5528,8 +5528,8 @@ dependencies = [ [[package]] name = "lance-linalg" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arrow-array", "arrow-schema", @@ -5543,8 +5543,8 @@ dependencies = [ [[package]] name = "lance-namespace" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arrow", "async-trait", @@ -5558,8 +5558,8 @@ dependencies = [ [[package]] name = "lance-namespace-impls" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arc-swap", "arrow", @@ -5613,8 +5613,8 @@ dependencies = [ [[package]] name = "lance-select" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arrow-array", "arrow-buffer", @@ -5628,8 +5628,8 @@ dependencies = [ [[package]] name = "lance-table" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arrow", "arrow-array", @@ -5669,8 +5669,8 @@ dependencies = [ [[package]] name = "lance-testing" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "arrow-array", "arrow-schema", @@ -5683,8 +5683,8 @@ dependencies = [ [[package]] name = "lance-tokenizer" -version = "14.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?rev=81bb501f9e959d607e3c3d77eed7a872252f255f#81bb501f9e959d607e3c3d77eed7a872252f255f" +version = "14.0.0-beta.12" +source = "git+https://github.com/lance-format/lance.git?rev=004291351fdc1aa706defd59bcf023e790726f98#004291351fdc1aa706defd59bcf023e790726f98" dependencies = [ "frostem", "icu_segmenter", @@ -5697,7 +5697,7 @@ dependencies = [ [[package]] name = "lancedb" -version = "0.41.0-beta.3" +version = "0.41.0-beta.4" dependencies = [ "ahash", "anyhow", @@ -5794,7 +5794,7 @@ dependencies = [ [[package]] name = "lancedb-nodejs" -version = "0.41.0-beta.3" +version = "0.41.0-beta.4" dependencies = [ "arrow-array", "arrow-buffer", @@ -5819,7 +5819,7 @@ dependencies = [ [[package]] name = "lancedb-python" -version = "0.41.0-beta.3" +version = "0.41.0-beta.4" dependencies = [ "arc-swap", "arrow", diff --git a/Cargo.toml b/Cargo.toml index bcac4fab1..141821efc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,20 +13,20 @@ categories = ["database-implementations"] rust-version = "1.94.0" [workspace.dependencies] -lance = { "version" = "=14.0.0-beta.10", default-features = false, "rev" = "81bb501f9e959d607e3c3d77eed7a872252f255f", "git" = "https://github.com/lance-format/lance.git" } -lance-core = { "version" = "=14.0.0-beta.10", "rev" = "81bb501f9e959d607e3c3d77eed7a872252f255f", "git" = "https://github.com/lance-format/lance.git" } -lance-datagen = { "version" = "=14.0.0-beta.10", "rev" = "81bb501f9e959d607e3c3d77eed7a872252f255f", "git" = "https://github.com/lance-format/lance.git" } -lance-file = { "version" = "=14.0.0-beta.10", "rev" = "81bb501f9e959d607e3c3d77eed7a872252f255f", "git" = "https://github.com/lance-format/lance.git" } -lance-io = { "version" = "=14.0.0-beta.10", default-features = false, "rev" = "81bb501f9e959d607e3c3d77eed7a872252f255f", "git" = "https://github.com/lance-format/lance.git" } -lance-index = { "version" = "=14.0.0-beta.10", "rev" = "81bb501f9e959d607e3c3d77eed7a872252f255f", "git" = "https://github.com/lance-format/lance.git" } -lance-linalg = { "version" = "=14.0.0-beta.10", "rev" = "81bb501f9e959d607e3c3d77eed7a872252f255f", "git" = "https://github.com/lance-format/lance.git" } -lance-namespace = { "version" = "=14.0.0-beta.10", "rev" = "81bb501f9e959d607e3c3d77eed7a872252f255f", "git" = "https://github.com/lance-format/lance.git" } -lance-namespace-impls = { "version" = "=14.0.0-beta.10", default-features = false, "rev" = "81bb501f9e959d607e3c3d77eed7a872252f255f", "git" = "https://github.com/lance-format/lance.git" } -lance-table = { "version" = "=14.0.0-beta.10", "rev" = "81bb501f9e959d607e3c3d77eed7a872252f255f", "git" = "https://github.com/lance-format/lance.git" } -lance-testing = { "version" = "=14.0.0-beta.10", "rev" = "81bb501f9e959d607e3c3d77eed7a872252f255f", "git" = "https://github.com/lance-format/lance.git" } -lance-datafusion = { "version" = "=14.0.0-beta.10", "rev" = "81bb501f9e959d607e3c3d77eed7a872252f255f", "git" = "https://github.com/lance-format/lance.git" } -lance-encoding = { "version" = "=14.0.0-beta.10", "rev" = "81bb501f9e959d607e3c3d77eed7a872252f255f", "git" = "https://github.com/lance-format/lance.git" } -lance-arrow = { "version" = "=14.0.0-beta.10", "rev" = "81bb501f9e959d607e3c3d77eed7a872252f255f", "git" = "https://github.com/lance-format/lance.git" } +lance = { "version" = "=14.0.0-beta.12", default-features = false, "rev" = "004291351fdc1aa706defd59bcf023e790726f98", "git" = "https://github.com/lance-format/lance.git" } +lance-core = { "version" = "=14.0.0-beta.12", "rev" = "004291351fdc1aa706defd59bcf023e790726f98", "git" = "https://github.com/lance-format/lance.git" } +lance-datagen = { "version" = "=14.0.0-beta.12", "rev" = "004291351fdc1aa706defd59bcf023e790726f98", "git" = "https://github.com/lance-format/lance.git" } +lance-file = { "version" = "=14.0.0-beta.12", "rev" = "004291351fdc1aa706defd59bcf023e790726f98", "git" = "https://github.com/lance-format/lance.git" } +lance-io = { "version" = "=14.0.0-beta.12", default-features = false, "rev" = "004291351fdc1aa706defd59bcf023e790726f98", "git" = "https://github.com/lance-format/lance.git" } +lance-index = { "version" = "=14.0.0-beta.12", "rev" = "004291351fdc1aa706defd59bcf023e790726f98", "git" = "https://github.com/lance-format/lance.git" } +lance-linalg = { "version" = "=14.0.0-beta.12", "rev" = "004291351fdc1aa706defd59bcf023e790726f98", "git" = "https://github.com/lance-format/lance.git" } +lance-namespace = { "version" = "=14.0.0-beta.12", "rev" = "004291351fdc1aa706defd59bcf023e790726f98", "git" = "https://github.com/lance-format/lance.git" } +lance-namespace-impls = { "version" = "=14.0.0-beta.12", default-features = false, "rev" = "004291351fdc1aa706defd59bcf023e790726f98", "git" = "https://github.com/lance-format/lance.git" } +lance-table = { "version" = "=14.0.0-beta.12", "rev" = "004291351fdc1aa706defd59bcf023e790726f98", "git" = "https://github.com/lance-format/lance.git" } +lance-testing = { "version" = "=14.0.0-beta.12", "rev" = "004291351fdc1aa706defd59bcf023e790726f98", "git" = "https://github.com/lance-format/lance.git" } +lance-datafusion = { "version" = "=14.0.0-beta.12", "rev" = "004291351fdc1aa706defd59bcf023e790726f98", "git" = "https://github.com/lance-format/lance.git" } +lance-encoding = { "version" = "=14.0.0-beta.12", "rev" = "004291351fdc1aa706defd59bcf023e790726f98", "git" = "https://github.com/lance-format/lance.git" } +lance-arrow = { "version" = "=14.0.0-beta.12", "rev" = "004291351fdc1aa706defd59bcf023e790726f98", "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/docs/src/java/java.md b/docs/src/java/java.md index 81b4afa42..93b051ffb 100644 --- a/docs/src/java/java.md +++ b/docs/src/java/java.md @@ -14,7 +14,7 @@ Add the following dependency to your `pom.xml`: com.lancedb lancedb-core - 0.41.0-beta.3 + 0.41.0-beta.4 ``` diff --git a/java/lancedb-core/pom.xml b/java/lancedb-core/pom.xml index 9affef0ef..89672e7c5 100644 --- a/java/lancedb-core/pom.xml +++ b/java/lancedb-core/pom.xml @@ -8,7 +8,7 @@ com.lancedb lancedb-parent - 0.41.0-beta.3 + 0.41.0-beta.4 ../pom.xml diff --git a/java/pom.xml b/java/pom.xml index be828e21a..9fa79452e 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -6,7 +6,7 @@ com.lancedb lancedb-parent - 0.41.0-beta.3 + 0.41.0-beta.4 pom ${project.artifactId} LanceDB Java SDK Parent POM @@ -28,7 +28,7 @@ UTF-8 15.0.0 - 14.0.0-beta.10 + 14.0.0-beta.11 2.18.11 false 2.30.0 diff --git a/nodejs/Cargo.toml b/nodejs/Cargo.toml index 0fd2434c1..4b3431ab1 100644 --- a/nodejs/Cargo.toml +++ b/nodejs/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "lancedb-nodejs" edition.workspace = true -version = "0.41.0-beta.3" +version = "0.41.0-beta.4" publish = false license.workspace = true description.workspace = true diff --git a/nodejs/npm/darwin-arm64/package.json b/nodejs/npm/darwin-arm64/package.json index 486d9692a..b10fe483a 100644 --- a/nodejs/npm/darwin-arm64/package.json +++ b/nodejs/npm/darwin-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@lancedb/lancedb-darwin-arm64", - "version": "0.41.0-beta.3", + "version": "0.41.0-beta.4", "os": ["darwin"], "cpu": ["arm64"], "main": "lancedb.darwin-arm64.node", diff --git a/nodejs/npm/linux-arm64-gnu/package.json b/nodejs/npm/linux-arm64-gnu/package.json index aeeee36c1..5eab9429f 100644 --- a/nodejs/npm/linux-arm64-gnu/package.json +++ b/nodejs/npm/linux-arm64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@lancedb/lancedb-linux-arm64-gnu", - "version": "0.41.0-beta.3", + "version": "0.41.0-beta.4", "os": ["linux"], "cpu": ["arm64"], "main": "lancedb.linux-arm64-gnu.node", diff --git a/nodejs/npm/linux-arm64-musl/package.json b/nodejs/npm/linux-arm64-musl/package.json index f6cc198c4..9a6443e24 100644 --- a/nodejs/npm/linux-arm64-musl/package.json +++ b/nodejs/npm/linux-arm64-musl/package.json @@ -1,6 +1,6 @@ { "name": "@lancedb/lancedb-linux-arm64-musl", - "version": "0.41.0-beta.3", + "version": "0.41.0-beta.4", "os": ["linux"], "cpu": ["arm64"], "main": "lancedb.linux-arm64-musl.node", diff --git a/nodejs/npm/linux-x64-gnu/package.json b/nodejs/npm/linux-x64-gnu/package.json index 37c83e4ee..d1870228e 100644 --- a/nodejs/npm/linux-x64-gnu/package.json +++ b/nodejs/npm/linux-x64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@lancedb/lancedb-linux-x64-gnu", - "version": "0.41.0-beta.3", + "version": "0.41.0-beta.4", "os": ["linux"], "cpu": ["x64"], "main": "lancedb.linux-x64-gnu.node", diff --git a/nodejs/npm/linux-x64-musl/package.json b/nodejs/npm/linux-x64-musl/package.json index c25486f7c..3ee0ad870 100644 --- a/nodejs/npm/linux-x64-musl/package.json +++ b/nodejs/npm/linux-x64-musl/package.json @@ -1,6 +1,6 @@ { "name": "@lancedb/lancedb-linux-x64-musl", - "version": "0.41.0-beta.3", + "version": "0.41.0-beta.4", "os": ["linux"], "cpu": ["x64"], "main": "lancedb.linux-x64-musl.node", diff --git a/nodejs/npm/win32-arm64-msvc/package.json b/nodejs/npm/win32-arm64-msvc/package.json index c963f9422..6789b433c 100644 --- a/nodejs/npm/win32-arm64-msvc/package.json +++ b/nodejs/npm/win32-arm64-msvc/package.json @@ -1,6 +1,6 @@ { "name": "@lancedb/lancedb-win32-arm64-msvc", - "version": "0.41.0-beta.3", + "version": "0.41.0-beta.4", "os": [ "win32" ], diff --git a/nodejs/npm/win32-x64-msvc/package.json b/nodejs/npm/win32-x64-msvc/package.json index 7220ca9f1..94859f899 100644 --- a/nodejs/npm/win32-x64-msvc/package.json +++ b/nodejs/npm/win32-x64-msvc/package.json @@ -1,6 +1,6 @@ { "name": "@lancedb/lancedb-win32-x64-msvc", - "version": "0.41.0-beta.3", + "version": "0.41.0-beta.4", "os": ["win32"], "cpu": ["x64"], "main": "lancedb.win32-x64-msvc.node", diff --git a/nodejs/package.json b/nodejs/package.json index acecfc075..ff43a9f47 100644 --- a/nodejs/package.json +++ b/nodejs/package.json @@ -11,7 +11,7 @@ "ann" ], "private": false, - "version": "0.41.0-beta.3", + "version": "0.41.0-beta.4", "main": "dist/index.js", "exports": { ".": "./dist/index.js", diff --git a/python/Cargo.toml b/python/Cargo.toml index 4bd3cf357..456103ade 100644 --- a/python/Cargo.toml +++ b/python/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lancedb-python" -version = "0.41.0-beta.3" +version = "0.41.0-beta.4" publish = false edition.workspace = true description = "Python bindings for LanceDB" diff --git a/rust/lancedb/Cargo.toml b/rust/lancedb/Cargo.toml index 6743ed1a1..768d55c4e 100644 --- a/rust/lancedb/Cargo.toml +++ b/rust/lancedb/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lancedb" -version = "0.41.0-beta.3" +version = "0.41.0-beta.4" edition.workspace = true description = "LanceDB: A serverless, low-latency vector database for AI applications" license.workspace = true diff --git a/rust/lancedb/src/table/query/lsm.rs b/rust/lancedb/src/table/query/lsm.rs index 8d85582d8..698b9c736 100644 --- a/rust/lancedb/src/table/query/lsm.rs +++ b/rust/lancedb/src/table/query/lsm.rs @@ -25,21 +25,20 @@ use std::collections::HashMap; use std::sync::Arc; -use arrow_array::{Array, FixedSizeListArray, cast::AsArray}; -use arrow_schema::{DataType, Field, Schema as ArrowSchema}; +use arrow_array::Array; +use arrow_schema::{DataType, Schema as ArrowSchema}; use datafusion::common::{DataFusionError, ToDFSchema}; use datafusion::prelude::SessionContext; use datafusion_physical_plan::expressions::Column; use datafusion_physical_plan::projection::ProjectionExec; use datafusion_physical_plan::{ExecutionPlan, PhysicalExpr}; use lance::Dataset; -use lance::dataset::mem_wal::index::{FtsMemQuery, VectorMemQuery}; +use lance::dataset::mem_wal::index::{IndexStore, VectorMemQuery}; use lance::dataset::mem_wal::scanner::{InMemoryMemTableRef, InMemoryMemTables}; use lance::dataset::mem_wal::{ DatasetMemWalExt, LsmScanner, ShardManifestStore, ShardSnapshot, ShardWriterConfig, }; use lance_index::mem_wal::{MemWalIndexDetails, ShardManifest}; -use lance_index::scalar::inverted::DocumentGranularity; use uuid::Uuid; use super::NativeTable; @@ -476,10 +475,7 @@ async fn fts_plan( // omits un-compacted documents. Reject rather than mislead. if !index_maintained(dataset, column, details, "InvertedIndexDetails").await? || !resident_memtables_carry(&in_memory, |memtable| { - memtable - .index_store - .index_answering(column, &FtsMemQuery::probe(DocumentGranularity::Row)) - .is_some() + !memtable.index_store.fts_granularities_on(column).is_empty() }) { return Err(Error::NotSupported { @@ -710,21 +706,6 @@ async fn vector_plan( None => default_vector_column(&arrow_schema, Some(query_vector.len() as i32))?, }; - let mem_query = VectorMemQuery { - vector: match query_vector.as_fixed_size_list_opt() { - Some(vector) => vector.clone(), - None => FixedSizeListArray::try_new( - Arc::new(Field::new("item", query_vector.data_type().clone(), true)), - query_vector.len() as i32, - query_vector.clone(), - None, - )?, - }, - k: limit.unwrap_or(DEFAULT_TOP_K).max(1), - ef: None, - distance_type: query.distance_type.map(Into::into), - }; - // The base arm relies on the column's vector index (`fast_search`). Unmaintained, // its catch-up is untracked and exclusion falls back to the compaction watermark, // dropping compacted SSTables the lagging base index has not re-indexed; and a @@ -732,10 +713,7 @@ async fn vector_plan( // Reject rather than silently omit rows, mirroring the FTS arm. if !index_maintained(dataset, &column, details, "VectorIndexDetails").await? || !resident_memtables_carry(&in_memory, |memtable| { - memtable - .index_store - .index_answering(&column, &mem_query) - .is_some() + carries_vector_index(&memtable.index_store, &column) }) { return Err(Error::NotSupported { @@ -783,6 +761,22 @@ async fn vector_plan( Ok(scanner.create_plan().await?) } +/// Probe for a resident vector index without imposing a distance metric, matching +/// the presence check used before Lance introduced query-based index lookup. +fn carries_vector_index(store: &IndexStore, column: &str) -> bool { + let probe = VectorMemQuery { + vector: arrow_array::FixedSizeListArray::new_null( + Arc::new(arrow_schema::Field::new("item", DataType::Float32, true)), + 1, + 1, + ), + k: 1, + ef: None, + distance_type: None, + }; + store.index_answering(column, &probe).is_some() +} + /// Whether `column` stores binary (uint8) vectors, which the LSM vector planner /// does not support. fn is_binary_vector_column(schema: &ArrowSchema, column: &str) -> bool { @@ -827,6 +821,45 @@ mod tests { use super::*; use lance_index::mem_wal::{CompactedSsTable, IndexCatchupProgress}; + #[test] + fn resident_index_checks_distinguish_columns_and_query_types() { + use arrow_schema::Field; + use lance::dataset::mem_wal::index::MemIndexSpec; + + let schema = ArrowSchema::new(vec![ + Field::new("id", DataType::Int32, false), + Field::new("text", DataType::Utf8, true), + Field::new( + "vector", + DataType::FixedSizeList(Arc::new(Field::new("item", DataType::Float32, true)), 4), + true, + ), + ]); + let schema = lance_core::datatypes::Schema::try_from(&schema).unwrap(); + let specs = vec![ + MemIndexSpec::btree("id_idx", 0, "id"), + MemIndexSpec::fts("text_idx", 1, "text"), + MemIndexSpec::hnsw( + "vector_idx", + 2, + "vector", + lance_linalg::distance::DistanceType::Cosine, + ), + ]; + let store = IndexStore::from_specs(&specs, &schema, 1_000, 16).unwrap(); + assert!(carries_vector_index(&store, "vector")); + for column in ["id", "text", "missing"] { + assert!(!carries_vector_index(&store, column)); + } + assert!(!store.fts_granularities_on("text").is_empty()); + for column in ["id", "vector", "missing"] { + assert!(store.fts_granularities_on(column).is_empty()); + } + let empty = IndexStore::from_specs(&[], &schema, 1_000, 16).unwrap(); + assert!(!carries_vector_index(&empty, "vector")); + assert!(empty.fts_granularities_on("text").is_empty()); + } + #[test] fn exclusion_watermark_gates_on_lagging_index_catchup() { let shard = Uuid::from_u128(1);