laskoviymishka opened a new pull request, #1041:
URL: https://github.com/apache/iceberg-go/pull/1041
Pins the puffin envelope shape around a deletion-vector-v1 blob without
depending on the in-flight roaring decoder (#866). The fixture is two files:
- puffin/testdata/deletion-vector-v1-payload.bin — a Java-produced 64-bit
roaring DV payload lifted directly from apache/iceberg test resources
(small-alternating-values-position-index.bin, 50 bytes; bitmap encodes
positions 1, 3, 5, 7, 9).
- puffin/testdata/deletion-vector-v1.puffin — the same payload wrapped by
puffin.Writer with the spec-canonical metadata (snapshot-id=-1,
sequence-number=-1, deletion-vector-v1 blob type, referenced-data-file and
cardinality properties).
The test asserts both layers. Reader side: blob count, type, spec-mandated
invariants, properties, and that ReadBlob round-trips the inner payload
byte-for-byte equal to the standalone Java fixture. Writer side: regenerates
the envelope in-memory and asserts byte equality against the on-disk fixture.
Without the writer-side check the test was reader-only round-trip and writer
drift would silently calcify into the next regeneration.
Honest framing: this is a Go-writer wire-format pin with a Java- equivalent
inner payload, not a strong Java cross-impl pin. The basic envelope shape is
cross-checked by TestWriterBitIdenticalWithJava, but that test does not
exercise empty Fields arrays or multi-key blob Properties — both of which this
fixture relies on — and JSON key ordering of blob Properties is encoder-defined.
A regen test gated on REGEN_FIXTURES=1 reproduces the .puffin from the inner
payload and self-validates by reading the blob back before overwriting the
on-disk file.
Closes #1008.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]