build(deps): use layered RaBitQ for all supported widths

This commit is contained in:
Yang Cen
2026-10-11 19:09:57 +08:00
18 changed files with 139 additions and 106 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
[tool.bumpversion]
current_version = "0.41.0-beta.3"
current_version = "0.41.0-beta.4"
parse = """(?x)
(?P<major>0|[1-9]\\d*)\\.
(?P<minor>0|[1-9]\\d*)\\.
Generated
+49 -49
View File
@@ -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",
+14 -14
View File
@@ -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
+1 -1
View File
@@ -14,7 +14,7 @@ Add the following dependency to your `pom.xml`:
<dependency>
<groupId>com.lancedb</groupId>
<artifactId>lancedb-core</artifactId>
<version>0.41.0-beta.3</version>
<version>0.41.0-beta.4</version>
</dependency>
```
+1 -1
View File
@@ -8,7 +8,7 @@
<parent>
<groupId>com.lancedb</groupId>
<artifactId>lancedb-parent</artifactId>
<version>0.41.0-beta.3</version>
<version>0.41.0-beta.4</version>
<relativePath>../pom.xml</relativePath>
</parent>
+2 -2
View File
@@ -6,7 +6,7 @@
<groupId>com.lancedb</groupId>
<artifactId>lancedb-parent</artifactId>
<version>0.41.0-beta.3</version>
<version>0.41.0-beta.4</version>
<packaging>pom</packaging>
<name>${project.artifactId}</name>
<description>LanceDB Java SDK Parent POM</description>
@@ -28,7 +28,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<arrow.version>15.0.0</arrow.version>
<lance-core.version>14.0.0-beta.10</lance-core.version>
<lance-core.version>14.0.0-beta.11</lance-core.version>
<jackson.version>2.18.11</jackson.version>
<spotless.skip>false</spotless.skip>
<spotless.version>2.30.0</spotless.version>
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@lancedb/lancedb-win32-arm64-msvc",
"version": "0.41.0-beta.3",
"version": "0.41.0-beta.4",
"os": [
"win32"
],
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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"
+1 -1
View File
@@ -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
+60 -27
View File
@@ -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);