mirror of
https://github.com/lancedb/lancedb.git
synced 2026-10-23 20:22:37 +00:00
## Root cause The pinned Lance Arrow crate rebuilt a sliced struct child with its original Arrow offset but supplied a validity bitmap containing only the visible rows. Arrow requires the bitmap to cover the offset as well, so filtered vector searches involving nullable nested fields could panic with `null_bit_buffer size too small`. ## Fix - Carry an offset-aligned validity bitmap when propagating parent nulls to a sliced child. - Vendor the pinned `lance-arrow` crate until a Lance release includes the fix; include it in Maturin source distributions. - Add unit regressions for sliced children and parent bitmaps, plus a record-batch merge regression. ## Validation - The issue's 8,600-row Python reproducer completes its filtered flat dot search and returns 8,448 rows without a panic. - The targeted Rust merge regression and two focused Python query tests pass. - Rust formatting, Ruff formatting and lint, the vendored crate tests, and the workspace Cargo checks passed. The Maturin source archive includes the patched crate. Fixes #4260 <!-- lance-gatekeeper-fix:v1 agent=e6045f701d9b708ee26528ba36353aba generation=1 --> --------- Co-authored-by: Gatefixer <313497061+lancedb-gatefixer[bot]@users.noreply.github.com>
34 lines
1.1 KiB
TOML
34 lines
1.1 KiB
TOML
[package]
|
|
name = "lance-arrow"
|
|
version = "15.0.0-beta.1"
|
|
edition = "2024"
|
|
authors = ["Lance Devs <dev@lance.org>"]
|
|
license = "Apache-2.0"
|
|
repository = "https://github.com/lance-format/lance"
|
|
readme = "README.md"
|
|
description = "Arrow Extension for Lance"
|
|
keywords = ["data-format", "data-science", "machine-learning", "apache-arrow", "data-analytics"]
|
|
categories = ["database-implementations"]
|
|
|
|
[lib]
|
|
crate-type = ["cdylib", "rlib"]
|
|
|
|
[dependencies]
|
|
arrow-array.workspace = true
|
|
arrow-buffer.workspace = true
|
|
arrow-data.workspace = true
|
|
arrow-ipc = { workspace = true, features = ["zstd"] }
|
|
arrow-ord.workspace = true
|
|
arrow-schema.workspace = true
|
|
arrow-select.workspace = true
|
|
bytemuck = { version = "1", default-features = false, features = ["extern_crate_alloc"] }
|
|
bytes.workspace = true
|
|
futures.workspace = true
|
|
half = { workspace = true, features = ["std", "bytemuck"] }
|
|
lance-jsonb.workspace = true
|
|
num-traits.workspace = true
|
|
rand = { workspace = true, features = ["small_rng"] }
|
|
|
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
|
getrandom = { version = "0.2", features = ["js"] }
|