Skip to content

test(zstd): re-enable dictionary-compressed zstd.vortex interop (#104)#171

Merged
dfa1 merged 1 commit into
mainfrom
fix/zstd-dict-interop-104
Jun 26, 2026
Merged

test(zstd): re-enable dictionary-compressed zstd.vortex interop (#104)#171
dfa1 merged 1 commit into
mainfrom
fix/zstd-dict-interop-104

Conversation

@dfa1

@dfa1 dfa1 commented Jun 26, 2026

Copy link
Copy Markdown
Owner

Summary

Closes #104. Dictionary-compressed vortex.zstd decode already landed (native libzstd shared-dictionary support via the FFM bindings), but the Rust-vs-Java reader comparison still excluded the zstd.vortex fixture. This re-enables it.

What changed

  • RustJavaReaderComparisonIntegrationTest — added zstd.vortex back to the fixture list (removed the stale "dictionary mode not yet implemented" exclusion).
  • stringByteLength now unwraps a MaskedArray to its VarBin values child, so nullable Utf8 columns (which decode as MaskedArray since fix(writer): unify nullable utf8/binary on the NullableData carrier #168) are counted. Without this the fixture's nullable_utf8 column was dropped from the string-stat comparison.
  • CHANGELOG Fixed entry.

Testing

  • RustJavaReaderComparisonIntegrationTest#rust_vs_javaReader_statsMatch — 26/26 fixtures green, including zstd.vortex (dict-compressed, read end-to-end, matches the Rust reference).

🤖 Generated with Claude Code

Dictionary-compressed vortex.zstd decode landed earlier via the native
libzstd FFM bindings, but the Rust-vs-Java comparison still excluded the
zstd.vortex fixture. Re-enable it and teach the test's string-column
collector to unwrap a MaskedArray (nullable Utf8 now decodes as
MaskedArray over a VarBin values child), so nullable_utf8 byte-length
stats are compared too. The fixture now reads end-to-end and matches the
Rust reference.

Closes #104

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@dfa1 dfa1 merged commit 0a88bb6 into main Jun 26, 2026
6 checks passed
@dfa1 dfa1 deleted the fix/zstd-dict-interop-104 branch June 26, 2026 18:17
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.

vortex.zstd: dictionary-compressed segments not decodable (pure-Java backend lacks dict support)

1 participant