arrow only.Expand description
Arrow-native (vectorized) forms of the built-in record transforms (#636).
The Value transforms in crate::transform iterate records as
serde_json::Value — a boxed map + boxed string per field per row. On the
columnar fast path (#375) that means a parquet → select → parquet chain
disqualifies the fast path and re-materializes every record. This module
supplies the same transforms as whole-column operations on an Arrow
RecordBatch, so the chain stays columnar end-to-end.
Only the transforms that are genuinely a column operation live here —
select/drop (projection), rename_field (schema rename), set
(constant column), redact (constant overwrite). They touch the record’s
shape, never parse or re-type a value, so each is byte-identical to
running the Value form on the same batch — which is exactly what the
parity tests assert. Value-inspecting transforms (cast, value_case,
hash, …) and the opaque ones (flatten, explode, …) return None and
keep the chain on the Value path until they gain their own kernels.
Functions§
- batch_
form - The Arrow
RecordBatch → RecordBatchform oft, orNonewhenthas no vectorized kernel yet (the chain then stays on theValuepath).