Revision history for ClickHouse-Encoder
0.02 2026-07-31
- Fix the bundled CityHash128 for inputs of 128 bytes or more, so
compressed blocks of a realistic size checksum correctly. All
compression paths were affected.
- Fix RowBinary NULL framing: a Nullable value is written only
when the flag says not-null.
- Harden the decoder against malformed blocks: bound the variant
slot table, cap type and JSON nesting depth, bound allocations
driven by wire counts, and free partially-built columns on croak.
- Reject out-of-range Date, Date32, DateTime64, Enum and
FixedString values instead of wrapping or truncating them.
- Set CLONE_SKIP on the encoder, streamer and bulk inserter.
- decode_stream / select_blocks: stop re-parsing a partial block on
every chunk, and stop mistaking one for a corrupt header.
- parse_create_table accepts `show create table` as it arrives over
HTTP; add a read timeout to TCP read_packet; reject '@' in HTTP
hosts and accept bracketed IPv6 literals.
- Declare Encode and POSIX; suggest Time::Moment.
- Extend fuzz, leak, thread and hardening test coverage.
0.01 2026-05-26
- Initial release.