0.88.0

Released 2026-10-08 — GitHub Release

Important breaks

None

Changes

⚠️ Breaks

  • Speed up scalar construction, stats reads and aggregate partial merging (#10326) @robert3005

  • break(arrow): add export options and allow skipping view buffer compaction (#10220) @lorenzhs

  • Blocked BitPacked: store block offsets as a child (#10004) @mhk197

  • Delta validity is a top level child (#9970) @robert3005

  • Move users of map_each_with_validity and map_each_in_place to lane kernels and remove those methods (#10139) @robert3005

🚧 Deprecation

✨ Features

🚀 Performance

🐛 Bug Fixes

13 changes
  • fix(python): translate Polars time literals (#10186) @danking

  • fix(buffer): require both halves of a Zip to be TrustedLen (#10293) @jianhe25

  • fix(buffer): validate offsets in Buffer::into_arrow_offset_buffer (#10292) @jianhe25

  • fix(buffer): don’t create &mut [u64] over uninitialized memory in collect_words_in (#10294) @jianhe25

  • Trim child data on Arrow slice imports (#10379) @palaska

  • duckdb: i16 Decimal on duckdb side may fit in Vortex’s i8 decimal buffer (#10155) @myrrc

  • Keep the file sum absent when a chunk sum overflows (#10328) @connortsui20

  • Ignore empty constant chunks in aggregate states (#10254) @connortsui20

  • fix(parquet-variant): decline all_non_distinct when only one side is shredded (#10275) @jackylee-ch

  • fix(python): preserve nullability when converting a chunked array with nulls (#10283) @jackylee-ch

  • fix(buffer): enable and detect bmi1 for _tzcnt_u64 in select_in_word (#10295) @jianhe25

  • fix(array): preserve result nullability when simplifying and/or/zip (#10286) @jackylee-ch

  • fix(datafusion): preserve list element field metadata in physical schema (#10285) @jackylee-ch

🧰 Maintenance

14 changes