From ec763521d4b0e46f4c1fa915545561eb5d4762f9 Mon Sep 17 00:00:00 2001 From: LanceDB Robot Date: Tue, 7 Jul 2026 14:51:33 -0700 Subject: [PATCH] chore: update lance dependency to v9.0.0-beta.17 (#3627) Updates Lance Rust workspace dependencies and Java lance-core to v9.0.0-beta.17. Includes the required PyO3 compatibility fix for the newer dependency set. Triggering Lance tag: https://github.com/lance-format/lance/releases/tag/v9.0.0-beta.17 --------- Co-authored-by: Jack Ye --- Cargo.lock | 84 +++++++++++++++++++++++----------------------- Cargo.toml | 28 ++++++++-------- deny.toml | 30 ----------------- java/pom.xml | 2 +- python/src/expr.rs | 4 +-- 5 files changed, 59 insertions(+), 89 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c2ebeb7f1..00ec1853a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2039,9 +2039,9 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.18" +version = "0.9.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +checksum = "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f" dependencies = [ "crossbeam-utils", ] @@ -3423,8 +3423,8 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "fsst" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arrow-array", "rand 0.9.4", @@ -4726,8 +4726,8 @@ checksum = "e037a2e1d8d5fdbd49b16a4ea09d5d6401c1f29eca5ff29d03d3824dba16256a" [[package]] name = "lance" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arc-swap", "arrow", @@ -4801,8 +4801,8 @@ dependencies = [ [[package]] name = "lance-arrow" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arrow-array", "arrow-buffer", @@ -4823,7 +4823,7 @@ dependencies = [ [[package]] name = "lance-arrow-scalar" version = "58.0.0" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arrow-array", "arrow-buffer", @@ -4837,7 +4837,7 @@ dependencies = [ [[package]] name = "lance-arrow-stats" version = "58.0.0" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arrow-array", "arrow-schema", @@ -4846,8 +4846,8 @@ dependencies = [ [[package]] name = "lance-bitpacking" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arrayref", "crunchy", @@ -4857,8 +4857,8 @@ dependencies = [ [[package]] name = "lance-core" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arrow-array", "arrow-buffer", @@ -4896,8 +4896,8 @@ dependencies = [ [[package]] name = "lance-datafusion" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arrow", "arrow-array", @@ -4927,8 +4927,8 @@ dependencies = [ [[package]] name = "lance-datagen" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arrow", "arrow-array", @@ -4945,8 +4945,8 @@ dependencies = [ [[package]] name = "lance-derive" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "proc-macro2", "quote", @@ -4955,8 +4955,8 @@ dependencies = [ [[package]] name = "lance-encoding" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arrow-arith", "arrow-array", @@ -4991,8 +4991,8 @@ dependencies = [ [[package]] name = "lance-file" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arrow-arith", "arrow-array", @@ -5022,8 +5022,8 @@ dependencies = [ [[package]] name = "lance-index" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arc-swap", "arrow", @@ -5088,8 +5088,8 @@ dependencies = [ [[package]] name = "lance-io" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arrow", "arrow-arith", @@ -5130,8 +5130,8 @@ dependencies = [ [[package]] name = "lance-linalg" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arrow-array", "arrow-buffer", @@ -5147,8 +5147,8 @@ dependencies = [ [[package]] name = "lance-namespace" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arrow", "async-trait", @@ -5160,8 +5160,8 @@ dependencies = [ [[package]] name = "lance-namespace-impls" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arrow", "arrow-ipc", @@ -5215,8 +5215,8 @@ dependencies = [ [[package]] name = "lance-select" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arrow-array", "arrow-buffer", @@ -5231,8 +5231,8 @@ dependencies = [ [[package]] name = "lance-table" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arrow", "arrow-array", @@ -5271,8 +5271,8 @@ dependencies = [ [[package]] name = "lance-testing" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "arrow-array", "arrow-schema", @@ -5285,8 +5285,8 @@ dependencies = [ [[package]] name = "lance-tokenizer" -version = "9.0.0-beta.10" -source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.10#e25b71e74b89d10c57b412d111bde087117383f3" +version = "9.0.0-beta.17" +source = "git+https://github.com/lance-format/lance.git?tag=v9.0.0-beta.17#9c04698551db8ff7f64dc005ad2a4256f55b7441" dependencies = [ "icu_segmenter", "jieba-rs", diff --git a/Cargo.toml b/Cargo.toml index f335f0b6a..552a26b98 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,20 +13,20 @@ categories = ["database-implementations"] rust-version = "1.91.0" [workspace.dependencies] -lance = { "version" = "=9.0.0-beta.10", default-features = false, "tag" = "v9.0.0-beta.10", "git" = "https://github.com/lance-format/lance.git" } -lance-core = { "version" = "=9.0.0-beta.10", "tag" = "v9.0.0-beta.10", "git" = "https://github.com/lance-format/lance.git" } -lance-datagen = { "version" = "=9.0.0-beta.10", "tag" = "v9.0.0-beta.10", "git" = "https://github.com/lance-format/lance.git" } -lance-file = { "version" = "=9.0.0-beta.10", "tag" = "v9.0.0-beta.10", "git" = "https://github.com/lance-format/lance.git" } -lance-io = { "version" = "=9.0.0-beta.10", default-features = false, "tag" = "v9.0.0-beta.10", "git" = "https://github.com/lance-format/lance.git" } -lance-index = { "version" = "=9.0.0-beta.10", "tag" = "v9.0.0-beta.10", "git" = "https://github.com/lance-format/lance.git" } -lance-linalg = { "version" = "=9.0.0-beta.10", "tag" = "v9.0.0-beta.10", "git" = "https://github.com/lance-format/lance.git" } -lance-namespace = { "version" = "=9.0.0-beta.10", "tag" = "v9.0.0-beta.10", "git" = "https://github.com/lance-format/lance.git" } -lance-namespace-impls = { "version" = "=9.0.0-beta.10", default-features = false, "tag" = "v9.0.0-beta.10", "git" = "https://github.com/lance-format/lance.git" } -lance-table = { "version" = "=9.0.0-beta.10", "tag" = "v9.0.0-beta.10", "git" = "https://github.com/lance-format/lance.git" } -lance-testing = { "version" = "=9.0.0-beta.10", "tag" = "v9.0.0-beta.10", "git" = "https://github.com/lance-format/lance.git" } -lance-datafusion = { "version" = "=9.0.0-beta.10", "tag" = "v9.0.0-beta.10", "git" = "https://github.com/lance-format/lance.git" } -lance-encoding = { "version" = "=9.0.0-beta.10", "tag" = "v9.0.0-beta.10", "git" = "https://github.com/lance-format/lance.git" } -lance-arrow = { "version" = "=9.0.0-beta.10", "tag" = "v9.0.0-beta.10", "git" = "https://github.com/lance-format/lance.git" } +lance = { "version" = "=9.0.0-beta.17", default-features = false, "tag" = "v9.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-core = { "version" = "=9.0.0-beta.17", "tag" = "v9.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-datagen = { "version" = "=9.0.0-beta.17", "tag" = "v9.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-file = { "version" = "=9.0.0-beta.17", "tag" = "v9.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-io = { "version" = "=9.0.0-beta.17", default-features = false, "tag" = "v9.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-index = { "version" = "=9.0.0-beta.17", "tag" = "v9.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-linalg = { "version" = "=9.0.0-beta.17", "tag" = "v9.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-namespace = { "version" = "=9.0.0-beta.17", "tag" = "v9.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-namespace-impls = { "version" = "=9.0.0-beta.17", default-features = false, "tag" = "v9.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-table = { "version" = "=9.0.0-beta.17", "tag" = "v9.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-testing = { "version" = "=9.0.0-beta.17", "tag" = "v9.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-datafusion = { "version" = "=9.0.0-beta.17", "tag" = "v9.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-encoding = { "version" = "=9.0.0-beta.17", "tag" = "v9.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } +lance-arrow = { "version" = "=9.0.0-beta.17", "tag" = "v9.0.0-beta.17", "git" = "https://github.com/lance-format/lance.git" } ahash = "0.8" # Note that this one does not include pyarrow arrow = { version = "58.0.0", optional = false } diff --git a/deny.toml b/deny.toml index 154737b7e..034b48c25 100644 --- a/deny.toml +++ b/deny.toml @@ -51,18 +51,6 @@ ignore = [ # https://rustsec.org/advisories/RUSTSEC-2024-0436 { id = "RUSTSEC-2024-0436", reason = "transitive via datafusion; awaiting ecosystem migration" }, - # encoding: unmaintained. Reached through lindera-dictionary, which is - # required by the native Lindera tokenizer path. Lindera has not migrated - # off this crate yet. - # https://rustsec.org/advisories/RUSTSEC-2021-0153 - { id = "RUSTSEC-2021-0153", reason = "transitive via lindera-dictionary for native Lindera tokenizer" }, - - # fast-float: unsound and unmaintained. Reached only through polars-arrow - # from the optional Polars integration; replacement requires a Polars - # dependency upgrade. - # https://rustsec.org/advisories/RUSTSEC-2024-0379 - { id = "RUSTSEC-2024-0379", reason = "transitive via polars-arrow; waiting on Polars migration" }, - # tantivy: segfault on malformed input due to missing bounds check. # Pulled in via lance for full-text search. We only feed tantivy # documents we construct ourselves, not attacker-controlled bytes. @@ -80,18 +68,6 @@ ignore = [ # https://rustsec.org/advisories/RUSTSEC-2025-0119 { id = "RUSTSEC-2025-0119", reason = "transitive via hf-hub/indicatif; cosmetic formatting crate" }, - # bincode: unmaintained. Reached through lindera and lindera-dictionary, - # which are required by the native Lindera tokenizer path. Lindera has not - # migrated to another serialization format yet. - # https://rustsec.org/advisories/RUSTSEC-2025-0141 - { id = "RUSTSEC-2025-0141", reason = "transitive via lindera/lindera-dictionary for native Lindera tokenizer" }, - - # lru: soundness issue in IterMut. Reached only through aws-sdk-s3 in - # LanceDB's dev-dependency graph; LanceDB does not use that iterator - # directly. Clearing this requires the AWS SDK chain to update lru. - # https://rustsec.org/advisories/RUSTSEC-2026-0002 - { id = "RUSTSEC-2026-0002", reason = "transitive via aws-sdk-s3 dev-dependency; waiting on AWS SDK lru upgrade" }, - # rustls-webpki 0.101.7 (old major line): name-constraint checks for # URI / wildcard names. Pulled in only via the legacy rustls 0.21 chain # from aws-smithy-http-client. The 0.103 line we actively use is patched. @@ -108,12 +84,6 @@ ignore = [ # https://rustsec.org/advisories/RUSTSEC-2026-0104 { id = "RUSTSEC-2026-0104", reason = "only affects rustls-webpki 0.101 from legacy aws-smithy/rustls 0.21 chain" }, - # rand 0.8.5: soundness issue only when ThreadRng reseeds inside a custom - # logger. Reached through several transitive chains. LanceDB does not use - # rand from a custom logger; upgrade once all pinned chains accept 0.8.6+. - # https://rustsec.org/advisories/RUSTSEC-2026-0097 - { id = "RUSTSEC-2026-0097", reason = "transitive rand 0.8.5; LanceDB does not call ThreadRng from custom logging" }, - # pyo3 advisories in the Python bindings; tracked pending a patched pyo3 release. # https://rustsec.org/advisories/RUSTSEC-2026-0176 # https://rustsec.org/advisories/RUSTSEC-2026-0177 diff --git a/java/pom.xml b/java/pom.xml index 064143770..96e1376c3 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -28,7 +28,7 @@ UTF-8 15.0.0 - 9.0.0-beta.10 + 9.0.0-beta.17 false 2.30.0 1.7 diff --git a/python/src/expr.rs b/python/src/expr.rs index 5d5ceb268..242e88b05 100644 --- a/python/src/expr.rs +++ b/python/src/expr.rs @@ -191,7 +191,7 @@ pub fn expr_lit(value: Bound<'_, PyAny>) -> PyResult { } // datetime.datetime is a subclass of datetime.date, so it must be checked first. - if let Ok(dt) = value.downcast::() { + if let Ok(dt) = value.cast::() { let ts: f64 = dt.call_method0("timestamp")?.extract()?; let micros = (ts * 1_000_000.0).round() as i64; return Ok(PyExpr(df_lit(ScalarValue::TimestampMicrosecond( @@ -199,7 +199,7 @@ pub fn expr_lit(value: Bound<'_, PyAny>) -> PyResult { None, )))); } - if let Ok(d) = value.downcast::() { + if let Ok(d) = value.cast::() { let ordinal: i32 = d.call_method0("toordinal")?.extract()?; let days = ordinal - 719163; // Unix epoch is 1970-01-01 return Ok(PyExpr(df_lit(ScalarValue::Date32(Some(days)))));