Skip to content

fix: compute row offsets for unsorted addresses - #8255

Merged
wjones127 merged 1 commit into
mainfrom
gatekeeper/fix-8250-1
Aug 4, 2026
Merged

fix: compute row offsets for unsorted addresses#8255
wjones127 merged 1 commit into
mainfrom
gatekeeper/fix-8250-1

Conversation

@lance-gatefixer

Copy link
Copy Markdown
Contributor

Summary

  • sort row-address positions before advancing per-fragment deletion iterators
  • scatter computed offsets back to the original request order
  • add a regression test for descending offsets with intervening deletions

Root cause

AddRowOffsetExec reused a forward-only deletion iterator for addresses in input order. When a later address had a lower offset in the same fragment, the iterator retained the deletion count from the higher address and produced an offset that was too small.

Validation

  • cargo test -p lance test_row_offsets_with_unsorted_addresses
  • cargo fmt --all -- --check
  • cargo clippy --all --tests --benches -- -D warnings

Fixes #8250

@github-actions github-actions Bot added the bug Something isn't working label Aug 4, 2026
@wjones127
wjones127 merged commit 2bd8fcc into main Aug 4, 2026
40 checks passed
@wjones127
wjones127 deleted the gatekeeper/fix-8250-1 branch August 4, 2026 23:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: AddRowOffsetExec computes wrong _rowoffset for unsorted addresses in fragments with deletions

1 participant