vortex-data
vortex
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
Make ScalarFn array validity lazy when the function defines a validity expression Previously ValidityVTable<ScalarFn> always eagerly executed the validity expression via the legacy session. Now, when the scalar function provides a validity expression over its inputs, the expression is converted into a lazy ScalarFn array DAG instead: Literal nodes become ConstantArrays, ArrayExpr leaves unwrap to the child arrays they hold, and interior nodes become lazy ScalarFn arrays. Constant results are folded back into AllValid/AllInvalid via child_to_validity. Functions that do not define a validity expression (e.g. Kleene logic and/or, where validity depends on the computed values) keep the eager path. The erased fallback for these is is_not_null over the expression itself, so a lazy representation would be self-referential: resolving the validity of the inner node spawns another is_not_null DAG, which recurses without ever shrinking (this manifested as a stack overflow in element-wise execution paths). ScalarFnRef::validity_opt is added to expose whether a function defines its own validity expression. https://claude.ai/code/session_01VPQ7dfZtijfrsjAipwXvEj Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
claude/cool-bardeen-l8jlsy-4-lazy-scalarfn-validity
6 hours ago
fix: regenerate Cargo.lock after rebase onto a12c31090 The rebase left conflict markers in Cargo.lock (missing vortex-geo and vortex-object-store-opendal entries). Restore from the pre-rebase lock and let cargo regenerate only the entries required by the updated Cargo.toml, so the lock matches the workspace and builds cleanly.
XuQianJin-Stars:feature/opendal-cos
9 hours ago
feat(expr): fold cast of a literal to a literal in Cast simplify (#8962) ## Motivation Pruning is shape-sensitive: prune rules pattern-match bare expression nodes and silently decline anything wrapped in a cast. For example, `GeoDistancePrune` (`vortex-geo/src/prune/distance.rs`) requires the comparison's RHS to be a bare `Literal`, so a filter pushed as `GeoDistance(a, b) <= cast(3.19dec as f64)` scans every chunk while the equivalent `GeoDistance(a, b) <= lit(3.19f64)` prunes. Measured in SpatialBench Q1 at SF10: **83ms vs 19ms**, purely from the literal being wrapped. Producers currently work around this by hand-folding literals themselves (vortex-duckdb's `from_bound_f64` in `src/convert/expr.rs`; spiral-geo's `st_dwithin` lowering). Since `ScanBuilder` already runs `optimize_recursive` on every pushed filter (`vortex-layout/src/scan/scan_builder.rs`), one generic fold rule fixes every producer at once. ## The change Implement `simplify_untyped` for `Cast`: if the child is a `Literal`, try `Scalar::cast` to the target dtype and replace the node with the folded literal. Signed-off-by: Nemo Yu <zyu379@wisc.edu>
develop
11 hours ago
fixes Signed-off-by: Robert Kruszewski <github@robertk.io>
ngates/selection-index-sortedness
12 hours ago
simpler Signed-off-by: Robert Kruszewski <github@robertk.io>
ngates/selection-index-sortedness
12 hours ago
simpler Signed-off-by: Robert Kruszewski <github@robertk.io>
rk/jnimetadata
12 hours ago
nits Signed-off-by: Robert Kruszewski <github@robertk.io>
rk/noregistyr
13 hours ago
Expose metadata reading and writing in vortex-jni Signed-off-by: Robert Kruszewski <github@robertk.io>
rk/jnimetadata
13 hours ago
Latest Branches
CodSpeed Performance Gauge
+20%
Make ScalarFn array validity lazy when the function defines a validity expression
#8336
1 month ago
3d95154
claude/cool-bardeen-l8jlsy-4-lazy-scalarfn-validity
CodSpeed Performance Gauge
+20%
feat(vortex-python): Add OpenDAL-backed CosStore to the Python object-store API
#8845
10 hours ago
1e0e128
XuQianJin-Stars:feature/opendal-cos
CodSpeed Performance Gauge
0%
Validate row-index selections
#8574
12 hours ago
8a893e7
ngates/selection-index-sortedness
ยฉ 2026 CodSpeed Technology
Home
Terms
Privacy
Docs