Skip to content

Commit c34f68f

Browse files
dfa1claude
andcommitted
chore: prepare CHANGELOG for 0.12.1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 11323f5 commit c34f68f

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.12.1] — 2026-07-08
11+
12+
**Null validity** and **real-world file compatibility** are the two themes of this release. The
13+
[Raincloud](https://github.com/spiraldb/raincloud) conformance suite — 247 public datasets written
14+
by the Python `vortex-data` bindings — exposed a systematic family of silent-corruption bugs where
15+
nullable encoding children's validity masks were dropped during decode, causing null rows to appear
16+
as invented values (`0.0`, the FoR base, empty string). All five affected encodings are patched:
17+
`fastlanes.bitpacked` validity-child chain, `vortex.dict` (eager + layout), `vortex.runend`,
18+
`vortex.sparse` (primitive + utf8/binary), `vortex.datetimeparts`, and `fastlanes.alprd`.
19+
Real-world files also uncovered scan failures: mixed per-column chunk grids, nested struct layout,
20+
FSST-compressed string-dict offsets, RLE double/float pools, narrow-integer dict pools, all-null
21+
columns, and zone-map stats from the current Rust writer format (`vortex.zoned`). Unsigned integer
22+
silent-corruption in CSV export and filter predicates is also fixed. The conformance suite itself
23+
ships as a gate-running weekly workflow plus four per-PR JNI interop fixtures.
24+
1025
### Fixed
1126

1227
- Per-zone stats from current Rust writers (`vortex.zoned`, vortex-jni 0.76.0) decode again. The 0.76 zoned layout replaced the legacy `vortex.stats` bit-set metadata with an aggregate-function spec list and dropped the per-stat truncation flags; the reader now reconstructs the stats table from that spec list (min/max/sum/null_count), so `columnZoneStats` and aggregate push-down work against those files instead of throwing `ClassCastException`. ([#197](https://github.com/dfa1/vortex-java/pull/197))

0 commit comments

Comments
 (0)