github apache/arrow-rs 56.0.0
arrow 56.0.0

latest releases: 56.1.0, 56.1.0-rc1
one month ago

Changelog

56.0.0 (2025-07-29)

Full Changelog

Breaking changes:

Implemented enhancements:

  • [parquet] Relax type restriction to allow writing dictionary/native batches for same column #8004
  • Support casting int64 to interval #7988 [arrow]
  • [Variant] Add ListBuilder::with_value for convenience #7951 [parquet]
  • [Variant] Add ObjectBuilder::with_field for convenience #7949 [parquet]
  • [Variant] Impl PartialEq for VariantObject #7943 #7948
  • [Variant] Offer simdutf8 as an optional dependency when validating metadata #7902 [parquet] [arrow]
  • [Variant] Avoid collecting offset iterator #7901 [parquet]
  • [Variant] Remove superfluous check when validating monotonic offsets #7900 [parquet]
  • [Variant] Avoid extra allocation in ObjectBuilder #7899 [parquet]
  • [Variant][Compute] variant_get kernel #7893 [parquet]
  • [Variant][Compute] Add batch processing for Variant-JSON String conversion #7883 [parquet]
  • Support MapArray in lexsort #7881 [arrow]
  • [Variant] Add testing for invalid variants (fuzz testing??) #7842 [parquet]
  • [Variant] VariantMetadata, VariantList and VariantObject are too big for Copy #7831 [parquet]
  • Allow choosing flate2 backend #7826 [parquet]
  • [Variant] Tests for creating "large" VariantObjectss #7821 [parquet]
  • [Variant] Tests for creating "large" VariantLists #7820 [parquet]
  • [Variant] Support VariantBuilder to write to buffers owned by the caller #7805 [parquet]
  • [Variant] Move JSON related functionality to different crate. #7800 [parquet]
  • [Variant] Add flag in ObjectBuilder to control validation behavior on duplicate field write #7777 [parquet]
  • [Variant] make serde_json an optional dependency of parquet-variant #7775 [parquet]
  • [coalesce] Implement specialized BatchCoalescer::push_batch for PrimitiveArray #7763 [arrow]
  • Add sort_kernel benchmark for StringViewArray case #7758 [arrow]
  • [Variant] Improved API for accessing Variant Objects and lists #7756 [parquet]
  • Buildable reproducible release builds #7751
  • Allow per-column parquet dictionary page size limit #7723 [parquet]
  • [Variant] Test and implement efficient building for "large" Arrays #7699 [parquet]
  • [Variant] Improve VariantBuilder when creating field name dictionaries / sorted dictionaries #7698 [parquet]
  • [Variant] Add input validation in VariantBuilder #7697 [parquet]
  • [Variant] Support Nested Data in VariantBuilder #7696 [parquet]
  • Parquet: Incorrect min/max stats for int96 columns #7686 [parquet]
  • Add DictionaryArray::gc method #7683 [arrow]
  • [Variant] Add negative tests for reading invalid primitive variant values #7645 [parquet]

Fixed bugs:

  • [Variant] Panic when appending nested objects to VariantBuilder #7907 [parquet]
  • Panic when casting large Decimal256 to f64 due to unchecked unwrap() #7886 [arrow]
  • Incorrect inlined string view comparison after " Add prefix compare for inlined" #7874 [parquet] [arrow]
  • [Variant] test_json_to_variant_object_very_large takes over 20s #7872 [parquet]
  • [Variant] If ObjectBuilder::finalize is not called, the resulting Variant object is malformed. #7863 [parquet]
  • CSV error message has values transposed #7848 [arrow]
  • Concating struct arrays with no fields unnecessarily errors #7828 [arrow]
  • Clippy CI is failing on main after Rust 1.88 upgrade #7796 [parquet] [arrow] [arrow-flight]
  • [Variant] Field lookup with out of bounds index causes unwanted behavior #7784 [parquet]
  • Error verifying parquet-variant crate on 55.2.0 with verify-release-candidate.sh #7746
  • test_to_pyarrow tests fail during release verification #7736 [arrow]
  • [parquet_derive] Example for ParquetRecordWriter is broken. #7732
  • [Variant] Variant::Object can contain two fields with the same field name #7730 [parquet]
  • [Variant] Panic when appending Object or List to VariantBuilder #7701 [parquet]
  • Slicing a single-field dense union array creates an array with incorrect logical_nulls length #7647 [arrow]
  • Ensure page encoding statistics are written to Parquet file #7643 [parquet] (etseidl)

Documentation updates:

Performance improvements:

  • RowConverter on list should only encode the sliced list values and not the entire data #7993 [arrow]
  • [Variant] Avoid extra allocation in list builder #7977 [parquet]
  • [Variant] Convert JSON to Variant with fewer copies #7964 [parquet]
  • Optimize sort kernels partition_validity method #7936 [arrow]
  • Speedup sorting for inline views #7857 [arrow]
  • Perf: Investigate and improve parquet writing performance #7822 [parquet] [arrow]
  • Perf: optimize sort string_view performance #7790 [arrow]
  • Clickbench microbenchmark spends significant time in memcmp for not_empty predicate #7766 [arrow]
  • Use prefix first for comparisons, resort to data buffer for remaining data on equal values #7744 [arrow]
  • Change use of inline_value to inline it to a u128 #7743 [arrow]
  • Add efficient way to upgrade keys for additional dictionary builders #7654 [arrow]
  • Perf: Make sort string view fast(1.5X ~ 3X faster) #7792 [arrow] (zhuqi-lucas)
  • Add specialized coalesce path for PrimitiveArrays #7772 [arrow] (alamb)

Closed issues:

  • Implement full-range i256::to_f64 to replace current ±∞ saturation for Decimal256 → Float64 #7985
  • [Variant] impl FromIterator fpr VariantPath #7955
  • validated and is_fully_validated flags doesn't need to be part of PartialEq #7952 [parquet]
  • [Variant] remove VariantMetadata::dictionary_size #7947 [parquet]
  • [Variant] Improve VariantArray performance by storing the index of the metadata and value arrays #7920
  • [Variant] Converting variant to JSON string seems slow #7869 [parquet]
  • [Variant] Present Variant at Iceberg Summit NYC July 10, 2025 #7858
  • [Variant] Avoid second copy of field name in MetadataBuilder #7814 [parquet]
  • Remove APIs deprecated in or before 54.0.0 #7810 [parquet] [arrow] [arrow-flight]
  • [Variant] Make it harder to forget to finish a pending parent i n ObjectBuilder #7798 [parquet]
  • [Variant] Remove explicit ObjectBuilder::finish() and ListBuilder::finish and move to Drop impl #7780 [parquet]
  • Reduce repetition in tests for arrow-row/src/run.rs #7692 [arrow]
  • [Variant] Add tests for invalid variant values (aka verify invalid inputs) #7681 [parquet]
  • [Variant] Introduce structs for Variant::Decimal types #7660 [parquet]

Merged pull requests:

* This Changelog was automatically generated by github_changelog_generator

Don't miss a new arrow-rs release

NewReleases is sending notifications on new releases.