0.75.0#
Released 2026-06-12 — GitHub Release
Changes#
⚠️ Breaks#
aggregate fns to have grouped aggregate kernels for sum and count (#8314) @onursatici
Remove
lenparameter fromScalarFnArray::try_new(#8378) @connortsui20Remove all TurboQuant stuff (#8377) @connortsui20
Fix Validity::mask_eq semantics for mixed variants (#8334) @joseph-isaacs
Rename Validity::no_nulls to definitely_no_nulls and add execute_no_nulls (#8333) @joseph-isaacs
Pass execution context through list view rebuild (#8274) @connortsui20
Initialize LazyBitBufferBuilder from Mask if available, when appending masks pass them by reference (#8221) @robert3005
layout reader ctx (#8037) @onursatici
🚧 Deprecation#
Refactor validity checks to require explicit ExecutionCtx (#8273) @joseph-isaacs
Deprecate vortex-array public APIs that use the hidden LEGACY_SESSION (#8269) @joseph-isaacs
✨ Features#
feat(vortex-geo): native Point extension type and GeoDistance scalar function (#8372) @HarukiMoriarty
feat[gpu]: export as Arrow device array binary (#8320) @0ax1
feat[gpu]: sliced validity in Arrow device export (#8318) @0ax1
Expose Merge expression in vortex-jni (#8319) @robert3005
feat(vortex-array): add Interleave array encoding (#8277) @joseph-isaacs
Add zstd compression schemes for binary data (#8304) @AdamGS
feat(vortex-row): row-oriented byte encoder (size + encode passes) (#8253) @joseph-isaacs
feat: very wide column benchmark (#8252) @joseph-isaacs
Introduce a new JSON extension type in
vortex-json(#8215) @AdamGSfeat[gpu]: arrow device array list view export (#8219) @0ax1
Add RoaringBitmap support to vortex-jni bindings (#8220) @robert3005
Implement ZipKernel for ListViewArray (#8218) @robert3005
move towards
BitBuffer/{Mut}Viewover owned bit buffers (#8208) @joseph-isaacs
🚀 Performance#
perf: branchless primitive zip kernel (#8270) @joseph-isaacs
perf[mask]: check AllTrue/AllFalse in eq (#8354) @joseph-isaacs
BitBuffer binary operations support in place updates to lhs (#8162) @robert3005
Optimize slice for dict and minor changes in other arrays (#8321) @AdamGS
perf: remove unneeded scalar_at and valid_at and use arrays instead (#8307) @joseph-isaacs
perf: branchless boolean zip kernel (#8275) @joseph-isaacs
Initial impl for sort pushdown in DataFusion FileSource implementation (#8235) @AdamGS
Optimize dict array validation to use true_count() (#8263) @joseph-isaacs
Add #[inline] hints to hot path functions (#8260) @joseph-isaacs
perf(fastlanes): fuse bit-packed compare into a transposed mask + untranspose (#8239) @joseph-isaacs
case_when with is_null -> fill_null (#8245) @onursatici
perf: optimize varbinview construction (#8146) @joseph-isaacs
Don’t recalculate chunk offsets for ChunkedReader (#8231) @myrrc
Share FSST symbol table state between executed variants of arrays. (#8222) @AdamGS
🐛 Bug Fixes#
13 changes
fix: keep Arrow device schemas aligned with exports (#8360) @0ax1
aggregate_fn: Return NaN instead of null for mean of all-null input (#8365) @dimitarvdimitrov
fix[file]: read the one-row pruning result in can_prune instead of re… (#8369) @tomsanbear
Fix generation of stat pruning expression for unsupported dtypes (#8326) @robert3005
fix issue with FileSystem path handling (#8248) @robert3005
Wrap object stores in python with Compat layer (#8316) @robert3005
fix:
[profile.bench]codegen-units = 16(#8257) @joseph-isaacsfix grouped sum index for listview array (#8255) @onursatici
split registration to respect nested projection and filters (#8213) @onursatici
Fix zoned min/max over fixed-size-list stats (#8243) @gatesn
fix session deadlock (#8217) @onursatici
📖 Documentation#
🧰 Maintenance#
40 changes
Remove the unused website and clean other dependencies (#8362) @AdamGS
Disable wide-columns benchmark to stop benchmarks from timing out (#8331) @AdamGS
Optimize
fsst_compress_offsets_overflow_i32by 2X locally (#8324) @AdamGSFix javadoc warnings and run lints in ci (#8309) @robert3005
Update all patch updates (#8286) @renovate[bot]
Update Rust crate tabled to 0.21.0 (#8184) @renovate[bot]
Update logback monorepo to v1.5.34 (#8287) @renovate[bot]
Update taiki-e/install-action digest to 0631aa6 (#8285) @renovate[bot]
Update actions/checkout digest to df4cb1c (#8281) @renovate[bot]
Update anthropics/claude-code-action digest to fbda2eb (#8282) @renovate[bot]
Lock file maintenance Rust lock file maintenance (#8296) @renovate[bot]
Update aws-actions/configure-aws-credentials digest to e7f100c (#8283) @renovate[bot]
Update netty monorepo to v4.2.15.Final (#8288) @renovate[bot]
Update storybook monorepo to v10.4.2 (#8290) @renovate[bot]
Update react monorepo (#8289) @renovate[bot]
Update tokio-prost monorepo to v0.14.4 (#8291) @renovate[bot]
Update typescript-eslint monorepo to v8.60.1 (#8292) @renovate[bot]
Update tanstack-virtual monorepo to v3.14.2 (#8293) @renovate[bot]
Lock file maintenance JS lock file maintenance (#8295) @renovate[bot]
Update codecov/codecov-action action to v7 (#8294) @renovate[bot]
Update codecov/codecov-action digest to fb8b358 (#8284) @renovate[bot]
use octet_length() instead of len() in clickbench (#8267) @myrrc
Mask bool iterator (#8258) @onursatici
Update dependency starlette to v1 [SECURITY] (#8254) @renovate[bot]
bench: sweep bit-packed compare across all int types and bit widths (#8238) @joseph-isaacs
Make
from_arrownot panic (#8242) @connortsui20Add
select_unpredictablehint to search_sorted (#8225) @AdamGSAdd ArcSwapMap and use it throughout our session registries (#8072) @robert3005