fix: handle nullable validity layers without def levels#6187
Conversation
ReviewClean, well-scoped fix for the panic in #6185. The approach of treating One minor observation: In The regression test correctly covers the mixed-page scenario (one page with def levels, one without). LGTM. |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
## Summary Cherry-picks bug fixes onto `release/v3.0` for the v3.0.1 patch release: - **#6160** - fix: handle `DataType::Null` in `adjust_child_validity` to prevent panic - **#6187** - fix: handle nullable validity layers without def levels - **#6143** - fix: prevent duplicate manifest entries from concurrent table creation - **#6212** - chore: bump lz4_flex patch versions - **#6146** - fix: replace fetch_arrow_table with to_arrow_table ## Test plan - CI passes on cherry-picked commits (both PRs were already merged and tested on main) --------- Co-authored-by: Will Jones <willjones127@gmail.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Xuanwo <github@xuanwo.io> Co-authored-by: Jonathan Hsieh <jon@lancedb.com> Co-authored-by: BubbleCal <bubble-cal@outlook.com>
This fixes the reader panic in #6185 when a page keeps nullable rep/def layer metadata but does not materialize any definition levels. The decoder now treats that page-local state as all-valid and includes a regression test that reproduces the mixed-page case before the fix.
Closes #6185.