Skip to content

[ABA-18] test(vortex-layout): repro for FileWriter panic on nullable top-level struct#14

Open
abnobdoss wants to merge 1 commit into
developfrom
fix/aba-18-filewriter-nullable-struct-panic
Open

[ABA-18] test(vortex-layout): repro for FileWriter panic on nullable top-level struct#14
abnobdoss wants to merge 1 commit into
developfrom
fix/aba-18-filewriter-nullable-struct-panic

Conversation

@abnobdoss
Copy link
Copy Markdown
Owner

Summary

  • Adds an #[ignore] + #[should_panic] unit test directly inside vortex-layout/src/layouts/file_stats.rs that calls FileStatsAccumulator::new with a nullable top-level struct DType.
  • Demonstrates the public panic; no fix included pending a semantics decision for how FileStatsAccumulator should handle nullable top-level structs.
  • The test locks current (wrong) behavior: panics with "temporarily does not support nullable top-level structs".

Linear

Closes ABA-18 · https://linear.app/abanoubdoss/issue/ABA-18

Open question

How should FileStatsAccumulator treat nullable top-level structs? Options:

  • (a) Special-case the outer null mask and recurse into fields as if non-nullable (ignore top-level nulls for stats purposes).
  • (b) Reject at the writer API entry point with a typed VortexError (vortex_bail!) instead of a panic — a safe and minimal fix.
  • (c) Implement full support: accumulate a null-count stat for the outer struct row bitmap and recurse into fields.

Existing upstream context

  • PR spiraldb/vortex#3550 intentionally introduced the vortex_panic! at file_stats.rs:73 as a temporary guard pending real support.
  • Issue spiraldb/vortex#710 was closed.
  • The upstream vortex-file crate already carries a #[should_panic] test for this (write_nullable_top_level_struct in vortex-file/src/tests.rs:1251). This PR adds the equivalent unit-level repro at the site of the panic.

🤖 Generated with Claude Code

… top-level struct

Adds an ignored #[should_panic] unit test in file_stats.rs that directly
exercises FileStatsAccumulator::new with a nullable top-level struct DType,
pinning the current panic behavior until the FileStatsAccumulator semantics
decision is made.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Abanoub Doss <abanoub.doss@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant