pub const COL_ENC: &str = "enc";Expand description
oid | object_type | mode | path | payload.
oid_len is a parameter because this engine serves both sha1 (20 bytes) and
sha256 (32); a hardcoded 20 would silently truncate every sha256 key.
How each row’s payload is stored — ENC_RAW or ENC_ZLIB. Lever 3
(2026-09-04): the eager pool was 1.67 GB of inflated commits and trees, 61 %
of everything the store kept above the pack. Arrow IPC’s own body
compression is per BUFFER, so a point read could not lift one row out of a
compressed batch and the pread extent fast path — the whole reason the
pool is fast — would have died with it (payload_data_offset refuses
compressed batches for exactly that reason; MEASURED 200 000× read
amplification without the extent). So the compression is per ROW: the
extent pread returns one compressed payload and inflates just that one.
zlib, because the crate already has it (flate2, zlib-rs — pure Rust), and
because it is the codec git itself uses per object, so the ratios are known
ground.