feat(encoding): write sparse structural pages explicitly#7755
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE 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)
Comment |
|
Important This PR touches the Lance format specification. Substantive changes to the format specification — the If this is a meaningful format change:
|
Part of #7750
Depends on #7754.
Summary
lance-encoding:structural-encoding=sparse, and reject the request for older file versions.ConstantLayoutboundary; explicit non-null constants emit sparse pages.miniblock/fullzipbehavior are unchanged.Coverage
Round trips cover nullable primitive and struct values, list, large-list, map, fixed-size-list, nested combinations, null versus empty lists, both validity polarities, every semantic position/count form, structural-only and all-null pages, page boundaries, scans, ranges, and discontiguous takes. Metadata assertions verify the selected page and set representations. Lance 2.2 default output is compared with explicit mini-block output, and explicit sparse requests are rejected before encoding.
Validation
cargo fmt --all -- --checkcargo test -p lance-encoding sparse:: --lib(25 passed)cargo test -p lance-encoding(455 passed, 5 ignored)cargo test -p lance-file(92 passed)cargo clippy --all --tests --benches -- -D warningsuv run mkdocs buildfromdocs/(passed with existing repository link warnings)