Skip to content

fix(performance): Parquet benchmark reads nullable taxi columns through the mask - #501

Merged
dfa1 merged 1 commit into
mainfrom
fix/parquet-bench-masked
Oct 9, 2026
Merged

dfa1 merged 1 commit into
mainfrom
fix/parquet-bench-masked

Conversation

@dfa1

@dfa1 dfa1 commented Oct 9, 2026

Copy link
Copy Markdown
Owner

vortexRead and vortexReadMultiColumn cast c.column(...) straight to DoubleArray/IntArray. They crashed with a ClassCastException once nullable global-dictionary columns began decoding to a MaskedArray (null stored as an invalid dictionary entry, as Rust writes it, #467/#468). They now fold the values under the mask, as the Parquet batch path folds its arrays.

This change is benchmark-only and has no CHANGELOG entry. A local smoke run gives vortexRead about 268 and vortexReadMultiColumn about 130 ops/s again.

🤖 Generated with Claude Code

https://claude.ai/code/session_015R8cf8YM8XFQqrkyhSAtYr

…gh the mask

vortexRead/vortexReadMultiColumn cast c.column(...) straight to DoubleArray /
IntArray and crashed with ClassCastException once nullable global-dict columns
began decoding to a MaskedArray (null as an invalid dictionary entry, as Rust
writes it, #467/#468). Fold the values under the mask, as the Parquet batch
path folds its arrays.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015R8cf8YM8XFQqrkyhSAtYr
@dfa1
dfa1 merged commit a933cb5 into main Oct 9, 2026
6 checks passed
@dfa1
dfa1 deleted the fix/parquet-bench-masked branch October 9, 2026 20:40
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