github apache/arrow-rs 58.1.0
arrow 58.1.0

7 hours ago

Changelog

58.1.0 (2026-03-20)

Full Changelog

Implemented enhancements:

  • Reuse compression dict lz4_block #9566
  • [Variant] Add variant_to_arrow Struct type support #9529
  • [Variant] Add unshred_variant support for Binary and LargeBinary types #9526
  • [Variant] Add shred_variant support for LargeUtf8 and LargeBinary types #9525
  • [Variant] variant_get tests clean up #9517
  • parquet_variant: Support LargeUtf8 typed value in unshred_variant #9513
  • parquet-variant: Support string view typed value in unshred_variant #9512
  • Deprecate ArrowTimestampType::make_value in favor of from_naive_datetime #9490 [arrow]
  • Followup for support ['fieldName'] in VariantPath #9478
  • Speedup DELTA_BINARY_PACKED decoding when bitwidth is 0 #9476 [parquet]
  • Support CSV files encoded with charsets other than UTF-8 #9465 [arrow]
  • Expose Avro writer schema when building the reader #9460 [arrow]
  • Python: avoid importing pyarrow classes ever time #9438
  • Add append_nulls to MapBuilder #9431 [arrow]
  • Add append_non_nulls to StructBuilder #9429 [arrow]
  • Add append_value_n to GenericByteBuilder #9425 [arrow]
  • Optimize from_bitwise_binary_op #9378 [arrow]
  • Configurable Arrow representation of UTC timestamps for Avro reader #9279 [arrow]

Fixed bugs:

  • MutableArrayData::extend does not copy child values for ListView arrays #9561 [arrow]
  • ListView interleave bug #9559 [arrow]
  • Flight encoding panics with "no dict id for field" with nested dict arrays #9555 [arrow] [arrow-flight]
  • "DeltaBitPackDecoder only supports Int32Type and Int64Type" but unsigned types are supported too #9551 [parquet]
  • Potential overflow when calling util::bit_mask::set_bits (soundness issue) #9543 [arrow]
  • handle Null type in try_merge for Struct, List, LargeList, and Union #9523 [arrow]
  • Invalid offset in sparse column chunk data for multiple predicates #9516 [parquet]
  • debug_assert_eq! in BatchCoalescer panics in debug mode when batch_size < 4 #9506 [arrow]
  • Parquet Statistics::null_count_opt wrongly returns Some(0) when stats are missing #9451 [parquet]
  • Error "Not all children array length are the same!" when decoding rows spanning across page boundaries in parquet file when using RowSelection #9370 [parquet]
  • Avro schema resolution not properly supported for complex types #9336 [arrow]

Documentation updates:

  • Update planned release schedule in README.md #9466 (alamb)

Performance improvements:

  • Introduce NullBuffer::try_from_unsliced to simplify array construction #9385 [parquet] [arrow]
  • perf: Coalesce page fetches when RowSelection selects all rows #9578 [parquet] (Dandandan)
  • Use chunks_exact for has_true/has_false to enable compiler unrolling #9570 [arrow] (adriangb)
  • pyarrow: Cache the imported classes to avoid importing them each time #9439 (Tpt)

Closed issues:

  • Duplicate macro definition: partially_shredded_variant_array_gen #9492
  • Enable LargeList / ListView / LargeListView for VariantArray::try_new #9455
  • Support variables/expressions in record_batch! macro #9245 [arrow]

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.