vortex-data
vortex
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
try this out Signed-off-by: Adam Gutglick <adam@spiraldb.com>
adamg/remove-map-fn-limit
12 minutes ago
Download duckdb sources only once per config/version combo (#9031) ## Rationale for this change This saves us a few hundereds of MBs per `OUT_DIR`, which can change frequently with feature combos ## What APIs are changed? Are there any user-facing changes? None Signed-off-by: Adam Gutglick <adam@spiraldb.com>
develop
13 minutes ago
fix Signed-off-by: Robert Kruszewski <github@robertk.io>
rk/onevarbinbuilder
1 hour ago
refactor(array): canonicalize chunked structs and FSLs through the builder `pack_struct_chunks` and `swizzle_fixed_size_list_chunks` existed because `append_to_builder` used to decode a builder's children: without them, canonicalizing a `ChunkedArray` would concatenate every chunk's children instead of reusing them. Their doc comments describe what the builders now do on their own, so both are dead weight. Route both dtypes through the generic builder path, telling it to keep every chunk boundary. `ListArray` keeps its swizzle for now ā that one also allocates its offsets and sizes through the session allocator, which the builders cannot yet do. Signed-off-by: Claude <noreply@anthropic.com>
claude/chunked-canonical-via-builder-9ze0t6
1 hour ago
test(array): reword a comment the typo checker rejects `typos` splits `mis-sliced` on the hyphen and flags `mis`. Signed-off-by: Claude <noreply@anthropic.com>
claude/builders-canonical-children-9ze0t6
1 hour ago
feat(array): let callers choose a nested builder's chunk threshold `ChildBuilder` copies appended arrays shorter than 64 values instead of giving them a chunk, which is right for the nested builders that append the elements of a single list, and wrong for a caller whose appended arrays are themselves chunks worth preserving. Add `ArrayBuilder::set_min_chunk_len`, a no-op for builders without array children, so such a caller can lower the threshold ā to zero to keep every chunk boundary. The threshold is read when an array is appended and applies transitively to the children of a builder's children. Signed-off-by: Claude <noreply@anthropic.com>
claude/builders-min-chunk-len-9ze0t6
1 hour ago
perf(array): accumulate nested builder validity without a null buffer A nested builder learns about validity from two sources: one row at a time as scalars are appended, and a whole array's worth at a time as arrays are. Only the first needs a null buffer, but `LazyBitBufferBuilder` treated both the same, so every appended array had its validity executed into a `Mask` and its bits copied. `ValidityBuilder` keeps a whole array's validity as a run and concatenates the runs at the end, the way `Validity::concat` already does for `StructArray::try_concat`. `AllValid` and `AllInvalid` runs cost nothing, array-backed runs are bool arrays that are already built, and a builder that only ever saw uniform validity still answers from its nullability rather than producing a bool array. Runs shorter than the chunk threshold are still copied into the null buffer, so a builder fed one row at a time does not accumulate a run per row. `StructBuilder`, `ListBuilder`, `ListViewBuilder` and `FixedSizeListBuilder` use it; the leaf builders keep `LazyBitBufferBuilder`. Signed-off-by: Claude <noreply@anthropic.com>
claude/builders-lazy-validity-9ze0t6
1 hour ago
perf(array): stop flattening appended list views in ListViewBuilder `append_listview_array` rebuilt every incoming `ListViewArray` into an exact layout before appending it. Rebasing offsets by the number of elements already in the builder is correct whatever layout they have, so the rebuild bought nothing except an unconditional promise that the finished array is zero-copyable to a `ListArray` - and it cost the caller any sharing the source expressed. A constant list array is the case that matters: canonicalizing one already points every view at a single copy of the value, and flattening it materialized one copy per row. Appending a 10,000-row constant list of three elements produced 30,000 elements; it now produces 3. Keep trimming unreferenced elements, but otherwise append the views as they arrived and track whether the result is still zero-copyable to a `ListArray` instead of asserting it. The flag is per-array and consumers already branch on it, so callers that need an exact layout can rebuild. Signed-off-by: Claude <noreply@anthropic.com> Signed-off-by: Robert Kruszewski <robert@spiraldb.com>
claude/listview-builder-keep-overlaps-9ze0t6
1 hour ago
Latest Branches
CodSpeed Performance Gauge
0%
Adamg/remove map fn limit
#8766
12 days ago
f1ba9b0
adamg/remove-map-fn-limit
CodSpeed Performance Gauge
0%
Replace DynVarBinBuilder with VarBinBuilder being an actual builder and optimise append_to_builder for string/binary compressed arrays
#9030
1 hour ago
afbc36f
rk/onevarbinbuilder
CodSpeed Performance Gauge
+13%
refactor(array): canonicalize chunked structs and FSLs through the builder [builders-child-stack]
#8967
4 days ago
79f350a
claude/chunked-canonical-via-builder-9ze0t6
Ā© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs