You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace DynVarBinBuilder with a generic VarBinBuilder
`VarBinBuilder<O>` becomes an actual `ArrayBuilder`, carrying its own `DType`
and offset width, so `DynVarBinBuilder` is no longer needed as a separate
type-erasing wrapper.
Encodings recover the concrete offset width from a `&mut dyn ArrayBuilder`
with the new `match_each_varbin_builder!` (i32/i64) and
`match_each_any_varbin_builder!` (every width) macros, which monomorphize the
append body over the width instead of dispatching through `dyn`. The existing
`append_to_builder` specializations for FSST, OnPair and Zstd are ported over
mechanically; their optimizations follow in later commits.
Because the builder's offset type now matches the Arrow target, the Arrow byte
export hands the offsets buffer straight to Arrow with no cast, which also
removes the `VarBinView` + `arrow_cast` round trip a `Utf8`/`Binary` dtype
mismatch used to take. A `Binary` source exported to `Utf8` instead validates
the bytes of its live values, skipping the extents of null slots that
`GenericByteArray::try_new` would have rejected.
Also adds `BinaryView::bytes`, which borrows from already-resolved buffer
slices instead of cloning a buffer handle per row.
Signed-off-by: Robert Kruszewski <robert@spiraldb.com>
0 commit comments