Skip to content

chore!: update lance dependency to v9.0.0-rc.1#3673

Merged
jackye1995 merged 3 commits into
mainfrom
codex/update-lance-9-0-0-rc-1
Jul 16, 2026
Merged

chore!: update lance dependency to v9.0.0-rc.1#3673
jackye1995 merged 3 commits into
mainfrom
codex/update-lance-9-0-0-rc-1

Conversation

@lancedb-robot

@lancedb-robot lancedb-robot commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

BREAKING CHANGE: splits generated by the permutation data loader will not be the same, due to a change in hash function.

Updates the Lance dependencies and Java lance-core to v9.0.0-rc.1. Includes the required DataFusion 54 and Lance file-reader compatibility updates.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review for a one-time review, or @claude review always to subscribe this PR to a review on every future push.

Tip: disable this comment in your organization's Code Review settings.

@github-actions github-actions Bot added Rust Rust related issues chore Small non-consequential change. Hidden from changelogs. Python Python SDK labels Jul 15, 2026
lancedb-robot and others added 2 commits July 16, 2026 08:13
DataFusion 54 (pulled in by lance v9) replaced its hashing RandomState
(ahash -> foldhash), which changes hash-based split output. Update the
hardcoded expectations in test_hash_split, and hash a high-cardinality
column in the Python test_split_hash_with_discard so its discard behavior
is stable.

The new lance file reader returns no batches for an empty file (the old
read_record_batch returned a single empty batch), so concat_batches on
batches[0] panicked when a shuffle output file was empty. Build the batch
from the known schema instead, which handles the empty case.

Bump the datafusion Python package to v54 to match the bundled DataFusion,
avoiding an FFI ABI mismatch in register_table_provider.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
@wjones127
wjones127 force-pushed the codex/update-lance-9-0-0-rc-1 branch from 830a67d to 6858a93 Compare July 16, 2026 15:46
.collect::<Vec<_>>();
let mut hashes = vec![0; batch.num_rows()];
let random_state = ahash::RandomState::with_seeds(0, 0, 0, 0);
let random_state = RandomState::with_seed(0);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mentioned this elsewhere but it's not ideal we are beholden to DF being able to change the hash function. Stable is more important for data loading than performance or statistical properties.

Still, I think it is inevitable.

Can we document this as a breaking change?

…compat

pylance>=7,<8 is built against datafusion-ffi 53 and segfaults when
registering its FFILanceTableProvider with the datafusion 54 Python
package now required by lance v9. Pin to the 9.0.0rc1 preview build
from the lance-format fury.io index, which matches lance v9.0.0-rc.1
and declares datafusion>=54,<55 for its own tests.
@wjones127 wjones127 changed the title chore: update lance dependency to v9.0.0-rc.1 chore!: update lance dependency to v9.0.0-rc.1 Jul 16, 2026
@github-actions github-actions Bot added the breaking-change A breaking change in our public APIs label Jul 16, 2026
@jackye1995
jackye1995 merged commit bc8674a into main Jul 16, 2026
49 of 51 checks passed
@jackye1995
jackye1995 deleted the codex/update-lance-9-0-0-rc-1 branch July 16, 2026 17:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking-change A breaking change in our public APIs chore Small non-consequential change. Hidden from changelogs. Python Python SDK Rust Rust related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants