Repository navigation
Conversation
Signed-off-by: Daniel King <dan@spiraldb.com>
Merging this PR will degrade performance by 3.68%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ |
Simulation | test_repeated_scan_scalar_at[int] |
263.7 µs | 355.8 µs | -25.87% |
| ❌ |
Simulation | test_scan_filter_to_arrow_array[int_float] |
3.5 ms | 4.1 ms | -14.81% |
| ❌ |
Simulation | test_repeated_scan_filter[int_float] |
3.4 ms | 4 ms | -13.44% |
| ❌ |
Simulation | test_scan_scalar_at[int] |
803.7 µs | 905.7 µs | -11.26% |
| ❌ ℹ️ | Simulation | test_repeated_scan_filter[int] |
2.5 ms | 2.7 ms | -10.4% |
| ⚡ ℹ️ | Simulation | test_repeated_scan_scalar_at[int_float] |
486.7 µs | 396.8 µs | +22.68% |
| ⚡ | WallTime | bitpack_blocked_compress_avx512 |
5.6 µs | 4.8 µs | +18.06% |
| ⚡ | WallTime | filter_neon[80] |
2.9 µs | 2.5 µs | +17.73% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing danking:dk/fix-empty-list-zero-offset (2c31fee) with develop (18aebea)
mhk197
left a comment
There was a problem hiding this comment.
I think we should close in favor of #10533. We shouldn't need to write dummy segments for correctness.
I know struct layout does this differently but not sure why @robert3005
Summary
Alternative to #10533, based on the same
developcommit (18aebea), for comparing the two empty-list representations. Fixes the sameListLayoutStrategy needs at least one chunkerror for empty/null nested lists.Changes
For an empty stream, emit the offsets sentinel
[0]and let the normal child writers finish the empty elements and validity streams. This preserves a structuralListLayoutat each nested list level instead of returning one typed empty chunked layout for the whole empty subtree as #10533 does.Reserve the sentinel's sequence ID before the child EOFs so it can be written without blocking behind child completion. Nonempty input continues through the existing transposition path.
Includes the same four file-roundtrip regressions and nullable/nonnullable empty-stream checks as #10533, plus persisted-layout tests at depths 1, 2, and 5 that read back each empty level's offsets and assert
[0].Validation
The
[0]implementation passed the same 76 selected tests as #10533. The extended run including the new depth/layout tests is in progress. Both changed files were formatted with CI's pinnednightly-2026-09-10rustfmt;git diff --checkpasses.Implemented with OpenAI Codex assistance.