vortex-data
vortex
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
Rename ArrayEq/Hash Precision to `EqMode` (#8214) ## Summary This PR renames the `Precision` enum that we use to do array hashing and equality checks to `Accuracy`, as we already have a `Precision` enum we use for stats, that is also part of the binary format. ## API Changes Just the renamed enum, which should be relatively minor. ## Testing N/A --------- Signed-off-by: Adam Gutglick <adam@spiraldb.com>
develop
3 minutes ago
perf: branchless primitive zip kernel Add a dedicated `ZipKernel for Primitive` that selects values branchlessly per 64-bit mask chunk instead of routing through the generic run-copy builder. For each chunk it blends `if_true`/`if_false` per row without a data-dependent branch, so the inner loop is auto-vectorizable and mask-shape-independent (memory-bandwidth-bound): up to ~900x faster on fragmented masks and ~8x on clustered masks, so no density-adaptive fallback is needed. Covers every native ptype. Result validity is computed by zipping the two boolean validity arrays with the same mask -- `Validity::Array(zip(mask, if_true_valid, if_false_valid))` -- reusing the zip machinery rather than re-deriving the mask algebra, with fast paths when both sides' validity already agrees. Adds a `primitive_zip` divan benchmark across fragmented/block/sparse/dense masks for nullable and non-nullable inputs. Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
claude/primitive-branchless-zip
24 minutes ago
Replace deprecated true_count in tests with explicit-context sum Instead of silencing the `BoolTyped::true_count` deprecation with `#[allow(deprecated)]`, drop the deprecated call entirely in the `datetime-parts` and `onpair` tests. Each now counts true values via `sum(array, ctx)` with an explicit `ExecutionCtx`: - `datetime-parts` compare/rules tests gain a small `true_count` helper that builds the context from `LEGACY_SESSION` (matching the surrounding tests). - The `onpair` smoke test reuses its existing empty-`SESSION` context. This removes the last downstream uses of the deprecated API. Verified with `RUSTFLAGS="-D deprecated" cargo build --all-targets` and by running both crates' tests. Signed-off-by: Claude <noreply@anthropic.com>
claude/sweet-sagan-GoHjV
29 minutes ago
perf: branchless mask-select for listview zip Replace the per-element, data-dependent branch in the listview zip kernel's offset/size selection with a branchless, chunk-at-a-time mask select that the compiler can auto-vectorize. For each 64-bit mask chunk, each bit is expanded to a full-width lane mask and both sides are blended with `(t & m) | (f & !m)` via a shared `select_column` helper, so the inner loop is branch-free regardless of mask shape. `if_false` offsets are shifted into the second half of the concatenated elements as before. Adds a `listview_zip` divan benchmark across fragmented/block/sparse/dense masks for nullable and non-nullable inputs. Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
claude/wizardly-carson-6Cixf
30 minutes ago
Rename to EqMode Signed-off-by: Adam Gutglick <adam@spiraldb.com>
adamg/rename-percision-to-accuracy
35 minutes ago
Silence deprecation warnings at downstream true_count test call sites The new `#[deprecated]` on `BoolTyped::true_count` made the workspace lint job (`check`, `clippy-all`, `clippy-default`) fail under `-D warnings` because `datetime-parts` and `onpair` tests still call it. Annotate those test modules with `#[allow(deprecated)]` so CI stays green; migrating them to `sum(array, ctx)` is left for the broader follow-up that removes the hidden static. Signed-off-by: Claude <noreply@anthropic.com>
claude/sweet-sagan-GoHjV
46 minutes ago
Deprecate vortex-array public APIs that use the hidden LEGACY_SESSION These public methods construct an execution context from the hidden global `LEGACY_SESSION` static instead of taking an explicit `ExecutionCtx`. Mark them `#[deprecated]` so callers migrate to the context-threading APIs: - `BoolTyped::true_count` - `PrimitiveTyped::value` - `PrimitiveTyped::value_unchecked` - `from_arrow_array_with_len` Internal callers within `vortex-array` are annotated with `#[allow(deprecated)]` (mirroring the existing `IntoArrowArray` deprecation) so the crate continues to build cleanly while the deprecation surfaces at downstream call sites. Signed-off-by: Claude <noreply@anthropic.com>
claude/sweet-sagan-GoHjV
50 minutes ago
perf: branchless mask-select for primitive and listview zip Replace per-element, data-dependent branching in the zip compute path with a branchless, chunk-at-a-time mask select that the compiler can auto-vectorize. - Add a dedicated `ZipKernel for Primitive` that blends both sides per 64-bit mask chunk instead of routing through the generic run-copy builder. Covers every native ptype and combines validity for both non-nullable and `Validity::Array` inputs. The kernel is mask-shape-independent and memory-bandwidth-bound: up to ~900x faster on fragmented masks and ~8x on clustered masks, so no density-adaptive fallback is needed. - Replace the listview zip's per-element offset/size branch with the same branchless chunked select via a shared `select_column` helper. - Add `primitive_zip` and `listview_zip` divan benchmarks covering fragmented/block/sparse/dense masks for nullable and non-nullable inputs. Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
claude/wizardly-carson-6Cixf
1 hour ago
Latest Branches
CodSpeed Performance Gauge
-18%
perf: branchless primitive zip kernel
#8270
26 minutes ago
241e46d
claude/primitive-branchless-zip
CodSpeed Performance Gauge
0%
Deprecate vortex-array public APIs that use the hidden LEGACY_SESSION
#8269
30 minutes ago
de9af5f
claude/sweet-sagan-GoHjV
CodSpeed Performance Gauge
0%
perf: branchless mask-select for listview zip
#8264
31 minutes ago
f05b6a0
claude/wizardly-carson-6Cixf
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs