feat(encoding): add generic block compression - #8002
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: QUIET Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Important This PR touches the Lance format specification. Substantive changes to the format specification — the If this is a meaningful format change:
|
Lance 2.3 needs a reusable, fallible block-sequence compression contract so variable-width mini-block offsets can use Range, Delta, RLE, dictionary, bitpacking, and general compression through the same concrete codec-tree model used by the existing encoding architecture.
This umbrella contains the complete end-to-end implementation as an integration reference. It is intentionally non-mergeable; review and land the stacked Draft PRs below instead. The stack keeps Lance 2.0–2.2 persisted bytes, selection, and reader behavior unchanged, preserves chunk-local random-read granularity, and does not migrate the SparseLayout wire format.
The stack also includes the Lance 2.3 generic-offset format documentation, compatibility and malformed-input coverage, and controlled encoder/decoder benchmarks.
Reviewable stack
Each PR is based on the previous stack branch; #8038 is based on
main.