0.84.0

Released 2026-08-07 — GitHub Release

Changes

⚠️ Breaks

✨ Features

🚀 Performance

  • Skip materializing splitless chunk children during split collection (#9271) @AdamGS

  • Improve take on Chunked(FSL) and FSL(Chunked) array alongside implementation of take using PiecewiseSequence (#8881) @robert3005

  • Lazily untranspose DeltaArray validity take #2 (#9226) @robert3005

  • Optimize ChunkedArray take routing (#9224) @gatesn

  • Optimize split calculation in DF source (#9167) @AdamGS

  • Vectorize checked multiplication by reporting evidence, not a comparison (#9210) @connortsui20

  • Add scalar function performance baselines (#9136) @connortsui20

  • duckdb: don’t use tokio for local reads (#9175) @myrrc

  • Shrink zstd buffer before returning (#9179) @halvorboe

  • perf(vortex-geo): short-circuit predicates with bounding boxes (#9076) @HarukiMoriarty

  • perf(onpair): adopt onpair 0.2 storage-backed dictionary and safety-only validation (#9117) @gargiulofrancesco

  • perf(array): stop flattening appended list views in ListViewBuilder [builders-child-stack] (#9046) @claude[bot]

  • block_on_stream_thread_safe: increase channel size to number of cores (#9116) @myrrc

  • Use unchecked ListViewArray construction after validation (#9044) @robert3005

  • optimize the array creation (slots) (#9013) @joseph-isaacs

  • Unify numeric compute kernels with vortex-compute iteration functions (#8939) @robert3005

  • Execute until arrays match fast path or canonical before exporting to Arrow (#8935) @mhk197

  • Back EnabledEditions with a session Registry (#8956) @joseph-isaacs

  • feat(expr): fold cast of a literal to a literal in Cast simplify (#8962) @HarukiMoriarty

  • Enable metadata-only mask reduction for constant Boolean masks (#8934) @connortsui20

🐛 Bug Fixes

30 changes
  • duckdb: don’t panic on unsupported Value type (#9243) @myrrc

  • duckdb: Restrict pushed aggregations (#9233) @myrrc

  • Fix decimal scalar multiplication and division (#8888) @mhk197

  • duckdb: convert aggregate results to duckdb requested output type (#9231) @myrrc

  • Validate row-index selections (#8574) @gatesn

  • duckdb: TIMESTAMPTZ keeps microsecond precision (#9241) @myrrc

  • duckdb: don’t return stats() for aggregate scans and scans with pushed projection expression (#9230) @myrrc

  • Fix .take() overflow on VarBin with >4GB data (#9227) @myrrc

  • Fill in missing functionality for maps in fuzzer (#9208) @AdamGS

  • Remove the unimplemented NotKernel extension point (#9214) @connortsui20

  • fix(buffer): bound alignment exponents read from untrusted input (#9155) @lorenzhs

  • Panic on DType::Null conversion to NonNullable (#9207) @myrrc

  • Upgrade to fsst 0.6.0 and guard against out of bounds codes (#9149) @robert3005

  • fix(spark): write null array elements as nulls instead of zeros (#9169) @jackylee-ch

  • fix(spark): delete aborted output through the native filesystem layer (#9172) @jackylee-ch

  • Use all cores for parquet->vortex conversion in duckdb-bench (#9165) @myrrc

  • fix(zstd): validate frame content sizes (#9164) @lorenzhs

  • fix get_item parent reduce rule (#9151) @mhk197

  • Harden RLE decompression against untrusted indices and offsets (#8953) @joseph-isaacs

  • Reenable float aggregation pushdown for duckdb except for min() (#9094) @myrrc

  • fix: validate unsigned AVX2 take indices (#9036) @connortsui20

  • mean(all null) = NULL (#9079) @myrrc

  • fix: LazyScanStream prepare/execute is CPU-work not I/O (#9078) @robert3005

  • Mark file-level min/max utf8/binary stats exactness correctly (#9088) @AdamGS

  • duckdb: don’t push down aggregation over floats (#9069) @myrrc

  • make alp-rd dicts deterministic on equal frequency entries (#9032) @onursatici

  • Fix escaped field names in calculate_physical_schema (#9049) @brancz

  • fix: Fix datafusion benchmark, attaching table ref to table URL (#9014) @AdamGS

  • fix(cuda): pass mutated CUDA device buffers as mut (#9001) @0ax1

  • fix(vortex-row): decimal sort keys are not memcmp-comparable across chunks (#8937) @HarukiMoriarty

📖 Documentation

6 changes

🧰 Maintenance

47 changes