arrow-arith
Arrow arithmetic kernels
59.2.0
72M downloads/mo
#977 most downloaded on crates.io
apache/arrow-rs
What this package is like to depend on
Last release 17 days ago
06 Aug 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 55 of 59 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
59 releases · first in 2023
15 releases in the last 12 months
see the full history below
Release timeline
59 releases · Jan 2023 to Aug 2026Releases
latest 59-
59.2.006 Aug 2026Release notes
Open source →Changelog
59.2.0 - (2026-08-02)
Enhancements
- arrow-avro: Deprecate object_store integration by @brancz in #10484
- chore(arrow): add unchecked array builder methods by @Rich-T-kid in #10440
- feat(arrow-ipc): add sans-IO stream encoder by @Phoenix500526 in #10277
- chore(arrow-cast): support suffix white space in arrow-cast parse by @Rich-T-kid in #10396
- feat(coalesce): add size function by @rluvaton in #10331
- fix(parquet): support mask filtering across skipped pages by @hhhizzz in #10288
- chore(arrow-cast): support white space prefixed parse for ints and floats by @Rich-T-kid in #10374
- chore(arrow-buffer): Make more of i256 available in const code by @AdamGS in #10363
- feat(arrow-array): Expose builder buffer capacity accessors by @Weijun-H in #10342
- feat(arrow-arith): Add interval multiplication by i64 by @peterxcli in #10336
- fix: Make
parquet-indexwork with column paths by @korowa in #10330 - feat(arrow-csv): add support for parsing
Float16by @Glatzel in #10343 - Remove the unmaintained paste dependency from arrow by @Phoenix500526 in #10303
- chore: formalize the default map field names to match default arrow spec by @rluvaton in #10297
- feat(variant): Add
variant_to_arrowMaptype support by @sdf-jkl in #10307
Bug fixes
- fix(arrow-schema): Persist dictionary ordered flag on FFI schema import by @borchero in #10514
- fix(arrow-json): validate ListView child nullability by @dk3yyyy in #10486
- fix(arrow-json): validate map value nullability by @subotac in #10475
- avro: bound VLQDecoder::long against overlong varints by @STiFLeR7 in #10407
- arrow-row: Fix decode_fixed_size_list to apply the corrected_type step for dictionary children by @zhuqi-lucas in #10414
- [Variant] make
valuemandatory field forVariantArray/ShreddingStateby @sdf-jkl in #10318 - fix off by one error for slice accounting by @Rich-T-kid in #10406
- fix:
GenericByteViewArray::gc()drops inline views on the multi-buffer slow path by @adriangb in #10287 - fix(arrow-json): render coerced f32 as its value in the string decoder by @hareshkh in #10386
- fix(arrow-cast): make
b64_encodereject invalid UTF-8 from misbehavingEngineimpls by @bit2swaz in #10324 - fix: take FFI_ArrowArrayStream errno values from libc by @fornwall in #10299
- fix(arrow-data): allow full dictionary key range when concatenating by @raphaelroshan in #10323
- Don't panic on invalid c ffi schema name by @robert3005 in #10328
- fix(REE): check upfront if sorting empty array or 0 limit by @Jefffrey in #10293
- fix(arrow-avro): bound untrusted OCF block size and item counts by @miniex in #10237
- fix(arrow-array): disallow creating
MapArraywith nullable key field by @rluvaton in #10272 - fix: don't panic on
ArrayData::try_newon bad input even whenforce_validatefeature is on by @rluvaton in #10282
Performance improvements
- perf(parquet): slice up contiguous buffer for decimals and fsb by @MassivePizza in #10364
- feat(parquet):
RowSelectioncan be backed by aBooleanBufferby @haohuaijin in #10141 - perf(parquet): use Cursor in ZSTDCodec to avoid Vec alloc and copy by @MassivePizza in #10345
- optimize(parquet): Nested list batching child.write calls by @mapleFU in #10085
- perf(parquet): splice buffered pages with
write_allinstead ofio::copy(adapts #10052) by @adriangb in #10353 - hoist calls for null_sentinel by @Rich-T-kid in #10356
- perf: speed up substring_by_char with an ASCII fast path and single-pass bounds by @andygrove in #10334
- Cache encoded field name in FieldEncoder by @MassivePizza in #10296
- perf: allow users to skip utf8 validation in arrow-row by @Rich-T-kid in #10319
- perf: Improve decimal addition and subtraction when scale is equal by @AdamGS in #10333
- optimize(interleave): implement interleave for FixedSizeList/Map type by @mapleFU in #10046
- Perf: Pre-size buffer allocations to avoid intermediate allocations by @Rich-T-kid in #10262
- Perf: create dictionary reader config and default unsafeflag to false by @Rich-T-kid in #10260
- Perf: Introduce zero copy path when tonic returns an aligned buffer by @Rich-T-kid in #10273
- Validate short view strings in separate buffer in arrow-row by @Jefffrey in #10250
Documentation updates
- chore(parquet): add link to ticket in object_store deprecation message by @alamb in #10502
- chore(avro): add link to ticket in object_store deprecation message by @alamb in #10503
- docs: clarify decimal negative scale behavior by @ByteBaker in #10304
- Docs: fix mutableArrayData comments by @Rich-T-kid in #10326
- docs: trim release schedule for released versions by @alamb in #10280
- Align parquet-geospatial crate docs with README by @paleolimbot in #10302
Miscellaneous
- Revert "chore: formalize the default map field names to match default arrow spec (#10297)" by @alamb in #10506
- parquet: deprecate explicit
object_storeintegration by @brancz in #10354 - fix(parquet): restore opaque return type for
RowSelection::iterby @haohuaijin in #10450 - refactor(parquet): split
arrow_reader/selectioninto smaller modules by @haohuaijin in #10434 - chore: deduplicate filter nulls code in coalesce/filter kernel by @Jefffrey in #10348
- chore: remove parquet dependency from parquet_derive by @ByteBaker in #10327
-
59.1.007 Jul 2026Release notes
Open source →Changelog
59.1.0 (2026-07-03)
Implemented enhancements:
- Fast path for nested
DictionaryArraycasting #10247 [arrow] - parquet/arrow: reading multiple nested columns fails with "Not all children array length are the same!" when a list continues across DataPageV2 page boundary #10243 [parquet]
- Add product aggregate kernel to arrow-rs #10150 [arrow]
- Stricter
DataTypeparsing #10146 [arrow] - Support validating CSV headers against Schema #10143 [arrow]
- arrow-ipc: Supports compression level configuration for arrow-ipc writer #10132 [arrow]
- [Variant]
VariantArrayfield API naming #10093 - Add
StructArray::field_APIs symmetric toStructArray::column_ones #10092 [arrow] - arrow-buffer: implement Saturating, CheckedShl, Not num-traits for i256 #10087 [arrow]
- feat: native concat for
MapArray#10047 [arrow] - [Variant] Add
variant_to_arrowDictionary/REEtype support #10013
Fixed bugs:
- arrow-row on fixed size binary/list with size 0 and no nulls return wrong length #10270
- casting list to 0-size fixedsizelist can cause incorrect output length #10227 [arrow]
- Buffer count mismatched with metadata when encoding records with dictionary of dictionaries #10213 [arrow]
Buffer::into_mutableis not consistent regarding sliced data and can lead to panics #10117 [arrow]- parquet_derive: cannot read or write columns whose name is a Rust keyword (raw identifiers like r#type become column "r#type") #10112
- parquet: fix OffsetBuffer panic on corrupt input #10107 [parquet]
- Parquet geospatial conversion uses metadata key "algorithm" instead of "edges" in geoarrow metadata #9929 [parquet]
Documentation updates:
- doc: More comments to
concat_batches#10178 (2010YOUY01) - Minor: improve PageStore docs with a temp-file spilling example #10074 [parquet] (alamb)
Performance improvements:
- perf: interleave_list for List<Primitive> could be optimized? #10022 [arrow]
- perf(arrow-ord): Avoid full index materialization for small-limit lexsorts #9990 [arrow]
- Replace conversion of binary->string in arrow-row from arraydata to direct construction #10261 [arrow] (Jefffrey)
- [arrow-flight encode path]re-use flatbufferbuilder #10220 [arrow] (Rich-T-kid)
- [10125] arrow-flight decode path optimizations (add
skip_validationto arrow-flight) #10206 [arrow] [arrow-flight] (Rich-T-kid) - Improve performance of
concat_elementsByteViewArray concatenation #10161 [arrow] (pepijnve) - [arrow-flight] Optimize flight, remove some allocations, add dictionary focused benchmarks #10126 [arrow] [arrow-flight] (Rich-T-kid)
- optimize(concat): concat map implementation #10048 [arrow] (mapleFU)
- Reduce copies in Arrow IPC writer #10044 [arrow] (Rich-T-kid)
- perf(interleave): Optimize list interleave_list when child is primitive #10025 [arrow] (mapleFU)
Closed issues:
- Soundness: Unsound alignment contract in public
FromBytestrait andBitReader::get_batch#10164 [parquet] - ParquetPushDecoder: expose the next row-group index that try_next_reader will yield #10148 [parquet]
- arrow-ipc: Extend writer benchmarks to include dictionaries #10119 [arrow]
- bench(parquet): benchmark for nested list write #10083 [parquet]
- Support i256 implement From<i128> #10080 [arrow]
Merged pull requests:
- fix(arrow-row): allow to convert non empty fixed size binary/list array with size length 0 and no nulls #10271 [arrow] (rluvaton)
- chore: Fix audit CI run by ignore quick-xml audit advisories #10267 (alamb)
- fix main: parquet test compilation failure #10266 [parquet] (Jefffrey)
- minor: drive-by refactors for dicts in substring & filter #10264 [arrow] (Jefffrey)
- Add validated row decode benchmark #10259 [arrow] (alamb)
- arrow-cast: Add optimized path for unnesting a dict #10248 [arrow] (brancz)
- feat: support uuid from fixed type of length 16 #10241 [arrow] (ariel-miculas)
- chore(deps): bump actions/cache from 6.0.0 to 6.1.0 #10240 (dependabot[bot])
- fix: Rename parquet feature flag 'flate2-rust_backened' to 'flate2-rust_backend' #10239 [parquet] (dannycjones)
- chore: Make clippy::question_mark happy #10231 (Tpt)
- fix(ipc): reject dictionary-encoded dictionary values #10230 [arrow] (goutamadwant)
- Replace
ArrayDatawith directArrayconstruction inarrow-row#10229 [arrow] (Jefffrey) - fix: casting list to fixedsizelist didn't respect input length #10228 [arrow] (Jefffrey)
- chore: Fix clippy::byte_char_slices (use byte strings instead of explicit arrays) #10225 [parquet] [arrow] (Tpt)
- nit: arrow-pyarrow: Use string interning #10224 (Tpt)
- Support concatenation of mixed FixedSizeBinary via
concat_elements_dyn#10222 [arrow] (pepijnve) - rename Compression struct #10221 [arrow] [arrow-flight] (Rich-T-kid)
- chore(deps): bump the all-other-cargo-deps group across 1 directory with 16 updates #10218 (dependabot[bot])
- chore(deps): bump actions/setup-python from 6.2.0 to 6.3.0 #10210 (dependabot[bot])
- [10125] Introduce mult-batch decode benchmarks #10207 [arrow] [arrow-flight] (Rich-T-kid)
- chore(deps): bump actions/cache from 5.0.5 to 6.0.0 #10203 (dependabot[bot])
- introduce decode benchmarks #10202 [arrow] [arrow-flight] (Rich-T-kid)
- Fix
merge_kernelsbenchmark panic due to not wrapping withScalar#10199 [arrow] (Jefffrey) - Benchmarks and performance improvement for parquet boolean reader #10196 [parquet] (jhorstmann)
- add stale PR workflow #10194 (Jefffrey)
- chore: group minor/patch dependabot updates #10193 (Jefffrey)
- chore(deps): bump http from 1.4.0 to 1.4.2 #10191 (dependabot[bot])
- chore(deps): bump syn from 2.0.117 to 2.0.118 #10190 (dependabot[bot])
- chore(deps): bump chrono from 0.4.44 to 0.4.45 #10188 (dependabot[bot])
- chore(deps): bump uuid from 1.23.1 to 1.23.3 #10186 (dependabot[bot])
- chore: run
cargo updateto bump quinn #10181 (Jefffrey) - test: cover signed integers and bool in BitReader::get_batch test #10180 [parquet] (alamb)
- [arrow-select] perf: Replace
ArrayDatawith directArrayconstruction in take kernels #10176 [arrow] (liamzwbao) - Return PyValueError for nullable PyArrow struct imports #10174 (fallintoplace)
- Fix Variant time microsecond JSON formatting #10173 (fallintoplace)
- Split traits for plain and bitpacked decoding and fix soundness issue in BitReader::get_batch #10172 [parquet] (jhorstmann)
- fix: switch generic usages of
i128toIntervalMonthDayNanofor MonthDayNano type #10171 [arrow] (Jefffrey) - chore: specify
--lockedwhen cargo installingcargo-audit#10170 (Jefffrey) - chore: Fix clippy::useless_borrows_in_formatting #10163 [parquet] [arrow] (Tpt)
- fix(arrow-cast): respect cast safety for overflowing temporal casts #10162 [arrow] (SAY-5)
- chore(deps): bump actions/checkout from 6 to 7 #10159 (dependabot[bot])
- feat(parquet): add ParquetPushDecoder::peek_next_row_group() #10158 [parquet] (zhuqi-lucas)
- feat(pyarrow)
FromPyArrowonVec<T>: allow any iterable for input #10155 (Tpt) - nit: pyarrow: simplify class validation error creation #10154 (Tpt)
- [Variant] add doc reference to
VariantArrayBuilder#10152 (sdf-jkl) - feat: Adds product aggregate compute kernel #10151 [arrow] (devanbenz)
- Stricter datatype parsing for decimals, fixedsizelists and time32/64 #10147 [arrow] (Jefffrey)
- feat(arrow_csv): add header validation option #10144 [arrow] (XiNiHa)
- [Parquet] route dictionary page through the PageStore #10142 [parquet] (liamzwbao)
- chore: update pyo3 dependency to 0.29 #10134 (timsaucer)
- feat(ipc): Supports compression level configuration #10133 [arrow] (wForget)
- fix: write error for dbg output of out of range timestamps #10130 [arrow] (Jefffrey)
- [Variant]
VariantArrayfield API naming #10124 (sdf-jkl) - feat(arrow_array): add helper function to create MapArray from
Vec<Option<Vec<(Key, Option<Value>)>>>for tests #10123 [arrow] [arrow-flight] (rluvaton) - perf(arrow-ipc): Add writer benchmarks for dictionaries #10122 [arrow] (JakeDern)
- feat: support
MapArrayin lengths kernel #10121 [arrow] (rluvaton) - feat: add
OffsetBuffer::subtractto allow to shift offsets by value #10120 [arrow] (rluvaton) - fix:
Buffer::into_mutablereturn error instead of panic for converting owned sliced when not start at 0 and fix returned Mutable length #10118 [arrow] (rluvaton) - chore: update
Bytesvisibility to correctly reflect the actual visibility #10115 [arrow] (rluvaton) - fix(parquet_derive): support raw identifiers as column names #10113 (cbmixx)
- removed clippy ignore statment #10111 [arrow] (Rich-T-kid)
- Add
StructArray::field_APIs symmetric toStructArray::column_ones #10110 [arrow] (sdf-jkl) - fix(parquet): return error instead of panicking in pad_nulls on corrupt input #10108 [parquet] (thepenguinco)
- Minor: Add interleave tests for List<Decimal128> and List<Timestamp(tz)> #10099 [arrow] (alamb)
- Add arrow-flight test coverage for IPC compression #10097 [arrow] [arrow-flight] (alamb)
- chore(deps): bump pyspark from 3.3.2 to 3.4.4 in /parquet/pytest #10091 [parquet] (dependabot[bot])
- refactor(parquet): bundle array reader recursion args into
ReaderArgs#10089 [parquet] (HippoBaro) - arrow-buffer: implement Saturating, Checked num-traits for i256 #10088 [arrow] (theirix)
- bench(parquet): add nested list writer benchmarks #10084 [parquet] (mapleFU)
- Implement From<i128> for i256 #10081 [arrow] (AdamGS)
- test(parquet): drop confusing
mainreference in page-roundtrip test comment #10072 [parquet] (adriangb) - ci: Split miri tests into 4 parallel shards #10067 (AdamGS)
- Add tests and fix corner cases for Parquet/GeoArrow extension type conversion #10065 [parquet] (paleolimbot)
- Support writing REE arrays directly to Parquet #10064 [parquet] (Rich-T-kid)
- test(arrow-select): additional tests for inline-view filter fast path (tests for #9755) #10054 [arrow] (alamb)
- test(arrow-select): add take_bytes coverage for sliced values and nullable offset overflow #10053 [arrow] (alamb)
- Consolidate
filter_null_maskintoFilterPredicate::filter_nulls#10049 [arrow] (alamb) - [Variant] Add
VariantBuildervalues check #10016 (sdf-jkl) - [Variant] Preserve
UUIDextension type metadata for Parquet writer #10015 (sdf-jkl) - feat(parquet-variant): add Dictionary and REE variant_to_arrow support #10014 (mneetika)
- perf(arrow-ord): Avoid full index materialization for small-limit lexsorts #9991 [arrow] (pchintar)
* This Changelog was automatically generated by github_changelog_generator
Release notes
Open source →Implemented enhancements:
- Fast path for nested
DictionaryArraycasting #10247 [arrow] - parquet/arrow: reading multiple nested columns fails with "Not all children array length are the same!" when a list continues across DataPageV2 page boundary #10243 [parquet]
- Add product aggregate kernel to arrow-rs #10150 [arrow]
- Stricter
DataTypeparsing #10146 [arrow] - Support validating CSV headers against Schema #10143 [arrow]
- arrow-ipc: Supports compression level configuration for arrow-ipc writer #10132 [arrow]
- [Variant]
VariantArrayfield API naming #10093 - Add
StructArray::field_APIs symmetric toStructArray::column_ones #10092 [arrow] - arrow-buffer: implement Saturating, CheckedShl, Not num-traits for i256 #10087 [arrow]
- feat: native concat for
MapArray#10047 [arrow] - [Variant] Add
variant_to_arrowDictionary/REEtype support #10013
Fixed bugs:
- arrow-row on fixed size binary/list with size 0 and no nulls return wrong length #10270
- casting list to 0-size fixedsizelist can cause incorrect output length #10227 [arrow]
- Buffer count mismatched with metadata when encoding records with dictionary of dictionaries #10213 [arrow]
Buffer::into_mutableis not consistent regarding sliced data and can lead to panics #10117 [arrow]- parquet_derive: cannot read or write columns whose name is a Rust keyword (raw identifiers like r#type become column "r#type") #10112
- parquet: fix OffsetBuffer panic on corrupt input #10107 [parquet]
- Parquet geospatial conversion uses metadata key "algorithm" instead of "edges" in geoarrow metadata #9929 [parquet]
Documentation updates:
- doc: More comments to
concat_batches#10178 (2010YOUY01) - Minor: improve PageStore docs with a temp-file spilling example #10074 [parquet] (alamb)
Performance improvements:
- perf: interleave_list for List<Primitive> could be optimized? #10022 [arrow]
- perf(arrow-ord): Avoid full index materialization for small-limit lexsorts #9990 [arrow]
- Replace conversion of binary->string in arrow-row from arraydata to direct construction #10261 [arrow] (Jefffrey)
- [arrow-flight encode path]re-use flatbufferbuilder #10220 [arrow] (Rich-T-kid)
- [10125] arrow-flight decode path optimizations (add
skip_validationto arrow-flight) #10206 [arrow] [arrow-flight] (Rich-T-kid) - Improve performance of
concat_elementsByteViewArray concatenation #10161 [arrow] (pepijnve) - [arrow-flight] Optimize flight, remove some allocations, add dictionary focused benchmarks #10126 [arrow] [arrow-flight] (Rich-T-kid)
- optimize(concat): concat map implementation #10048 [arrow] (mapleFU)
- Reduce copies in Arrow IPC writer #10044 [arrow] (Rich-T-kid)
- perf(interleave): Optimize list interleave_list when child is primitive #10025 [arrow] (mapleFU)
Closed issues:
- Soundness: Unsound alignment contract in public
FromBytestrait andBitReader::get_batch#10164 [parquet] - ParquetPushDecoder: expose the next row-group index that try_next_reader will yield #10148 [parquet]
- arrow-ipc: Extend writer benchmarks to include dictionaries #10119 [arrow]
- bench(parquet): benchmark for nested list write #10083 [parquet]
- Support i256 implement From<i128> #10080 [arrow]
Merged pull requests:
- fix(arrow-row): allow to convert non empty fixed size binary/list array with size length 0 and no nulls #10271 [arrow] (rluvaton)
- chore: Fix audit CI run by ignore quick-xml audit advisories #10267 (alamb)
- fix main: parquet test compilation failure #10266 [parquet] (Jefffrey)
- minor: drive-by refactors for dicts in substring & filter #10264 [arrow] (Jefffrey)
- Add validated row decode benchmark #10259 [arrow] (alamb)
- arrow-cast: Add optimized path for unnesting a dict #10248 [arrow] (brancz)
- feat: support uuid from fixed type of length 16 #10241 [arrow] (ariel-miculas)
- chore(deps): bump actions/cache from 6.0.0 to 6.1.0 #10240 (dependabot[bot])
- fix: Rename parquet feature flag 'flate2-rust_backened' to 'flate2-rust_backend' #10239 [parquet] (dannycjones)
- chore: Make clippy::question_mark happy #10231 (Tpt)
- fix(ipc): reject dictionary-encoded dictionary values #10230 [arrow] (goutamadwant)
- Replace
ArrayDatawith directArrayconstruction inarrow-row#10229 [arrow] (Jefffrey) - fix: casting list to fixedsizelist didn't respect input length #10228 [arrow] (Jefffrey)
- chore: Fix clippy::byte_char_slices (use byte strings instead of explicit arrays) #10225 [parquet] [arrow] (Tpt)
- nit: arrow-pyarrow: Use string interning #10224 (Tpt)
- Support concatenation of mixed FixedSizeBinary via
concat_elements_dyn#10222 [arrow] (pepijnve) - rename Compression struct #10221 [arrow] [arrow-flight] (Rich-T-kid)
- chore(deps): bump the all-other-cargo-deps group across 1 directory with 16 updates #10218 (dependabot[bot])
- chore(deps): bump actions/setup-python from 6.2.0 to 6.3.0 #10210 (dependabot[bot])
- [10125] Introduce mult-batch decode benchmarks #10207 [arrow] [arrow-flight] (Rich-T-kid)
- chore(deps): bump actions/cache from 5.0.5 to 6.0.0 #10203 (dependabot[bot])
- introduce decode benchmarks #10202 [arrow] [arrow-flight] (Rich-T-kid)
- Fix
merge_kernelsbenchmark panic due to not wrapping withScalar#10199 [arrow] (Jefffrey) - Benchmarks and performance improvement for parquet boolean reader #10196 [parquet] (jhorstmann)
- add stale PR workflow #10194 (Jefffrey)
- chore: group minor/patch dependabot updates #10193 (Jefffrey)
- chore(deps): bump http from 1.4.0 to 1.4.2 #10191 (dependabot[bot])
- chore(deps): bump syn from 2.0.117 to 2.0.118 #10190 (dependabot[bot])
- chore(deps): bump chrono from 0.4.44 to 0.4.45 #10188 (dependabot[bot])
- chore(deps): bump uuid from 1.23.1 to 1.23.3 #10186 (dependabot[bot])
- chore: run
cargo updateto bump quinn #10181 (Jefffrey) - test: cover signed integers and bool in BitReader::get_batch test #10180 [parquet] (alamb)
- [arrow-select] perf: Replace
ArrayDatawith directArrayconstruction in take kernels #10176 [arrow] (liamzwbao) - Return PyValueError for nullable PyArrow struct imports #10174 (fallintoplace)
- Fix Variant time microsecond JSON formatting #10173 (fallintoplace)
- Split traits for plain and bitpacked decoding and fix soundness issue in BitReader::get_batch #10172 [parquet] (jhorstmann)
- fix: switch generic usages of
i128toIntervalMonthDayNanofor MonthDayNano type #10171 [arrow] (Jefffrey) - chore: specify
--lockedwhen cargo installingcargo-audit#10170 (Jefffrey) - chore: Fix clippy::useless_borrows_in_formatting #10163 [parquet] [arrow] (Tpt)
- fix(arrow-cast): respect cast safety for overflowing temporal casts #10162 [arrow] (SAY-5)
- chore(deps): bump actions/checkout from 6 to 7 #10159 (dependabot[bot])
- feat(parquet): add ParquetPushDecoder::peek_next_row_group() #10158 [parquet] (zhuqi-lucas)
- feat(pyarrow)
FromPyArrowonVec<T>: allow any iterable for input #10155 (Tpt) - nit: pyarrow: simplify class validation error creation #10154 (Tpt)
- [Variant] add doc reference to
VariantArrayBuilder#10152 (sdf-jkl) - feat: Adds product aggregate compute kernel #10151 [arrow] (devanbenz)
- Stricter datatype parsing for decimals, fixedsizelists and time32/64 #10147 [arrow] (Jefffrey)
- feat(arrow_csv): add header validation option #10144 [arrow] (XiNiHa)
- [Parquet] route dictionary page through the PageStore #10142 [parquet] (liamzwbao)
- chore: update pyo3 dependency to 0.29 #10134 (timsaucer)
- feat(ipc): Supports compression level configuration #10133 [arrow] (wForget)
- fix: write error for dbg output of out of range timestamps #10130 [arrow] (Jefffrey)
- [Variant]
VariantArrayfield API naming #10124 (sdf-jkl) - feat(arrow_array): add helper function to create MapArray from
Vec<Option<Vec<(Key, Option<Value>)>>>for tests #10123 [arrow] [arrow-flight] (rluvaton) - perf(arrow-ipc): Add writer benchmarks for dictionaries #10122 [arrow] (JakeDern)
- feat: support
MapArrayin lengths kernel #10121 [arrow] (rluvaton) - feat: add
OffsetBuffer::subtractto allow to shift offsets by value #10120 [arrow] (rluvaton) - fix:
Buffer::into_mutablereturn error instead of panic for converting owned sliced when not start at 0 and fix returned Mutable length #10118 [arrow] (rluvaton) - chore: update
Bytesvisibility to correctly reflect the actual visibility #10115 [arrow] (rluvaton) - fix(parquet_derive): support raw identifiers as column names #10113 (cbmixx)
- removed clippy ignore statment #10111 [arrow] (Rich-T-kid)
- Add
StructArray::field_APIs symmetric toStructArray::column_ones #10110 [arrow] (sdf-jkl) - fix(parquet): return error instead of panicking in pad_nulls on corrupt input #10108 [parquet] (thepenguinco)
- Minor: Add interleave tests for List<Decimal128> and List<Timestamp(tz)> #10099 [arrow] (alamb)
- Add arrow-flight test coverage for IPC compression #10097 [arrow] [arrow-flight] (alamb)
- chore(deps): bump pyspark from 3.3.2 to 3.4.4 in /parquet/pytest #10091 [parquet] (dependabot[bot])
- refactor(parquet): bundle array reader recursion args into
ReaderArgs#10089 [parquet] (HippoBaro) - arrow-buffer: implement Saturating, Checked num-traits for i256 #10088 [arrow] (theirix)
- bench(parquet): add nested list writer benchmarks #10084 [parquet] (mapleFU)
- Implement From<i128> for i256 #10081 [arrow] (AdamGS)
- test(parquet): drop confusing
mainreference in page-roundtrip test comment #10072 [parquet] (adriangb) - ci: Split miri tests into 4 parallel shards #10067 (AdamGS)
- Add tests and fix corner cases for Parquet/GeoArrow extension type conversion #10065 [parquet] (paleolimbot)
- Support writing REE arrays directly to Parquet #10064 [parquet] (Rich-T-kid)
- test(arrow-select): additional tests for inline-view filter fast path (tests for #9755) #10054 [arrow] (alamb)
- test(arrow-select): add take_bytes coverage for sliced values and nullable offset overflow #10053 [arrow] (alamb)
- Consolidate
filter_null_maskintoFilterPredicate::filter_nulls#10049 [arrow] (alamb) - [Variant] Add
VariantBuildervalues check #10016 (sdf-jkl) - [Variant] Preserve
UUIDextension type metadata for Parquet writer #10015 (sdf-jkl) - feat(parquet-variant): add Dictionary and REE variant_to_arrow support #10014 (mneetika)
- perf(arrow-ord): Avoid full index materialization for small-limit lexsorts #9991 [arrow] (pchintar)
- Fast path for nested
-
59.0.009 Jun 2026Release notes
Open source →Changelog
59.0.0 (2026-06-04)
Breaking changes:
- chore: Remove some deprecated Arrow functions from the public API #10040 [arrow] (etseidl)
- chore: Remove some deprecated functions from parquet crate #10035 [parquet] (etseidl)
- Replace
From<Vec<_>>impls withTryFroms forFixedSizeBinaryArray#10019 [parquet] [arrow] (quantumish) - Use Thrift macro to generate Parquet
LogicalTypeserialization code #9997 [parquet] (etseidl) - refactor: make
BloomFilterPropertiesfpp/ndv private with accessors #9969 [parquet] (CuteChuanChuan) - Remove deprecated parquet::format module and thrift dependency #9962 [parquet] (jhorstmann)
- generic channel support for FlightClient #9933 [arrow] [arrow-flight] (rumenov)
- Add
CompressionCodecThrift enum for Parquet metadata #9864 [parquet] (etseidl) - [Variant] remove
BorrowedShreddingState#9791 (sdf-jkl) - Remove deprecated legacy
likekernels inarrow-string#9674 [arrow] (AdamGS)
Implemented enhancements:
- Allow casting plain struct to dictionary encoded struct #10038 [arrow]
- Optimize arrow-flight #10029
- Align buffers when importing via
from_ffi/ArrowArrayStreamReader#10028 [arrow] - Switch Parquet
LogicalTypeenum to macro generated version #9995 [parquet] - Future proof Parquet Thrift parser #9973 [parquet]
- Add
DatePart1-indexed variants #9964 [arrow] - perf: Rework Parquet Thrift handling of boolean fields #9946 [parquet]
- Add benchmarks for REE to parquet #9935 [parquet] [arrow]
- (re) Allow Large
FixedSizeBinaryArrays #9906 [arrow] - Add a is_normalized flag to DictionaryArray #9841
- [Variant] Remove
BorrowedShreddingState#9790 - [parquet] Expose whether FileDecryptionProperties uses a KeyRetriever #9721 [parquet]
- Align cast logic for from/to_decimal for variant to cast kernel #9688 [arrow]
Fixed bugs:
- parquet-variant build might fail on s390x #10026
FixedSizeBinaryArrayimplementsFrom<Vec<&[u8]>>etc despite conversion being fallible #10018 [parquet] [arrow]- string -> decimal cast should not treat empty string as 0 #10009 [arrow]
- Cast FixedSizeList to List will lost datatype metadata in list #10004 [arrow]
- Record reader panics with "index out of bounds" when row group num_rows exceeds actual column data #9992 [parquet]
- parquet predicate-cache: panic / silent row drop on single-leaf nullable struct #9982 [parquet]
- parquet-variant doesn't build on 32-bit targets #9977
- Date32 doesn't parse date with large year #9960 [arrow]
- msrv check failing on main due to
[email protected]#9938 [parquet] [arrow] [arrow-flight]
Documentation updates:
- Release arrow-rs / parquet Minor/Patch version
58.3.0or58.2.1(May 2026) #9859 - Add docs for
BitWriter#9949 [parquet] (alamb) - Add docs for
BitReader#9948 [parquet] (alamb)
Performance improvements:
- perf: parquet LevelInfoBuilder::write_list can be optimized? #10023 [parquet]
- perf(parquet): LevelInfoBuilder batch write when no repetition childs #10037 [parquet] (mapleFU)
- [arrow-select] Replace
ArrayDatawith directArrayconstruction in filter kernels #9986 [arrow] (liamzwbao) - Bulk-fill definition levels for majority-null leaf columns #9967 [parquet] (RyanJamesStewart)
- perf: Remove
bool_valfrom Parquet ThriftFieldIdentifier#9945 [parquet] (etseidl) - feat(parquet): compact level representation with generic writer dispatch #9831 [parquet] (HippoBaro)
Closed issues:
- Bound ArrowWriter peak memory #10071 [parquet]
- Parquet writer can produce massively oversized data pages for large variable-width values #10061 [parquet]
- Remove the
fused_inline_view_columnsfield fromBatchCoalescerif possible #10055 - DataType parser permits negative FixedSizeBinary size #10033 [arrow]
- Parquet: return error for overlong INT96 column metadata statistics #10002 [parquet]
Uuidextension type fails to deserialize whenARROW:extension:metadatais an empty string #10000 [arrow]- parquet: timeline for removing thrift crate dependency (CVE-2026-43868) #9999
- Failure in CI:
Archery test With other arrows-binary_view Rust producing, .NET consuming#9989 [arrow] - Validate FIXED_LEN_BYTE_ARRAY type_length for DECIMAL and INTERVAL in Parquet → Arrow schema conversion #9984 [parquet]
- IPC reader projection does not handle duplicate projection indices correctly #9950 [arrow]
AnyRunArraytrait #9909 [arrow]- Release arrow-rs / parquet Patch version
57.3.1(May 2026) #9858 [arrow] - Release arrow-rs / parquet Patch version
56.2.1(May 2026) #9857 [arrow] - parquet/arrow: should sync/async readers converge on a shared physical read planner #9764
arrow-stringhas a lot of macro-generated deprecated kernels inlike.rs#9675 [arrow]- [parquet] Add BloomFilterProperties builder API to make bloom filter configuration explicit #9667 [parquet]
Merged pull requests:
- Bump max throughput in
flightbenchmark before blocking #10070 [arrow] [arrow-flight] (Rich-T-kid) - Add coalesce inline-view filter benchmarks #10050 [arrow] (ClSlaid)
- fix: better error handling for negative size of FixedSizeBinary #10042 [arrow] (theirix)
- bench(parquet): add Sbbf check/insert benchmarks #10041 [parquet] (dmatth1)
- arrow-cast: Add ability to cast plain struct to dictionary #10039 [arrow] (brancz)
- [#10029][benchmarks] arrow-flight roundtrip as well as encode/decode #10031 [arrow] [arrow-flight] (Rich-T-kid)
- Call
align_buffers()infrom_ffi, remove redundant call fromarrow-pyarrow#10030 [arrow] (mbutrovich) - Adjust Variant size expectation for s390x architecture #10027 (frantisekz)
- bench(parquet): add short and large string
arrow_writerbenchmarks #10021 [parquet] (adriangb) - Pluggable page spilling API for the Parquet ArrowWriter (PageStore) #10020 [parquet] (adriangb)
- fix: Reject empty strings when casting strings to decimal #10010 [arrow] (neilconway)
- feat: Implement decimal <-> float16 casts #10008 [arrow] (neilconway)
- fix(cast): Trying to fix cast losting schema problem #10005 [arrow] (mapleFU)
- fix(parquet): validate INT96 column metadata statistics #10003 [parquet] (fallintoplace)
- fix(arrow-schema): allow empty metadata value for UUID extension type #10001 [arrow] (asubiotto)
- Add helper functions to create
LogicalTypestruct variants #9996 [parquet] (etseidl) - fix: prevent panic in record reader when row group metadata overcounts num_rows #9993 [parquet] (BoazC-MSFT)
- feat: extract
has_falseandhas_truefrom BooleanArray toBooleanBufferand reuse for no nulls #9987 [arrow] (rluvaton) - Validate FIXED_LEN_BYTE_ARRAY length for DECIMAL and INTERVAL types #9985 [parquet] (CynicDog)
- fix(parquet): exclude single-leaf struct roots from predicate cache #9983 [parquet] (imhy)
- Adds is_null function to RowAccessor #9979 [parquet] (choubacha)
- Fix parquet-variant build on wasm targets #9978 (AdamGS)
- Safely ignore Parquet fields with unimplemented Thrift types #9974 [parquet] (etseidl)
- fix(parquet): bound data page byte size for large variable-width values #9972 [parquet] (adriangb)
- feat(parquet): Add
ParquetPushDecoder::into_builderto allow swapping projections / row filters at row group boundaries #9968 [parquet] (adriangb) - chore(deps): bump peaceiris/actions-gh-pages from 4.0.0 to 4.1.0 #9966 (dependabot[bot])
- Add
DatePartenum 1-indexed variants #9965 [arrow] (sdf-jkl) - fix(arrow-cast): support full Date32 range when parsing extended-year dates #9961 [arrow] (swanandx)
- Implement AnyRee #9959 [arrow] (Rich-T-kid)
- test: add overflow tests for MutableBuffer #9958 [arrow] (SoimanVasile)
- feat(parquet): generalize value encoder inputs #9955 [parquet] (HippoBaro)
- feat(parquet): add all-null fast paths for level building #9954 [parquet] (HippoBaro)
- fix(ipc): handle duplicate projection indices in IPC reader #9952 [arrow] (pchintar)
- Fix MSRV check by checking in Cargo.lock #9941 (alamb)
- benchmarks for writing REE arrays to parquet #9936 [parquet] [arrow] (Rich-T-kid)
- Validate encoded Thrift lists match the schema #9924 [parquet] (etseidl)
- [arrow-array] use usize arithmetic in FixedSizeBinaryArray, aggressive overflow checks #9910 [arrow] (alamb)
- feat(parquet): add uses_key_retriever method to FileDecryptionProperties #9895 [parquet] (adamreeve)
- Support ListView/BinaryView/RunEndEncoded types in integration test JSON parser #9888 [arrow] (paleolimbot)
- feat(parquet): add BloomFilterPropertiesBuilder #9877 [parquet] (CuteChuanChuan)
- perf[arrow-select]: add specialized REE interleave #9856 [arrow] (asubiotto)
- bench(parquet): add
ListArraybenchmarks for runtime and peak memory #9846 [parquet] (HippoBaro) - feat(parquet): separate push decoder frontier state from row-group decoding #9804 [parquet] (HippoBaro)
- arrow: add oversized coalesce take benchmarks #9799 [arrow] (ClSlaid)
- Remove redundant benchmarks in
cast_kernels#9789 [arrow] (alamb) - [Variant] Align cast logic for from/to_decimal for variant #9689 [arrow] (klion26)
- [Parquet]: GH-563: Make
path_in_schemaoptional #9678 [parquet] (etseidl) - Add support for FixedSizeList to variant_to_arrow #9663 (rishvin)
- Reduce Miri runtime even more #9650 [arrow] (AdamGS)
* This Changelog was automatically generated by github_changelog_generator
Release notes
Open source →Breaking changes:
- chore: Remove some deprecated Arrow functions from the public API #10040 [arrow] (etseidl)
- chore: Remove some deprecated functions from parquet crate #10035 [parquet] (etseidl)
- Replace
From<Vec<_>>impls withTryFroms forFixedSizeBinaryArray#10019 [parquet] [arrow] (quantumish) - Use Thrift macro to generate Parquet
LogicalTypeserialization code #9997 [parquet] (etseidl) - refactor: make
BloomFilterPropertiesfpp/ndv private with accessors #9969 [parquet] (CuteChuanChuan) - Remove deprecated parquet::format module and thrift dependency #9962 [parquet] (jhorstmann)
- generic channel support for FlightClient #9933 [arrow] [arrow-flight] (rumenov)
- Add
CompressionCodecThrift enum for Parquet metadata #9864 [parquet] (etseidl) - [Variant] remove
BorrowedShreddingState#9791 (sdf-jkl) - Remove deprecated legacy
likekernels inarrow-string#9674 [arrow] (AdamGS)
Implemented enhancements:
- Allow casting plain struct to dictionary encoded struct #10038 [arrow]
- Optimize arrow-flight #10029
- Align buffers when importing via
from_ffi/ArrowArrayStreamReader#10028 [arrow] - Switch Parquet
LogicalTypeenum to macro generated version #9995 [parquet] - Future proof Parquet Thrift parser #9973 [parquet]
- Add
DatePart1-indexed variants #9964 [arrow] - perf: Rework Parquet Thrift handling of boolean fields #9946 [parquet]
- Add benchmarks for REE to parquet #9935 [parquet] [arrow]
- (re) Allow Large
FixedSizeBinaryArrays #9906 [arrow] - Add a is_normalized flag to DictionaryArray #9841
- [Variant] Remove
BorrowedShreddingState#9790 - [parquet] Expose whether FileDecryptionProperties uses a KeyRetriever #9721 [parquet]
- Align cast logic for from/to_decimal for variant to cast kernel #9688 [arrow]
Fixed bugs:
- parquet-variant build might fail on s390x #10026
FixedSizeBinaryArrayimplementsFrom<Vec<&[u8]>>etc despite conversion being fallible #10018 [parquet] [arrow]- string -> decimal cast should not treat empty string as 0 #10009 [arrow]
- Cast FixedSizeList to List will lost datatype metadata in list #10004 [arrow]
- Record reader panics with "index out of bounds" when row group num_rows exceeds actual column data #9992 [parquet]
- parquet predicate-cache: panic / silent row drop on single-leaf nullable struct #9982 [parquet]
- parquet-variant doesn't build on 32-bit targets #9977
- Date32 doesn't parse date with large year #9960 [arrow]
- msrv check failing on main due to
[email protected]#9938 [parquet] [arrow] [arrow-flight]
Documentation updates:
- Release arrow-rs / parquet Minor/Patch version
58.3.0or58.2.1(May 2026) #9859 - Add docs for
BitWriter#9949 [parquet] (alamb) - Add docs for
BitReader#9948 [parquet] (alamb)
Performance improvements:
- perf: parquet LevelInfoBuilder::write_list can be optimized? #10023 [parquet]
- perf(parquet): LevelInfoBuilder batch write when no repetition childs #10037 [parquet] (mapleFU)
- [arrow-select] Replace
ArrayDatawith directArrayconstruction in filter kernels #9986 [arrow] (liamzwbao) - Bulk-fill definition levels for majority-null leaf columns #9967 [parquet] (RyanJamesStewart)
- perf: Remove
bool_valfrom Parquet ThriftFieldIdentifier#9945 [parquet] (etseidl) - feat(parquet): compact level representation with generic writer dispatch #9831 [parquet] (HippoBaro)
Closed issues:
- Bound ArrowWriter peak memory #10071 [parquet]
- Parquet writer can produce massively oversized data pages for large variable-width values #10061 [parquet]
- Remove the
fused_inline_view_columnsfield fromBatchCoalescerif possible #10055 - DataType parser permits negative FixedSizeBinary size #10033 [arrow]
- Parquet: return error for overlong INT96 column metadata statistics #10002 [parquet]
Uuidextension type fails to deserialize whenARROW:extension:metadatais an empty string #10000 [arrow]- parquet: timeline for removing thrift crate dependency (CVE-2026-43868) #9999
- Failure in CI:
Archery test With other arrows-binary_view Rust producing, .NET consuming#9989 [arrow] - Validate FIXED_LEN_BYTE_ARRAY type_length for DECIMAL and INTERVAL in Parquet → Arrow schema conversion #9984 [parquet]
- IPC reader projection does not handle duplicate projection indices correctly #9950 [arrow]
AnyRunArraytrait #9909 [arrow]- Release arrow-rs / parquet Patch version
57.3.1(May 2026) #9858 [arrow] - Release arrow-rs / parquet Patch version
56.2.1(May 2026) #9857 [arrow] - parquet/arrow: should sync/async readers converge on a shared physical read planner #9764
arrow-stringhas a lot of macro-generated deprecated kernels inlike.rs#9675 [arrow]- [parquet] Add BloomFilterProperties builder API to make bloom filter configuration explicit #9667 [parquet]
Merged pull requests:
- Bump max throughput in
flightbenchmark before blocking #10070 [arrow] [arrow-flight] (Rich-T-kid) - Add coalesce inline-view filter benchmarks #10050 [arrow] (ClSlaid)
- fix: better error handling for negative size of FixedSizeBinary #10042 [arrow] (theirix)
- bench(parquet): add Sbbf check/insert benchmarks #10041 [parquet] (dmatth1)
- arrow-cast: Add ability to cast plain struct to dictionary #10039 [arrow] (brancz)
- [#10029][benchmarks] arrow-flight roundtrip as well as encode/decode #10031 [arrow] [arrow-flight] (Rich-T-kid)
- Call
align_buffers()infrom_ffi, remove redundant call fromarrow-pyarrow#10030 [arrow] (mbutrovich) - Adjust Variant size expectation for s390x architecture #10027 (frantisekz)
- bench(parquet): add short and large string
arrow_writerbenchmarks #10021 [parquet] (adriangb) - Pluggable page spilling API for the Parquet ArrowWriter (PageStore) #10020 [parquet] (adriangb)
- fix: Reject empty strings when casting strings to decimal #10010 [arrow] (neilconway)
- feat: Implement decimal <-> float16 casts #10008 [arrow] (neilconway)
- fix(cast): Trying to fix cast losting schema problem #10005 [arrow] (mapleFU)
- fix(parquet): validate INT96 column metadata statistics #10003 [parquet] (fallintoplace)
- fix(arrow-schema): allow empty metadata value for UUID extension type #10001 [arrow] (asubiotto)
- Add helper functions to create
LogicalTypestruct variants #9996 [parquet] (etseidl) - fix: prevent panic in record reader when row group metadata overcounts num_rows #9993 [parquet] (BoazC-MSFT)
- feat: extract
has_falseandhas_truefrom BooleanArray toBooleanBufferand reuse for no nulls #9987 [arrow] (rluvaton) - Validate FIXED_LEN_BYTE_ARRAY length for DECIMAL and INTERVAL types #9985 [parquet] (CynicDog)
- fix(parquet): exclude single-leaf struct roots from predicate cache #9983 [parquet] (imhy)
- Adds is_null function to RowAccessor #9979 [parquet] (choubacha)
- Fix parquet-variant build on wasm targets #9978 (AdamGS)
- Safely ignore Parquet fields with unimplemented Thrift types #9974 [parquet] (etseidl)
- fix(parquet): bound data page byte size for large variable-width values #9972 [parquet] (adriangb)
- feat(parquet): Add
ParquetPushDecoder::into_builderto allow swapping projections / row filters at row group boundaries #9968 [parquet] (adriangb) - chore(deps): bump peaceiris/actions-gh-pages from 4.0.0 to 4.1.0 #9966 (dependabot[bot])
- Add
DatePartenum 1-indexed variants #9965 [arrow] (sdf-jkl) - fix(arrow-cast): support full Date32 range when parsing extended-year dates #9961 [arrow] (swanandx)
- Implement AnyRee #9959 [arrow] (Rich-T-kid)
- test: add overflow tests for MutableBuffer #9958 [arrow] (SoimanVasile)
- feat(parquet): generalize value encoder inputs #9955 [parquet] (HippoBaro)
- feat(parquet): add all-null fast paths for level building #9954 [parquet] (HippoBaro)
- fix(ipc): handle duplicate projection indices in IPC reader #9952 [arrow] (pchintar)
- Fix MSRV check by checking in Cargo.lock #9941 (alamb)
- benchmarks for writing REE arrays to parquet #9936 [parquet] [arrow] (Rich-T-kid)
- Validate encoded Thrift lists match the schema #9924 [parquet] (etseidl)
- [arrow-array] use usize arithmetic in FixedSizeBinaryArray, aggressive overflow checks #9910 [arrow] (alamb)
- feat(parquet): add uses_key_retriever method to FileDecryptionProperties #9895 [parquet] (adamreeve)
- Support ListView/BinaryView/RunEndEncoded types in integration test JSON parser #9888 [arrow] (paleolimbot)
- feat(parquet): add BloomFilterPropertiesBuilder #9877 [parquet] (CuteChuanChuan)
- perf[arrow-select]: add specialized REE interleave #9856 [arrow] (asubiotto)
- bench(parquet): add
ListArraybenchmarks for runtime and peak memory #9846 [parquet] (HippoBaro) - feat(parquet): separate push decoder frontier state from row-group decoding #9804 [parquet] (HippoBaro)
- arrow: add oversized coalesce take benchmarks #9799 [arrow] (ClSlaid)
- Remove redundant benchmarks in
cast_kernels#9789 [arrow] (alamb) - [Variant] Align cast logic for from/to_decimal for variant #9689 [arrow] (klion26)
- [Parquet]: GH-563: Make
path_in_schemaoptional #9678 [parquet] (etseidl) - Add support for FixedSizeList to variant_to_arrow #9663 (rishvin)
- Reduce Miri runtime even more #9650 [arrow] (AdamGS)
-
58.4.022 Jul 2026Release notes
Open source →Changelog
58.4.0 (2026-07-17)
Merged pull requests:
- [58_maintenance] [parquet] Allow more encryption algorithms (#9203) #10351 [parquet] (mbutrovich)
- [58_maintenance] Backport cargo audit fixes #10369 (alamb)
- [58_maintenance] chore: Ignore py03 vulnerabilities until upgrade #10370 (alamb)
- [58_maintenance] Add test for `parquet-testing/bad_data/ARROW-GH-47662.parquet` (#10077) #10371 [parquet] (alamb)
* This Changelog was automatically generated by github_changelog_generator
-
58.3.011 May 2026Release notes
Open source →Changelog
58.3.0 (2026-05-07)
Implemented enhancements:
- Add
DatePart::from_strAPI #9930 [arrow] - should use DictionaryArray::with_values instead of try_new on the dictionary fast path #9889 [arrow]
- [arrow-string] add concat_elements for BinaryViewArray and FixedSizeBinary #9875 [arrow]
- Expose eq ignore ascii case from arrow-string #9870 [arrow]
- Configurable data page v2 compression threshold #9827 [parquet]
Fixed bugs:
- [arrow-cast] incorrect Time32 -> Time64 conversion #9851 [arrow]
- Panic when reading malformed compact-Thrift bool fields in Parquet page metadata #9839 [parquet]
- Parquet
DeltaBitPackDecoder::skipcould panic on "non-standard" miniblocks #9793 [parquet]
Documentation updates:
- docs: Add guidance for AI assisted submissions to CONTRIBUTING.md #9892 (etseidl)
- Update release schedule on README #9881 (alamb)
- Add more documentation for FixedSizeBinary arrays #9866 [arrow] (alamb)
- Minor: document why FixedSizeBinary offset is always 0 #9861 [arrow] (alamb)
- docs: Update contributing guidelines with benchmark results #9782 (alamb)
Closed issues:
- GenericByteDictionaryBuilder::with_capacity does not pre-size dedup HashTable #9907 [arrow]
- [arrow-buffer] Integer overflow in repeat_slice_n_times leads to undefined behavior #9904 [arrow]
- [arrow-buffer] Integer overflow in BitChunks::new leads to undefined behavior #9903 [arrow]
- [arrow-row] Integer overflow in Rows::row index handling leads to undefined behavior #9901 [arrow]
- [arrow-data] Integer overflow in ArrayData validation leads to undefined behavior #9900 [arrow]
- [arrow-data] Integer overflow in ArrayData::slice leads to undefined behavior #9899 [arrow]
- [arrow-array] Integer overflow in FixedSizeBinaryArray::value leads to undefined behavior #9898 [arrow]
- [arrow-buffer] Integer overflow in BufferBuilder::reserve leads to undefined behavior #9897 [arrow]
- arrow-csv: integer overflow panic in Reader::records::flush #9885 [arrow]
- Make an API to help with the pattern of 'replaces the values of the REE array' #9854 [arrow]
- Parquet reader rejects canonical UNKNOWN logical type on BOOLEAN physical columns #9844 [parquet]
- ColumnIndex length mismatch can cause panic during decoding in Parquet #9832 [parquet]
- Bug converting json to fixed list of zero size #9780 [arrow]
Merged pull requests:
- impl
FromStrforDatePart#9931 [arrow] (sdf-jkl) - Pre-size dedup HashTable in GenericByteDictionaryBuilder::with_capacity #9908 [arrow] (rabenhorst)
- [arrow-array] Use consistent
value_lengthname in FixedSizeBinaryArray #9905 [arrow] (alamb) - replace Dictionary::try_new() calls with with_values. #9894 [arrow] (Rich-T-kid)
- API to help with the pattern of 'replaces the values of the REE array #9891 [arrow] (Rich-T-kid)
- fix(arrow-csv): bound RecordDecoder::flush offset accumulation #9886 [arrow] (masumi-ryugo)
- fix(parquet): bound schema num_children before Vec::with_capacity #9884 [parquet] (masumi-ryugo)
- feat(arrow-string): concat_elements for view, fixed binary #9876 [arrow] (theirix)
- Prevent
FixedSizeBinaryArrayi32offset overflows (try 2) #9872 [arrow] (alamb) - [arrow-string]: add
like::eq_ascii_ignore_casekernel #9871 [arrow] (albertlockett) - fix(parquet): Prevent negative list sizes in Thrift compact protocol parser #9868 [parquet] (masumi-ryugo)
- [PARQUET] Allow
UNKNOWNlogical type annotation on any physical type #9855 [parquet] (etseidl) - [arrow-ipc]: dictionary builders for delta - doc fix and integration tests for nested types #9853 [arrow] (albertlockett)
- fix(arrow-cast): fix incorrect conversion #9852 [arrow] (bboissin)
- chore[benches]: add REE interleave benchmarks #9849 [arrow] (asubiotto)
- test(parquet): replace
InMemoryArrayReaderwithPrimitiveArrayReaderin tests #9847 [parquet] (HippoBaro) - REE row conversion speed up #9845 [arrow] (Rich-T-kid)
- fix(parquet): Avoid panic on malformed thrift bool fields in parquet metadata #9840 [parquet] (BoazC-MSFT)
- fix(parquet): avoid panic on ColumnIndex length mismatch #9833 [parquet] (pchintar)
- configurable data page v2 compression threshold #9826 [parquet] (leoyvens)
- Prevent
ArrayData::slicelength overflow #9813 [arrow] (alamb) - Fix JSON reader panic for non-nullable zero-size FixedSizeList #9810 [arrow] (liamzwbao)
- [Parquet] Do not panic when trying to skip records in delta encoded files using non-standard block sizes #9794 [parquet] (etseidl)
* This Changelog was automatically generated by github_changelog_generator
Release notes
Open source →Implemented enhancements:
- Add
DatePart::from_strAPI #9930 [arrow] - should use DictionaryArray::with_values instead of try_new on the dictionary fast path #9889 [arrow]
- [arrow-string] add concat_elements for BinaryViewArray and FixedSizeBinary #9875 [arrow]
- Expose eq ignore ascii case from arrow-string #9870 [arrow]
- Configurable data page v2 compression threshold #9827 [parquet]
Fixed bugs:
- [arrow-cast] incorrect Time32 -> Time64 conversion #9851 [arrow]
- Panic when reading malformed compact-Thrift bool fields in Parquet page metadata #9839 [parquet]
- Parquet
DeltaBitPackDecoder::skipcould panic on "non-standard" miniblocks #9793 [parquet]
Documentation updates:
- docs: Add guidance for AI assisted submissions to CONTRIBUTING.md #9892 (etseidl)
- Update release schedule on README #9881 (alamb)
- Add more documentation for FixedSizeBinary arrays #9866 [arrow] (alamb)
- Minor: document why FixedSizeBinary offset is always 0 #9861 [arrow] (alamb)
- docs: Update contributing guidelines with benchmark results #9782 (alamb)
Closed issues:
- GenericByteDictionaryBuilder::with_capacity does not pre-size dedup HashTable #9907 [arrow]
- [arrow-buffer] Integer overflow in repeat_slice_n_times leads to undefined behavior #9904 [arrow]
- [arrow-buffer] Integer overflow in BitChunks::new leads to undefined behavior #9903 [arrow]
- [arrow-row] Integer overflow in Rows::row index handling leads to undefined behavior #9901 [arrow]
- [arrow-data] Integer overflow in ArrayData validation leads to undefined behavior #9900 [arrow]
- [arrow-data] Integer overflow in ArrayData::slice leads to undefined behavior #9899 [arrow]
- [arrow-array] Integer overflow in FixedSizeBinaryArray::value leads to undefined behavior #9898 [arrow]
- [arrow-buffer] Integer overflow in BufferBuilder::reserve leads to undefined behavior #9897 [arrow]
- arrow-csv: integer overflow panic in Reader::records::flush #9885 [arrow]
- Make an API to help with the pattern of 'replaces the values of the REE array' #9854 [arrow]
- Parquet reader rejects canonical UNKNOWN logical type on BOOLEAN physical columns #9844 [parquet]
- ColumnIndex length mismatch can cause panic during decoding in Parquet #9832 [parquet]
- Bug converting json to fixed list of zero size #9780 [arrow]
Merged pull requests:
- impl
FromStrforDatePart#9931 [arrow] (sdf-jkl) - Pre-size dedup HashTable in GenericByteDictionaryBuilder::with_capacity #9908 [arrow] (rabenhorst)
- [arrow-array] Use consistent
value_lengthname in FixedSizeBinaryArray #9905 [arrow] (alamb) - replace Dictionary::try_new() calls with with_values. #9894 [arrow] (Rich-T-kid)
- API to help with the pattern of 'replaces the values of the REE array #9891 [arrow] (Rich-T-kid)
- fix(arrow-csv): bound RecordDecoder::flush offset accumulation #9886 [arrow] (masumi-ryugo)
- fix(parquet): bound schema num_children before Vec::with_capacity #9884 [parquet] (masumi-ryugo)
- feat(arrow-string): concat_elements for view, fixed binary #9876 [arrow] (theirix)
- Prevent
FixedSizeBinaryArrayi32offset overflows (try 2) #9872 [arrow] (alamb) - [arrow-string]: add
like::eq_ascii_ignore_casekernel #9871 [arrow] (albertlockett) - fix(parquet): Prevent negative list sizes in Thrift compact protocol parser #9868 [parquet] (masumi-ryugo)
- [PARQUET] Allow
UNKNOWNlogical type annotation on any physical type #9855 [parquet] (etseidl) - [arrow-ipc]: dictionary builders for delta - doc fix and integration tests for nested types #9853 [arrow] (albertlockett)
- fix(arrow-cast): fix incorrect conversion #9852 [arrow] (bboissin)
- chore[benches]: add REE interleave benchmarks #9849 [arrow] (asubiotto)
- test(parquet): replace
InMemoryArrayReaderwithPrimitiveArrayReaderin tests #9847 [parquet] (HippoBaro) - REE row conversion speed up #9845 [arrow] (Rich-T-kid)
- fix(parquet): Avoid panic on malformed thrift bool fields in parquet metadata #9840 [parquet] (BoazC-MSFT)
- fix(parquet): avoid panic on ColumnIndex length mismatch #9833 [parquet] (pchintar)
- configurable data page v2 compression threshold #9826 [parquet] (leoyvens)
- Prevent
ArrayData::slicelength overflow #9813 [arrow] (alamb) - Fix JSON reader panic for non-nullable zero-size FixedSizeList #9810 [arrow] (liamzwbao)
- [Parquet] Do not panic when trying to skip records in delta encoded files using non-standard block sizes #9794 [parquet] (etseidl)
- Add
-
58.2.002 May 2026Release notes
Open source →Implemented enhancements:
- Expose ColumnCloseResult on ArrowColumnChunk #9774 [parquet]
- Expose FFI data structures fields #9771 [arrow]
- short-circuit last predicate in
RowFilterwhenwith_limit(N)is set #9765 [parquet] - vectorise dict-index bounds check #9747 [parquet]
- Refactor
RleEncoder::flush_bit_packed_run#9734 [parquet] - Add benchmark for cast from/to decimals #9728 [arrow]
- Add a security policy for arrow-rs #9727 [parquet] [arrow] [arrow-flight]
- Support
FixedSizeListin arrow-json reader #9714 [arrow] - [Variant] Add
VariantArrayBuilder::append_nullsAPI #9684 - [Json] RunEndEncoded decoder optimization #9645 [arrow]
- [Variant]
variant_get(..., List<_>)non-Struct types support #9615 - [Variant] Add unshredded
Structfast-path forvariant_get(..., Struct)#9596 - Allow setting custom line terminator for CSV writer #9571 [arrow]
- [Variant] Align cast logic for
variant_getto cast kernel for numeric/bool types #9564 [arrow] - ci: use ubuntu-slim where applicable #9536
- Publicly export
arrow_string::Predicateand its methods? #9480 - Don't create CompressionContext when no compression is selected [IPC] #9463 [arrow]
- Parquet: Raw level buffering causes unbounded memory growth for sparse columns #9446 [parquet]
- Parallel Parquet Reading #9381 [parquet]
Fixed bugs:
- [Variant]
unshred_variantpanics on malformed bytes despite returningResult#9740 - RecordBatch::normalize() does not propagate top level null bitmap into the results #9732 [arrow]
- Incorrect accounting in
DictEncoder::estimated_memory_size#9719 [parquet] - arrow-ipc writer does not comply with spec for empty variable-size arrays #9716 [arrow]
- Panic when reading corrupt parquet file with truncated data instead of ParquetError #9705 [parquet]
- NOTICE.txt is inaccurate #9703 [arrow]
- Unnecessary dependency on regex crate #9672
- [arrow-avro] Avro reader produces incorrect results when reader schema and writer schema differ #9655 [arrow]
- parquet docs are broken on docs.rs #9649
- [Parquet] ArrowWriter with CDC panics on nested ListArrays #9637 [parquet] [arrow] [arrow-flight]
- Use release KEYS file for verification instead of dev KEYS #9603
- IPC reader: handling of dictionaries with only null values #9595 [arrow]
- Parquet RleDecoder::get_batch_with_dict panics on oob dictionary indices #9434 [parquet]
Documentation updates:
- docs(variant): link VariantArray doc to official Parquet Variant extension type #9779 (mcharrel)
- Document Security Policy #9730 [parquet] [arrow] [arrow-flight] (alamb)
- Docs: add example of how to read parquet row groups in parallel #9396 [parquet] (alamb)
Performance improvements:
- parquet: avoid decode and heap allocation on terminal skip in DeltaBitPackDecoder #9784 [parquet]
- parquet: O(1) skip for bw=0 miniblocks in DeltaBitPackDecoder #9783 [parquet]
- Remove per-message flush overhead in Arrow IPC writer #9762 [arrow]
- Support
GenericListViewArray::new_uncheckedand refactor ListView json decoder #9646 [arrow] - Support nested REE in arrow-ord
partitionfunction #9640 [arrow] - [Parquet] Remove the BIT_PACKED encoder #9635 [parquet]
- Pre-reserve output capacity in ByteView/ByteArray dictionary decoding #9587 [parquet]
- Fuse RLE decoding and view gathering for StringView dictionary decoding #9582 [parquet]
- Use branchless index clamping and add get_batch_direct to RleDecoder #9581 [parquet]
- Reduce per-byte overhead in VLQ integer decoding #9580 [parquet]
- feat(parquet): batch RLE runs in level encoder via scan-ahead #9830 [parquet] (HippoBaro)
- fix: lazy-init zstd compression contexts to avoid unnecessary FFI calls #9808 [arrow] (mbutrovich)
- parquet: O(1) skip for bw=0 miniblocks in DeltaBitPackDecoder #9786 [parquet] (sahuagin)
- chore: add benchmark for row filters with LIMIT short-circuit #9767 [parquet] (haohuaijin)
- Push
LIMIT/OFFSETinto the lastRowFilterpredicate and skip unused row groups #9766 [parquet] (haohuaijin) - feat(ipc): Remove per-message flush in IPC writer hot path #9763 [arrow] (pchintar)
- perf(parquet): Defer fixed length byte array buffer alloc and skip zero-batch init #9756 [parquet] (lyang24)
- feat(parquet): batch consecutive null/empty rows in
write_list#9752 [parquet] (HippoBaro) - Remove
lenfield from buffer builder #9750 [arrow] (cetra3) - perf(parquet): Vectorize dict-index bounds check in RleDecoder::get_batch_with_dict (up to -7.9%) #9746 [parquet] (Dandandan)
- feat(parquet): precompute
offset_index_disabledat build-time #9724 [parquet] (HippoBaro) - [Parquet] Improve dictionary decoder by unrolling loops #9662 [parquet] (Dandandan)
- [Json] Use
partitionandtakein RunEndEncoded decoder #9658 [arrow] (liamzwbao) - Improve take performance on List arrays #9643 [arrow] (AdamGS)
- [Json] Replace
ArrayDatawith typed Array construction in json-reader #9497 [arrow] (liamzwbao) - feat(parquet): stream-encode definition/repetition levels incrementally #9447 [parquet] (HippoBaro)
Closed issues:
- Incorrect buffer skipping for V4 Union types in IPC
skip_field#9828 [arrow] - Replace wildcard match in
skip_fieldwith explicitDataTypehandling #9821 [arrow] - Column projection misalignment for ListView / LargeListView in IPC reader #9805 [arrow]
- Avoid panic on malformed compressed buffer prefix in IPC #9801 [arrow]
- DeltaByteArrayDecoder panics on invalid prefix lengths #9796 [parquet]
- Use NullBufferBuilder when reading json #9781 [arrow]
- Perfectly shredded arrays with top-level null values loss nullability when
typed_valueis extracted #9701 - [Parquet Metadata] API to determine page-index presence separately from page-index load #9693
- Union cast is incorrect for duplicate field names #9664 [arrow]
- List and ListView are missing
takebenchmarks #9627 [arrow] - Support RunEndEncoded arrays in comparison kernels (eq, lt, etc.) #9620 [arrow]
- variant_get should follow JSONpath semantics #9606
- GenericByteViewArray: support finding total length of all strings #9435 [arrow]
Merged pull requests:
- support length() on Run-end encoding arrays #9838 [arrow] (Rich-T-kid)
- fix(ipc): correct skip_field handling for V4 Union #9829 [arrow] (pchintar)
- fix(ipc): replace wildcard in skip_field with explicit DataType handling #9822 [arrow] (pchintar)
- Prevent buffer builder length overflow in
MutableBuffer::extend_zeros#9820 [arrow] (alamb) - Prevent repeat slice length overflow #9819 [arrow] (alamb)
- Prevent BitChunks length overflow #9818 [arrow] (alamb)
- Prevent Rows row index overflow #9817 [arrow] (alamb)
- Prevent ArrayData validation length overflow #9816 [arrow] (alamb)
- [Json] Remove arrow-data dependency from arrow-json #9812 [arrow] (liamzwbao)
- Replace
BooleanBufferBuilderwithNullBufferBuilderin arrow-json if applicable #9811 [arrow] (liamzwbao) - refactor(ipc): derive Default for CompressionContext #9809 [arrow] (mbutrovich)
- fix(ipc): reader misalignment when skipping ListView / LargeListView columns #9806 [arrow] (pchintar)
- fix(ipc): Avoid panic on malformed compressed buffer prefix #9802 [arrow] (pchintar)
- parquet: fix panic in DeltaByteArrayDecoder on invalid prefix lengths #9797 [parquet] (pchintar)
- feat(parquet): fuse level encoding with counting and histogram updates #9795 [parquet] (HippoBaro)
- Expose ColumnCloseResult on ArrowColumnChunk #9773 [parquet] (leoyvens)
- feat: make FFI structs fields
pub#9772 [arrow] (ashdnazg) - chore: Refine the error message for List to non List cast #9757 [arrow] (comphead)
- refactor(parquet): replace magic
8literals with named constants #9751 [parquet] (HippoBaro) - feat(ipc): add with_skip_validation to StreamDecoder #9749 [arrow] (pantShrey)
- remove panics in unshred variant #9741 (friendlymatthew)
- Add benchmark for ListView interleave #9738 [arrow] (vegarsti)
- arrow-arith: fix 'occured' -> 'occurred' in arity.rs comments #9736 [arrow] (SAY-5)
- Refactor
RleEncoder::flush_bit_packed_runto make flow clearer #9735 [parquet] (etseidl) - Fix RecordBatch::normalize() null bitmap bug and add StructArray::flatten() #9733 [arrow] (sqd)
- Add benchmark for cast from/to decimals #9729 [arrow] (klion26)
- refactor(arrow-avro): use
Decoder::flush_blockin async reader #9726 [arrow] (mzabaluev) - fix: ParquetError when reading corrupt parquet file with truncated data instead of Panic #9725 [parquet] (xuzifu666)
- feat(parquet): add wide-schema writer overhead benchmark #9723 [parquet] (HippoBaro)
- fix: correct accounting in
DictEncoder::estimated_memory_size,Interner::estimated_memory_size#9720 [parquet] (mzabaluev) - arrow-ipc: Write 0 offset buffer for length-0 variable-size arrays #9717 [arrow] (atwam)
- [Json] Support
FixedSizeListin json decoder #9715 [arrow] (liamzwbao) - chore(deps): bump actions/upload-pages-artifact from 4 to 5 #9713 (dependabot[bot])
- Fix clippy warning in fixed_size_binary_array.rs #9712 [arrow] (AdamGS)
- feat: add
has_non_empty_nullshelper function inOffsetBuffer#9711 [arrow] (rluvaton) - chore(deps): bump pytest from 7.2.0 to 9.0.3 in /parquet/pytest #9706 [parquet] (dependabot[bot])
- Fedora license audit #9704 [arrow] (michel-slm)
- [Variant] Take top-level nulls into consideration when extracting perfectly shredded children #9702 (AdamGS)
- feat(parquet): add
push_decoderbenchmark forPushBuffersoverhead #9696 [parquet] (HippoBaro) - Add mutable bitwise operations to
BooleanArrayandNullBuffer::union_many#9692 [arrow] (mbutrovich) - chore(deps): update hashbrown requirement from 0.16.0 to 0.17.0 #9691 [parquet] [arrow] (dependabot[bot])
- chore(deps): bump actions/github-script from 8 to 9 #9690 (dependabot[bot])
- minor: Re-enable CDC bench #9686 [parquet] (etseidl)
- [Variant] Add
VariantArrayBuilder::append_nullsAPI #9685 (sdf-jkl) - feat(parquet): add struct-column writer benchmarks #9679 [parquet] (HippoBaro)
- [Arrow] Add API to check if
Fieldhas a validExtensionType#9677 [parquet] [arrow] (sdf-jkl) - [Variant]
variant_getshould follow JSONPath semantics for Field path element #9676 (sdf-jkl) - ParquetMetaDataPushDecoder API to clear all buffered ranges #9673 [parquet] (nathanb9)
- Fix union cast incorrectness for duplicate field names #9666 [arrow] (friendlymatthew)
- chore: re-export
MAX_INLINE_VIEW_LENfromarrow_data#9665 [arrow] (rluvaton) - No longer allow BIT_PACKED level encoding in Parquet writer #9656 [parquet] (etseidl)
- feat(parquet): add sparse-column writer benchmarks #9654 [parquet] (HippoBaro)
- Support
GenericListViewArray::new_uncheckedand refactorListViewjson decoder #9648 [arrow] (liamzwbao) - [Json] Add json reader benchmarks for ListView #9647 [arrow] (liamzwbao)
- fix(parquet): fix CDC panic on nested ListArrays with null entries #9644 [parquet] (kszucs)
- Add a test for reading nested REE data in json #9634 [arrow] (alamb)
- [Variant] Fix
variant_getto returnList<T>instead ofList<Struct>#9631 (liamzwbao) - ci: use ubuntu-slim runner for lightweight CI jobs #9630 (CuteChuanChuan)
- Add bloom filter folding to automatically size SBBF filters #9628 [parquet] (adriangb)
- Add List and ListView take benchmarks #9626 [arrow] (AdamGS)
- ParquetPushDecoder API to clear all buffered ranges #9624 [parquet] (nathanb9)
- fix: handle missing dictionary batch for null-only columns in IPC reader #9623 [arrow] (joaquinhuigomez)
- Fix
MutableBuffer::clear#9622 [parquet] [arrow] (Rafferty97) - feat[arrow-ord]: suppport REE comparisons #9621 [arrow] (asubiotto)
- chore(deps): update sha2 requirement from 0.10 to 0.11 #9618 [arrow] (dependabot[bot])
- Expose option to set line terminator for CSV writer #9617 [arrow] (svranesevic)
- [Json] Add json reader benchmarks for Map and REE #9616 [arrow] (liamzwbao)
- deps: fix
object_storebreakage for 0.13.2 #9612 (mzabaluev-flarion) - [Variant] Support Binary/LargeBinary children #9610 (AdamGS)
- fix: use writer types in Skipper for resolved named record types #9605 [arrow] (ariel-miculas)
- feat(parquet): derive
PartialEqandEqforCdcOptions#9602 [parquet] (kszucs) - Add
finish_preserve_valuestoArrayBuildertrait #9601 [arrow] (adamreichold) - [Variant] extend shredded null handling for arrays #9599 (sdf-jkl)
- [Variant] Add unshredded
Structfast-path forvariant_get(..., Struct)#9597 (sdf-jkl) - Pre-reserve output capacity in ByteView/ByteArray dictionary decoding #9590 [parquet] (Dandandan)
- [Variant] Align cast logic for variant_get to cast kernel for numeric/bool types #9563 [arrow] (klion26)
- Add support to cast from
UnionArray#9544 [arrow] (friendlymatthew) - Support
ListViewcodec in arrow-json #9503 [arrow] (liamzwbao)
-
58.1.024 Mar 2026Release notes
Open source →Implemented enhancements:
- Reuse compression dict lz4_block #9566
- [Variant] Add
variant_to_arrowStructtype support #9529 - [Variant] Add
unshred_variantsupport forBinaryandLargeBinarytypes #9526 - [Variant] Add
shred_variantsupport forLargeUtf8andLargeBinarytypes #9525 - [Variant]
variant_gettests 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_nullstoMapBuilder#9431 [arrow] - Add
append_non_nullstoStructBuilder#9429 [arrow] - Add
append_value_nto 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:
Performance improvements:
- Introduce
NullBuffer::try_from_unslicedto 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/LargeListViewforVariantArray::try_new#9455 - Support variables/expressions in record_batch! macro #9245 [arrow]
Merged pull requests:
- [Variant] Add unshred_variant support for Binary and LargeBinary types #9576 (kunalsinghdadhwal)
- [Variant] Add
variant_to_arrowStructtype support #9572 (sdf-jkl) - Make Sbbf Constructers Public #9569 [parquet] (cetra3)
- fix: Used
checked_addfor bounds checks to avoid UB #9568 [arrow] (etseidl) - Add mutable operations to BooleanBuffer (Bit*Assign) #9567 [arrow] (Dandandan)
- chore(deps): update lz4_flex requirement from 0.12 to 0.13 #9565 [parquet] [arrow] (dependabot[bot])
- arrow-select: fix MutableArrayData interleave for ListView #9560 [arrow] (asubiotto)
- Move
ValueIterinto own module, and add publicrecord_countfunction #9557 [arrow] (Rafferty97) - arrow-flight: generate dict_ids for dicts nested inside complex types #9556 [arrow] [arrow-flight] (asubiotto)
- add
shred_variantsupport forLargeUtf8andLargeBinary#9554 (sdf-jkl) - [minor] Download clickbench file when missing #9553 [parquet] (Dandandan)
- DeltaBitPackEncoderConversion: Fix panic message on invalid type #9552 [parquet] (progval)
- Replace interleave overflow panic with error #9549 [arrow] (xudong963)
- feat(arrow-avro):
HeaderInfoto expose OCF header #9548 [arrow] (mzabaluev) - chore: Protect
mainbranch with required reviews #9547 (comphead) - Add benchmark for
infer_json_schema#9546 [arrow] (Rafferty97) - chore(deps): bump black from 24.3.0 to 26.3.1 in /parquet/pytest #9545 [parquet] (dependabot[bot])
- Unroll interleave -25-30% #9542 [arrow] (Dandandan)
- Optimize
take_fixed_size_binaryFor Predefined Value Lengths #9535 [arrow] (tobixdev) - feat: expose arrow schema on async avro reader #9534 [arrow] (mzabaluev)
- Make with_file_decryption_properties pub instead of pub(crate) #9532 [parquet] (Dandandan)
- fix: handle Null type in try_merge for Struct, List, LargeList, and Union #9524 [arrow] (zhuqi-lucas)
- chore: extend record_batch macro to support variables and expressions #9522 [arrow] (buraksenn)
- [Variant] clean up
variant_gettests #9518 (sdf-jkl) - support large string for unshred variant #9515 (friendlymatthew)
- support string view unshred variant #9514 (friendlymatthew)
- Add has_true() and has_false() to BooleanArray #9511 [arrow] (adriangb)
- Fix Invalid offset in sparse column chunk data error for multiple predicates #9509 [parquet] (cetra3)
- fix: remove incorrect debug assertion in BatchCoalescer #9508 [arrow] (Tim-53)
- [Json] Add benchmarks for list json reader #9507 [arrow] (liamzwbao)
- fix: first next_back() on new RowsIter panics #9505 [arrow] (rluvaton)
- Add some benchmarks for decoding delta encoded Parquet #9500 [parquet] (etseidl)
- chore: remove duplicate macro
partially_shredded_variant_array_gen#9498 (codephage2020) - Deprecate ArrowTimestampType::make_value in favor of from_naive_datetime #9491 [arrow] (codephage2020)
- fix: Do not assume missing nullcount stat means zero nullcount #9481 [parquet] (scovich)
- [Variant] Enahcne bracket access for VariantPath #9479 (klion26)
- Optimize delta binary decoder in the case where bitwidth=0 #9477 [parquet] (etseidl)
- Add PrimitiveRunBuilder::with_data_type() to customize the values' DataType #9473 [arrow] (brunal)
- Convert
prettyprinttests inarrow-casttoinstainline snapshots #9472 [parquet] [arrow] (grtlr) - Update strum_macros requirement from 0.27 to 0.28 #9471 [arrow] (dependabot[bot])
- docs(parquet): Fix broken links in README #9467 [parquet] (SYaoJun)
- Add list-like types support to VariantArray::try_new #9457 (sdf-jkl)
- Simplify downcast_...!() macro definitions #9454 [arrow] (brunal)
- feat(parquet): add content defined chunking for arrow writer #9450 [parquet] (kszucs)
- refactor: simplify iterator using cloned().map(Some) #9449 [parquet] (SYaoJun)
- feat: Optimize from_bitwise_binary_op with 64-bit alignment #9441 [arrow] (kunalsinghdadhwal)
- docs: fix markdown link syntax in README #9440 (SYaoJun)
- Move
ListLikeArrayto arrow-array to be shared with json writer and parquet unshredding #9437 [arrow] (liamzwbao) - Add
claimmethod to recordbatch for memory accounting #9433 [arrow] (cetra3) - Add
append_nullstoMapBuilder#9432 [arrow] (Fokko) - Add
append_non_nullstoStructBuilder#9430 [arrow] (Fokko) - Add
append_value_nto GenericByteBuilder #9426 [arrow] (Fokko) - refactor: simplify dynamic state for Avro record projection #9419 [arrow] (mzabaluev)
- Add
NullBuffer::from_unsliced_bufferhelper and refactor call sites #9411 [parquet] [arrow] (Eyad3skr) - Implement min, max, sum for run-end-encoded arrays. #9409 [arrow] (brunal)
- feat: add
RunArray::new_uncheckedandRunArray::into_parts#9376 [arrow] (rluvaton) - Fix skip_records over-counting when partial record precedes num_rows page skip #9374 [parquet] (jonded94)
- fix: resolution of complex type variants in Avro unions #9328 [arrow] (mzabaluev)
- feat(arrow-avro): Configurable Arrow timezone ID for Avro timestamps #9280 [arrow] (mzabaluev)
-
58.0.023 Feb 2026Release notes
Open source →Breaking changes:
- Remove support for List types in bit_length kernel #9350 [arrow] (codephage2020)
- Optimize
from_bitwise_unary_op#9297 [arrow] (Dandandan) - Mark
BufferBuilder::new_from_bufferas unsafe #9292 [arrow] (Jefffrey) - [Variant] Support
['fieldName']in VariantPath parser #9276 (klion26) - Remove parquet arrow_cast dependency #9077 [parquet] (tustvold)
- feat: change default behavior for Parquet
PageEncodingStatsto bitmask #9051 [parquet] (WaterWhisperer) - [arrow] Minimize allocation in GenericViewArray::slice() #9016 [arrow] (maxburke)
Implemented enhancements:
- Avoid allocating a
VecinStructBuilder#9427 - Zstd context reuse #9401
- Optimize
from_bitwise_unary_op#9364 - Support
RunEndEncodedin ord comparator #9360 - Support
RunEndEncodedarrays inarrow-json#9359 - Support
BinaryViewinbit_lengthkernel #9351 - Remove support for
Listtypes inbit_lengthkernel #9349 - Support roundtrip
ListViewin parquet arrow writer #9344 - Support
ListViewinlengthkernel #9343 - Support
ListViewin sort kernel #9341 - Add some way to create a Timestamp from a
DateTime#9337 - Introduce
DataType::is_listandDataType::IsBinary#9326 - Performance of creating all null dictionary array can be improved #9321
- [arrow-avro] Add missing Arrow DataType support with
avro_custom_typesround-trip + non-custom fallbacks #9290
Fixed bugs:
- ArrowArrayStreamReader errors on zero-column record batches #9394
- Regression on main (58): Parquet argument error: Parquet error: Required field type_ is missing #9315 [parquet]
Documentation updates:
- Improve safety documentation of the
Arraytrait #9314 [arrow] (alamb) - Improve docs and add build() method to
{Null,Boolean,}BufferBuilder#9155 [arrow] (alamb) - Improve
ArrowReaderBuilder::with_row_filterdocumentation #9153 [parquet] (alamb) - docs: Improve main README.md and highlight community #9119 (alamb)
- Docs: Add additional documentation and example for
make_array#9112 [arrow] (alamb) - doc: fix link on FixedSizeListArray doc #9033 [arrow] (Jefffrey)
Performance improvements:
- Replace
ArrayDatawith direct Array construction #9338 [arrow] (liamzwbao) - Remove some
unsafeand allocations when creating PrimitiveArrays from Vec andfrom_trusted_len_iter#9299 [arrow] (alamb) - parquet: rle skip decode loop when batch contains all max levels (aka no nulls) #9258 [parquet] (lyang24)
- Improve parquet BinaryView / StringView decoder performance (up to -35%) #9236 [parquet] (Dandandan)
- Avoid a clone when creating
BooleanArrayfrom ArrayData #9159 [arrow] (alamb) - Avoid overallocating arrays in coalesce primitives / views #9132 [arrow] (Dandandan)
- perf: Avoid ArrayData allocation in PrimitiveArray::reinterpret_cast #9129 [arrow] (alamb)
- [Parquet] perf: Create StructArrays directly rather than via
ArrayData(1% improvement) #9120 [parquet] [arrow] (alamb) - Avoid clones in
make_arrayforStructArrayandGenericByteViewArray#9114 [arrow] (alamb) - perf: optimize hex decoding in json (1.8x faster in binary-heavy) #9091 [arrow] (Weijun-H)
- Speed up binary kernels (30% faster
andandor), addBooleanBuffer::from_bitwise_binary_op#9090 [arrow] (alamb) - perf: improve field indexing in JSON StructArrayDecoder (1.7x speed up) #9086 [arrow] (Weijun-H)
- bench: added to row_format benchmark conversion of 53 non-nested columns #9081 [arrow] (rluvaton)
- perf: improve calculating length performance for view byte array in row conversion #9080 [arrow] (rluvaton)
- perf: improve calculating length performance for nested arrays in row conversion #9079 [arrow] (rluvaton)
- perf: improve calculating length performance for
GenericByteArrayin row conversion #9078 [arrow] (rluvaton)
Closed issues:
- BatchCoalescer::push_batch panics on schema mismatch instead of returning error #9389
- Release arrow-rs / parquet Minor version
57.3.0(January 2026) #9240 - [Variant] support
..and['fieldName']syntax in the VariantPath parser #9050 - Support Float16 for create_random_array #9028
Merged pull requests:
- Avoid allocating a
VecinStructBuilder#9428 [arrow] (Fokko) - fix: fixed trait functions clash get_date_time_part_extract_fn (#8221) #9424 [arrow] (esavier)
- [Minor] Use per-predicate projection masks in arrow_reader_clickbench benchmark #9413 [parquet] (Dandandan)
- Fix
ArrowArrayStreamReaderfor 0-columns record batch streams #9405 [arrow] (jonded94) - Use zstd::bulk API in IPC and Parquet with context reuse for compression and decompression #9400 [parquet] [arrow] (Dandandan)
- Reproduce the issue of #9370 in a minimal, end-to-end way #9399 [parquet] (jonded94)
- perf: optimize skipper for varint values used when projecting Avro record types #9397 [arrow] (mzabaluev)
- fix: return error instead of panic on schema mismatch in BatchCoalescer::push_batch #9390 [arrow] (bvolpato-dd)
- Minor: Add additional test coverage for WriterProperties::{max_row_group_row_count,max_row_group_size} #9387 [parquet] (alamb)
- Moving invalid_utf8 tests into a separate mod #9384 [parquet] (sdf-jkl)
- Update sysinfo requirement from 0.37.1 to 0.38.1 #9383 [parquet] (dependabot[bot])
- feat: support RunEndEncoded arrays in arrow-json reader and writer #9379 [arrow] (Abhisheklearn12)
- Remove lint issues in parquet-related code. #9375 [parquet] (brunal)
- Add RunEndEncoded array comparator #9368 [arrow] (codephage2020)
- feat: support BinaryView in bit_length kernel #9363 [arrow] (Abhisheklearn12)
- Add regression tests for Parquet large binary offset overflow #9361 [parquet] (vigneshsiva11)
- feat: add max_row_group_bytes option to WriterProperties #9357 [parquet] (yonipeleg33)
- doc: remove disclaimer about
ListViewnot being fully supported #9356 [arrow] (Jefffrey) - Move row_filter async tests from parquet async reader #9355 [parquet] (sdf-jkl)
- [Parquet] Allow setting page size per column #9353 [parquet] (XiangpengHao)
- feat: Support roundtrip ListView in parquet arrow writer #9352 [parquet] (codephage2020)
- feat: add ListView and LargeListView support to arrow-ord #9347 [arrow] (codephage2020)
- Support ListView in length kernel #9346 [arrow] (vegarsti)
- feat: Add from_datetime method to Timestamp types #9345 [arrow] (codephage2020)
- [main] Update version to 57.3.0, add changelog #9334 (alamb)
- build(deps): update pyo3 requirement from 0.27.1 to 0.28.0 #9331 (dependabot[bot])
- Add
DataType::is_listandDataType::is_binary#9327 [arrow] (AdamGS) - Fix string array equality when the values buffer is the same and only the offsets to access it differ #9325 [arrow] (jhorstmann)
- perf: skip validation of dictionary keys if all null #9322 [arrow] (albertlockett)
- parquet: use rwlock instead of mutex in predicate cache #9319 [parquet] (lyang24)
- nit: remove usused code #9318 [parquet] (lyang24)
- Remove unnecessary Arc<ArrayRef> #9316 [parquet] [arrow] (scovich)
- Optimize data page statistics conversion (up to 4x) #9303 [parquet] [arrow] (Dandandan)
- [regression] Error with adaptive predicate pushdown: "Invalid offset in sparse column chunk data: 754, no matching page found." #9301 [parquet] (sdf-jkl)
- Improve
PrimitiveArray::from_iterperf #9294 [arrow] (Dandandan) - Add additional Arrow type support #9291 [arrow] (jecsand838)
- fix: ensure
BufferBuilder::truncatedoesn't overset length #9288 [arrow] (Jefffrey) - Add benchmark for row group index reader perf #9285 [parquet] (friendlymatthew)
- fix union array row converter to handle non-sequential type ids #9283 [arrow] (friendlymatthew)
- parquet: reduce clone in delta byte array decoder #9282 [parquet] (lyang24)
- fix: fix [[NULL]] array doesn't roundtrip in arrow-row bug #9275 [arrow] (lichuang)
- Enhance list casting, adding more cases for list views #9274 [arrow] (Jefffrey)
- [Variant] Add path index access tests for list #9273 (liamzwbao)
- Factor out json reader's static make_decoder args to a struct #9271 [arrow] (scovich)
- make_decoder accepts borrowed DataType instead of owned #9270 [arrow] (scovich)
- Implement a more generic from_nested_iter method for list arrays #9268 [arrow] (jhorstmann)
- Move extension type construction logic out of Field #9266 [parquet] [arrow] (scovich)
- fix: support casting string to f16 #9262 [arrow] (Jefffrey)
- Add additional coverage for StringViewArray comparisons #9257 [arrow] (alamb)
- Upgrade to object store 0.13.1 #9256 [parquet] (Dandandan)
- [Parquet] test adaptive predicate pushdown with skipped page #9251 [parquet] (sdf-jkl)
- Speed up string view comparison (up to 3x) #9250 [arrow] (Dandandan)
- Add bench for LocalFileSystem #9248 [parquet] (Dandandan)
- [Parquet] Add test for reading/writing long UTF8 StringViews #9246 [parquet] (alamb)
- [Parquet] test adaptive predicate pushdown with skipped page #9243 [parquet] (erratic-pattern)
- Add tests and fixes for schema resolution bug #9237 [arrow] (jecsand838)
- Revert "Seal Array trait (#9092)", mark
Arrayasunsafe#9234 [arrow] (gabotechs) - Speedup filter (up to ~1.5x)
FilterBuilder::Optimize/BitIndexIterator/iter_set_bits_rev#9229 [parquet] [arrow] (Dandandan) - optimize
RowGroupIndexReaderfor single row group reads #9226 [parquet] (friendlymatthew) - test: improve arrow-row fuzz tests #9222 [arrow] (rluvaton)
- arrow-cast: support packing to Dictionary(_, Utf8View/BinaryView) #9220 [arrow] (ethan-tyler)
- Add additional test coverage for
BatchCoalescerpush_batch_with_filter #9218 [arrow] (alamb) - [Parquet] Optimize appending max level comparison in DefinitionLevelDecoder #9217 [parquet] (jhorstmann)
- Remove dead code to fix clippy failure on main #9215 [arrow] (alamb)
- [Parquet] perf: reuse seeked File clone in ChunkReader::get_read() #9214 [parquet] (fvaleye)
- fix: [9018]Fixed RunArray slice offsets(row, cast, eq) #9213 [arrow] (manishkr)
- Add benchmarks for reading struct arrays from parquet #9210 [parquet] (jhorstmann)
- Support casting negative scale decimals to numeric #9207 [arrow] (Chiicake)
- Deprecate
ArrowReaderOptions::with_page_indexand update API #9199 [parquet] (friendlymatthew) - arrow-ipc: add reset method to DictionaryTracker #9196 [arrow] (albertlockett)
- Avoid a clone when creating
ListArrayfrom ArrayData #9194 [arrow] (alamb) - Avoid a clone when creating
ListViewArrayfrom ArrayData #9193 [arrow] (alamb) - Avoid a clone when creating
MapArrayfrom ArrayData #9192 [arrow] (alamb) - Avoid a clone when creating
NullArrayfrom ArrayData #9191 [arrow] (alamb) - Avoid a clone when creating
PrimitiveArrayfrom ArrayData #9190 [arrow] (alamb) - Avoid a clone when creating
RunEndArrayfrom ArrayData #9189 [arrow] (alamb) - Avoid a clone when creating
UnionArrayfrom ArrayData #9188 [arrow] (alamb) - Avoid a clone when creating
FixedSizeListArrayfrom ArrayData #9187 [arrow] (alamb) - Avoid a clone when creating
FixedSizeBinaryArrayfrom ArrayData #9186 [arrow] (alamb) - Avoid a clone when creating
DictionaryArrayfrom ArrayData #9185 [arrow] (alamb) - fix: take_run return empty array instead of panic. #9182 [arrow] (thorfour)
- lint: remove unused function (fix clippy #9178 [arrow] (rluvaton)
- add
#[inline]toBitIteratornextfunction #9177 [arrow] (rluvaton) - Add ListView support to
arrow-rowandarrow-ord#9176 [arrow] (brancz) - arrow-cast: Add display formatter for ListView #9175 [arrow] (brancz)
- Add BinaryFormatSupport and Row Encoder to
arrow-avroWriter #9171 [arrow] (jecsand838) - docs(parquet): move async parquet example into ArrowReaderBuilder docs #9167 [parquet] (vigneshsiva11)
- feat(array): add
RecordBatchStreamtrait #9166 [arrow] (lidavidm) - refactor: streamline date64 tests #9165 [arrow] (cht42)
- docs: update examples in ArrowReaderOptions to use in-memory buffers #9163 [parquet] (AndreaBozzo)
- Add Avro Reader projection API #9162 [arrow] (jecsand838)
- Avoid a clone when creating StringArray/BinaryArray from ArrayData #9160 [arrow] (alamb)
- fix missing utf8 check for conversion from BinaryViewArray to StringViewArray #9158 [arrow] (alamb)
- Minor: try and avoid an allocation creating
GenericByteViewArrayfromArrayData#9156 [arrow] (alamb) - Add find_nth_set_bit_position #9151 [arrow] (Dandandan)
- feat: add null comparison handling in make_comparator #9150 [arrow] (Weijun-H)
- Uncomment part of test_utf8_single_column_reader_test #9148 [parquet] (sdf-jkl)
- arrow-ipc: Add tests for nested dicts for Map and Union arrays #9146 [arrow] (brancz)
- Update ASF copyright year in NOTICE #9145 (mohit7705)
- Avoid panic on Date32 overflow #9144 [arrow] (cht42)
- feat: add
reservetoRows#9142 [arrow] (rluvaton) - docs(variant): fix VariantObject::get documentation to reflect Option return type #9139 (mohit7705)
- Add
BooleanBufferBuilder::extend_trusted_len#9137 [arrow] (Dandandan) - fix: support cast from
Nullto list view/run encoded/union types #9134 [arrow] (Jefffrey) - Fix clippy #9130 (alamb)
- Fix IPC roundtripping dicts nested in ListViews #9126 [arrow] (brancz)
- Update readme for geospatial crate #9124 (paleolimbot)
- [Parquet] perf: Create
PrimitiveArrays directly rather than viaArrayData#9122 [parquet] (alamb) - [Parquet] perf: Create Utf8/BinaryViewArray directly rather than via
ArrayData#9121 [parquet] (alamb) - [parquet] Add row group index virtual column #9117 [parquet] (friendlymatthew)
- docs(parquet): add example for preserving dictionary encoding #9116 [parquet] (AndreaBozzo)
- doc: add example of RowFilter usage #9115 [parquet] (sonhmai)
- docs: Update release schedule in README.md #9111 (alamb)
- feat: add benchmarks for json parser #9107 [arrow] (Weijun-H)
- chore: switch test from
bincodeto maintainedpostcardcrate (RUSTSEC-2025-0141 ) #9104 [arrow] (alamb) - Add nullif_kernel benchmark #9089 [arrow] (alamb)
- [Variant] Support Shredded Lists/Array in
variant_get#9049 (liamzwbao) - fix:[9018]Fixed RunArray slice offsets #9036 [arrow] (manishkr)
- Support Float16 for create_random_array #9029 [arrow] (niebayes)
- fix: display
0 secsfor empty DayTime/MonthDayNano intervals #9023 [arrow] (Jefffrey) - Add options to skip decoding
StatisticsandSizeStatisticsin Parquet metadata #9008 [parquet] (etseidl)
-
57.3.111 May 2026Nothing published for this version
-
57.3.006 Feb 2026Release notes
Open source →Breaking changes:
- Revert "Seal Array trait", mark
Arrayasunsafe#9313 (alamb, gabotechs) - Mark
BufferBuilder::new_from_bufferas unsafe #9312 (alamb, Jefffrey)
Fixed bugs:
- Fix string array equality when the values buffer is the same and only the offsets to access it differ #9330 (alamb, jhorstmann)
- Ensure
BufferBuilder::truncatedoesn't overset length #9311 (alamb, Jefffrey) - [parquet] Provide only encrypted column stats in plaintext footer #9310 (alamb, rok, adamreeve)
- [regression] Error with adaptive predicate pushdown: "Invalid offset …" #9309 (alamb, erratic-pattern, sdf-jkl)
- Revert "Seal Array trait", mark
-
57.2.011 Jan 2026Release notes
Open source →Breaking changes:
- Seal Array trait #9092 [arrow] (tustvold)
- [Variant] Unify the CastOptions usage in parquet-variant-compute #8984 (klion26)
Implemented enhancements:
- [parquet] further relax
LevelInfoBuilder::types_compatibleforArrowWriter#9098 - Update arrow-row documentation with Union encoding #9084
- Add code examples for min and max compute functions #9055
- Add
append_nto bytes view builder API #9034 [arrow] - Move
RunArray::get_physical_indicestoRunEndBuffer#9025 [arrow] - Allow quote style in csv writer #9003 [arrow]
- IPC support for ListView #9002 [arrow]
- Implement
BinaryArrayTypefor&FixedSizeBinaryArrays #8992 [arrow] - arrow-buffer: implement num-traits for i256 #8976 [arrow]
- Support for
Arc<str>inParquetRecordWriterderive macro #8972 - [arrow-avro] suggest switching from xz to liblzma #8970 [arrow]
- arrow-buffer: add i256::trailing_zeros #8968 [arrow]
- arrow-buffer: make i256::leading_zeros public #8965 [arrow]
- Add spark like
ignoreLeadingWhiteSpaceandignoreTrailingWhiteSpaceoptions to the csv writer #8961 [arrow] - Add round trip benchmark for Parquet writer/reader #8955 [parquet]
- Support performant
interleavefor List/LargeList #8952 [arrow] - [Variant] Support array access when parsing
VariantPath#8946 - Some panic!s could be represented as unimplemented!s #8932 [arrow]
- [Variant] easier way to construct a shredded schema #8922
- Support
DataType::ListViewandDataType::LargeListViewinArrayData::new_null#8908 [arrow] - Add
GenericListViewArray::from_iter_primitive#8906 [arrow] - [Variant] Unify the cast option usage in ParquentVariant #8873
- Blog post about efficient filter representation in Parquet filter pushdown #8843 [parquet]
- Add comparison support for Union arrays in the
cmpkernel #8837 [arrow] - [Variant] Support array shredding into
List/LargeList/ListView/LargeListView#8830 - Support
Uniondata types for row format #8828 [arrow] - FFI support for ListView #8819 [arrow]
- [Variant] Support more Arrow Datatypes from Variant primitive types #8805
FixedSizeBinaryBuildersupportsappend_array#8750 [arrow]- Implement special case
zipwith scalar for Utf8View #8724 [arrow] - [geometry] Wire up arrow reader/writer for
GEOMETRYandGEOGRAPHY#8717 [parquet]
Fixed bugs:
- Soundness Bug in
try_binarywhenArrayis implemented incorrectly in external crate #9106 - casting
Dict(_, LargeUtf8)toUtf8View(StringViewArray) panics #9101 - wrong results for null count of
nullifkernel #9085 [parquet] [arrow] - Empty first line in some code examples #9063
- GenericByteViewArray::slice is not zero-copy but ought to be #9014
- Regression in struct casting in 57.2.0 (not yet released) #9005 [arrow]
- Fix panic when decoding multiple Union columns in RowConverter #8999 [arrow]
take_fixed_size_binaryDoes Not Consider NULL Indices #8947 [arrow]- [arrow-avro] RecordEncoder Bugs #8934 [arrow]
FixedSizeBinaryArray::try_new(...)Panics with Item Length of Zero #8926 [arrow]cargo test -p arrow-castfails on main #8910 [arrow]GenericListViewArray::new_nullignoreslenand returns an empty array #8904 [arrow]FixedSizeBinaryArray::new_nullDoes Not Properly Set the Length of the Values Buffer #8900 [arrow]- Struct casting requires same order of fields #8870 [arrow]
- Cannot cast string dictionary to binary view #8841 [arrow]
Documentation updates:
- Add Union encoding documentation #9102 [arrow] (EduardAkhmetshin)
- docs: fix misleading reserve documentation #9076 (WaterWhisperer)
- Fix headers and empty lines in code examples #9064 (EduardAkhmetshin)
- Add examples for min and max functions #9062 (EduardAkhmetshin)
- Improve arrow-buffer documentation #9020 [arrow] (alamb)
- Move examples in arrow-csv to docstrings, polish up docs #9001 [arrow] (alamb)
- Add example of parsing field names as VariantPath #8945 (alamb)
- Improve documentation for `prep_null_mask_flter #8722 [arrow] (alamb)
Performance improvements:
- [parquet] Avoid a clone while resolving the read strategy #9056 [parquet] (alamb)
- perf: improve performance of encoding
GenericByteArrayby 8% #9054 [arrow] (rluvaton) - Speed up unary
notkernel by 50%, addBooleanBuffer::from_bitwise_unary#8996 [arrow] (alamb) - arrow-select: improve dictionary interleave fallback performance #8978 [arrow] (asubiotto)
- Add special implementation for zip for Utf8View/BinaryView scalars #8963 [arrow] (mkleen)
- arrow-select: implement specialized interleave_list #8953 [arrow] (asubiotto)
Closed issues:
Merged pull requests:
- Add
DataType::is_decimal#9100 (AdamGS) - feat(parquet): relax type compatility check in parquet ArrowWriter #9099 [parquet] (gruuya)
- [Variant] Move
ArrayVariantToArrowRowBuildertovariant_to_arrow#9094 (liamzwbao) - chore: increase row count and batch size for more deterministic tests #9088 [arrow] (Weijun-H)
- Fix
nullifkernel #9087 [arrow] (alamb) - Add
FlightInfo::with_endpointsmethod #9075 [arrow] [arrow-flight] (lewiszlw) - chore: run validation when debug assertion enabled and not only for test #9073 [arrow] (rluvaton)
- Minor: make it clear cache array reader is not cloning arrays #9057 [parquet] (alamb)
- Minor: avoid clone in RunArray row decoding via buffer stealing #9052 [arrow] (lyang24)
- Minor: avoid some clones when reading parquet #9048 [parquet] (alamb)
- fix: don't generate nulls for
Decimal128andDecimal256when field is non-nullable and have non-zeronull_density#9046 [arrow] (rluvaton) - fix:
Rowssizeshould usecapacityand notlen#9044 [arrow] (rluvaton) - fix: integration / Archery test With other arrows container ran out of space #9043 (lyang24)
- feat: add new
try_append_value_n()function toGenericByteViewBuilder#9040 [arrow] (lyang24) - Rename fields in BooleanBuffer for clarity #9039 [arrow] (alamb)
- Allocate buffers before work in
boolean_kernelsbenchmark #9035 [arrow] (alamb) - Move RunArray::get_physical_indices to RunEndBuffer #9027 [arrow] (lyang24)
- Improve
RunArraydocumentation #9019 [arrow] (Jefffrey) - Add BooleanArray tests for null and slice behavior #9013 [arrow] (UtkarshSahay123)
- feat: support array indices in VariantPath dot notation #9012 (foskey51)
- arrow-cast: Bring back in-order field casting for
StructArray#9007 [arrow] (brancz) - arrow-ipc: Add ListView support #9006 [arrow] (brancz)
- Add quote style to csv writer #9004 [arrow] (xanderbailey)
- Fix row slice bug in Union column decoding with many columns #9000 [arrow] (friendlymatthew)
- build(deps): bump actions/download-artifact from 6 to 7 #8995 (dependabot[bot])
- minor: Add comment blocks to PR template #8994 (Jefffrey)
- Implement
BinaryArrayTypefor&FixedSizeBinaryArrays #8993 [arrow] (Jefffrey) - feat: impl BatchCoalescer::push_batch_with_indices #8991 [arrow] (ClSlaid)
- [Arrow]Configure max deduplication length for
StringView#8990 [arrow] (lichuang) - feat: implement append_array for FixedSizeBinaryBuilder #8989 [arrow] (ClSlaid)
- Add benchmarks for Utf8View scalars for zip #8988 [arrow] (mkleen)
- build(deps): bump actions/cache from 4 to 5 #8986 (dependabot[bot])
- Take fsb null indices #8981 [arrow] (alamb)
- Add List to
interleave_kernelsbenchmark #8980 [arrow] (alamb) - Fix ipc errors for
LargeListcontaining slicedStringViews#8979 [arrow] (fabianmurariu) - arrow-buffer: implement num-traits numeric operations #8977 [arrow] (theirix)
- Update
xzcrate dependency to useliblzmain arrow-avro #8975 [arrow] (jecsand838) - arrow-data: avoid allocating in get_last_run_end #8974 [arrow] (asubiotto)
- Support for
Arc<str>inParquetRecordWriterderive macro #8973 (heilhead) - feat: support casting
Time32toInt64#8971 [arrow] (tshauck) - arrow-buffer: add i256::trailing_zeros #8969 [arrow] (theirix)
- Perf: Vectorize check_bounds(2x speedup) #8966 [arrow] (gstvg)
- arrow-buffer: make i256::leading_zeros public and tested #8964 [arrow] (theirix)
- Add ignore leading and trailing white space to csv parser #8960 [arrow] (xanderbailey)
- Access
UnionFieldselements by index #8959 [arrow] (friendlymatthew) - Add Parquet roundtrip benchmarks #8956 [parquet] (etseidl)
- [Variant] Add variant to arrow for Date64/Timestamp(Second/Millisecond)/Time32/Time64 #8950 (klion26)
- Let
ArrowArrayStreamReaderhandle schema with attached metadata + do schema checking #8944 [arrow] (jonded94) - Adds ExtensionType for Parquet geospatial WKB arrays #8943 [parquet] (BlakeOrth)
- Add builder to help create Schemas for shredding (
ShreddedSchemaBuilder) #8940 (XiangpengHao) - build(deps): update criterion requirement from 0.7.0 to 0.8.0 #8939 (dependabot[bot])
- fix: Resolve Avro RecordEncoder bugs related to nullable Struct fields and Union type ids #8935 [arrow] (jecsand838)
- Some panic!s could more semantically be unimplemented! #8933 [arrow] (abacef)
- fix: ipc decode panic with invalid data #8931 [arrow] (leiysky)
- Allow creating zero-sized FixedSizeBinary arrays #8927 [arrow] (tobixdev)
- Update
test_variant_get_error_when_cast_failure...tests to uses a validVariantArray#8921 (alamb) - Make flight sql client generic #8915 [arrow] [arrow-flight] (lewiszlw)
- [minor] Name Magic Number "8" in
FixedSizeBinaryArray::new_null#8914 [arrow] (tobixdev) - fix: cast Binary/String dictionary to view #8912 [arrow] (Jefffrey)
- [8910]Fixed doc test with feature prettyprint #8911 [arrow] (manishkr)
- feat:
ArrayData::new_nullforListView/LargeListView#8909 [arrow] (dqkqd) - fead: add
GenericListViewArray::from_iter_primitive#8907 [arrow] (dqkqd) - fix:
GenericListViewArray::new_nullreturns empty array #8905 [arrow] (dqkqd) - Allocate a zeroed buffer for FixedSizeBinaryArray::null #8901 [arrow] (tobixdev)
- build(deps): bump actions/checkout from 5 to 6 #8899 (dependabot[bot])
- Add getters to
UnionFields#8895 [arrow] (friendlymatthew) - Add validated constructors for UnionFields #8891 [arrow] [arrow-flight] (friendlymatthew)
- Add bit width check #8888 [parquet] (rambleraptor)
- [Variant] Improve
variant_getperformance on a perfect shredding #8887 (XiangpengHao) - Add UnionArray::fields #8884 [arrow] (friendlymatthew)
- Struct casting field order #8871 [arrow] (brancz)
- Add support for
Uniontypes inRowConverter#8839 [arrow] (friendlymatthew) - Add comparison support for Union arrays #8838 [arrow] (friendlymatthew)
- [Variant] Support array shredding into
List/LargeList/ListView/LargeListView#8831 (liamzwbao) - Add support for using ListView arrays and types through FFI #8822 [arrow] (AdamGS)
- Add ability to skip or transform page encoding statistics in Parquet metadata #8797 [parquet] (etseidl)
- Implement a
Vec<RecordBatch>wrapper forpyarrow.Tableconvenience #8790 (jonded94) - Make Parquet SBBF serialize/deserialize helpers public for external reuse #8762 [parquet] (RoseZhang123)
- Add cast support for (Large)ListView <-> (Large)List #8735 [arrow] (vegarsti)
-
57.1.024 Nov 2025Release notes
Open source →Implemented enhancements:
- Eliminate bound checks in filter kernels #8865 [arrow]
- Respect page index policy option for ParquetObjectReader when it's not skip #8856 [parquet]
- Speed up collect_bool and remove
unsafe#8848 [arrow] - Error reading parquet FileMetaData with empty lists encoded as element-type=0 #8826 [parquet]
- ValueStatistics methods can't be used from generic context in external crate #8823 [parquet]
- Custom Pretty-Printing Implementation for Column when Formatting Record Batches #8821 [arrow]
- Parquet-concat: supports bloom filter and page index #8804 [parquet]
- [Parquet] virtual row number support #7299
- [Variant] Enforce shredded-type validation in
shred_variant#8795 [arrow] - Simplify decision logic to call
FilterBuilder::optimizeor not #8781 [arrow] - [Variant] Add variant to arrow for DataType::{Binary, LargeBinary, BinaryView} #8767 [arrow]
- Provide algorithm that allows zipping arrays whose values are not prealigned #8752 [arrow]
- [Parquet] ParquetMetadataReader decodes too much metadata under point-get scenerio #8751 [parquet]
arrow-jsonsupports encoding binary arrays, but not decoding #8736 [arrow]- Allow
FilterPredicateinstances to be reused for RecordBatches #8692 [arrow] - ArrowJsonBatch::from_batch is incomplete #8684 [arrow]
- parquet-layout: More info about layout including footer size, page index, bloom filter? #8682 [parquet]
- Rewrite
ParquetRecordBatchStream(async API) in terms of the PushDecoder #8677 [parquet] - [JSON] Add encoding for binary view #8674 [arrow]
- Refactor arrow-cast decimal casting to unify the rescale logic used in Parquet variant casts #8670 [arrow]
- [Variant] Support Uuid/
FixedSizeBinary(16)shredding #8665 - [Parquet]There should be an encoding counter to know how many encodings the repo supports in total #8662 [parquet]
- Improve
parse_data_typeforList,ListView,LargeList,LargeListView,FixedSizeList,Union,Map,RunEndCoded. #8648 [arrow] - [Variant] Support variant to arrow primitive support null/time/decimal_* #8637
- Return error from
RleDecoder::resetrather than panic #8632 [parquet] - Add bitwise ops on
BooleanBufferBuilderandMutableBufferthat mutate directly the buffer #8618 [arrow] - [Variant] Add variant_to_arrow Utf-8, LargeUtf8, Utf8View types support #8567 [arrow]
Fixed bugs:
- Regression: Parsing
List(Int64)results in nullable list in 57.0.0 and a non-nullable list in 57.1.0 #8883 - Regression: FixedSlizeList data type parsing fails on 57.1.0 #8880
- (dyn ArrayFormatterFactory + 'static) can't be safely shared between threads #8875
- RowNumber reader has wrong row group ordering #8864 [parquet]
ThriftMetadataWriter::write_column_indexescannot handle aColumnIndexMetaData::NONE#8815 [parquet]- "Archery test With other arrows" Integration test failing on main: #8813 [arrow]
- [Parquet] Writing in 57.0.0 seems 10% slower than 56.0.0 #8783 [parquet]
- Parquet reader cannot handle files with unknown logical types #8776 [parquet]
- zip now treats nulls as false in provided mask regardless of the underlying bit value #8721 [arrow]
- [avro] Incorrect version in crate.io landing page #8691 [arrow]
- Array: ViewType gc() has bug when array sum length exceed i32::MAX #8681 [arrow]
- Parquet 56: encounter
error: item_reader def levels are Nonewhen reading nested field with row filter #8657 [parquet] - Degnerate and non-nullable
FixedSizeListArrays are not handled #8623 [arrow] - [Parquet]Performance Degradation with RowFilter on Unsorted Columns due to Fragmented ReadPlan #8565 [parquet]
Documentation updates:
- docs: Add example for creating a
MutableBufferfromBuffer#8853 [arrow] (alamb) - docs: Add examples for creating MutableBuffer from Vec #8852 [arrow] (alamb)
- Improve ParquetDecoder docs #8802 [parquet] (alamb)
- Update docs for zero copy conversion of ScalarBuffer #8772 [arrow] (alamb)
- Add example to convert
PrimitiveArrayto aVec#8771 [arrow] (alamb) - docs: Add links for arrow-avro #8770 [arrow] (alamb)
- [Parquet] Minor: Update comments in page decompressor #8764 [parquet] (alamb)
- Document limitations of the
arrow_integration_testcrate #8738 [arrow] (phil-opp) - docs: Add link to the Arrow implementation status page #8732 [arrow] (alamb)
- docs: Update Parquet readme implementation status #8731 [parquet] (alamb)
Performance improvements:
RowConverter::from_binaryshould opportunistically take ownership of the buffer #8685 [arrow]- Speed up filter some more (up to 2x) #8868 [arrow] (Dandandan)
- Speed up
collect_booland removeunsafe, optimizetake_bits,take_nativefor null values #8849 [arrow] (Dandandan) - Change
BooleanBuffer::append_packed_rangeto useapply_bitwise_binary_op#8812 [arrow] (alamb) - [Parquet] Avoid copying
LogicalTypeinColumnOrder::get_sort_order, deprecateget_logical_type#8789 [parquet] (alamb) - perf: Speed up Parquet file writing (10%, back to speed of 56) #8786 [parquet] (etseidl)
- perf: override
ArrayIterdefault impl fornth,nth_back,lastandcount#8785 [arrow] (rluvaton) - [Parquet] Reduce one copy in
SerializedPageReader#8745 [parquet] (XiangpengHao) - Small optimization in Parquet varint decoder #8742 [parquet] (etseidl)
- perf: override
count,nth,nth_back,lastandmaxfor BitIterator #8696 [arrow] (rluvaton) - Add
FilterPredicate::filter_record_batch#8693 [arrow] (pepijnve) - perf: zero-copy path in
RowConverter::from_binary#8686 [arrow] (mzabaluev) - perf: add optimized zip implementation for scalars #8653 [arrow] (rluvaton)
- feat: add
apply_unary_opandapply_binary_opbitwise operations #8619 [arrow] (rluvaton) - [Parquet]Optimize the performance in record reader #8607 [parquet] (hhhizzz)
Closed issues:
- Variant to NullType conversion ignores strict casting #8810
- Unify display representation for
Field#8784 - Misleading configuration name: skip_arrow_metadata #8780
- Inconsistent display for types with Metadata #8761 [arrow]
- Internal
arrow-integration-testcrate is linked fromarrowdocs #8739 [arrow] - Add benchmark for RunEndEncoded casting #8709 [arrow]
- [Varaint] Support
VariantArray::valueto return aResult<Variant>#8672
Merged pull requests:
- Fix regression caused by changes in Display for DataType - display (
List(non-null Int64)instead ofList(nullable Int64)#8890 [parquet] [arrow] (etseidl) - Support parsing for old style FixedSizeList #8882 [arrow] (alamb)
- Make ArrayFormatterFactory Send + Sync and add a test #8878 [arrow] (tobixdev)
- Make
ArrowReaderOptions::with_virtual_columnserror rather than panic on invalid input #8867 [parquet] (alamb) - Fix errors when reading nested Lists with pushdown predicates. #8866 [parquet] (alamb)
- Fix
RowNumberReaderwhen not all row groups are selected #8863 [parquet] (vustef) - Respect page index policy option for ParquetObjectReader when it's not skip #8857 [parquet] (zhuqi-lucas)
- build(deps): update apache-avro requirement from 0.20.0 to 0.21.0 #8832 [arrow] (dependabot[bot])
- Allow Users to Provide Custom
ArrayFormatters when Pretty-Printing Record Batches #8829 [arrow] (tobixdev) - Allow reading of improperly constructed empty lists in Parquet metadata #8827 [parquet] (etseidl)
- [Variant] Fix cast logic for Variant to Arrow for DataType::Null #8825 (klion26)
- remove T: ParquetValueType bound on ValueStatistics #8824 [parquet] (pmarks)
- build(deps): update lz4_flex requirement from 0.11 to 0.12 #8820 [parquet] [arrow] (dependabot[bot])
- Fix bug in handling of empty Parquet page index structures #8817 [parquet] (etseidl)
- Parquet-concat: supports page index and bloom filter #8811 [parquet] (mapleFU)
- [Doc] Correct
ListArraydocumentation #8803 [arrow] (liamzwbao) - [Parquet] Add additional docs for
ArrowReaderOptionsandArrowReaderMetadata#8798 [parquet] (alamb) - [Variant] Enforce shredded-type validation in
shred_variant#8796 (liamzwbao) - Add
VariantPath::is_empty#8791 (friendlymatthew) - Add FilterBuilder::is_optimize_beneficial #8782 [arrow] (pepijnve)
- [Parquet] Allow reading of files with unknown logical types #8777 [parquet] (etseidl)
- bench: add
ArrayIterbenchmarks #8774 [arrow] (rluvaton) - Update Rust toolchain to 1.91 #8769 [parquet] [arrow] (mbrobbel)
- [Variant] Add variant to arrow for
DataType::{Binary/LargeBinary/BinaryView}#8768 [arrow] (klion26) - feat: parse
DataType::Union,DataType::Map,DataType::RunEndEncoded#8765 [arrow] (dqkqd) - Add options to control various aspects of Parquet metadata decoding #8763 [parquet] (etseidl)
- feat: Ensure consistent metadata display for data types #8760 [arrow] (mhilton)
- Clean up predicate_cache tests #8755 [parquet] (alamb)
- refactor
test_cache_projection_excludes_nested_columnsto use high level APIs #8754 [parquet] (alamb) - Add
mergeandmerge_nkernels #8753 [arrow] (pepijnve) - Fix lint in arrow-flight by updating assert_cmd after it upgraded #8741 [arrow] [arrow-flight] (vegarsti)
- Remove link to internal
arrow-integration-testcrate from mainarrowcrate #8740 [arrow] (phil-opp) - Implement hex decoding of JSON strings to binary arrays #8737 [arrow] (phil-opp)
- [Parquet] Adaptive Parquet Predicate Pushdown #8733 [parquet] (hhhizzz)
- [Parquet] Return error from
RleDecoder::reloadrather than panic #8729 [parquet] (liamzwbao) - fix:
ArrayIterdoes not report size hint correctly after advancing from the iterator back #8728 [arrow] (rluvaton) - perf: Use Vec::with_capacity in cast_to_run_end_encoded #8726 [arrow] (vegarsti)
- [Variant] Fix the index of an item in VariantArray in a unit test #8725 (martin-g)
- build(deps): bump actions/download-artifact from 5 to 6 #8720 (dependabot[bot])
- [Variant] Add try_value/value for VariantArray #8719 (klion26)
- General virtual columns support + row numbers as a first use-case #8715 [parquet] (vustef)
- feat: Parquet-layout add Index and Footer info #8712 [parquet] (mapleFU)
- fix:
zipnow treats nulls as false in provided mask regardless of the underlying bit value #8711 [arrow] (rluvaton) - Add benchmark for casting to RunEndEncoded (REE) #8710 [arrow] (vegarsti)
- [Minor]: Document visibility for enums produced by Thrift macros #8706 [parquet] (etseidl)
- Update
arrow-avroREADME.mdversion to 57 #8695 [arrow] (jecsand838) - Fix: ViewType gc on huge batch would produce bad output #8694 [arrow] (mapleFU)
- Refactor arrow-cast decimal casting to unify the rescale logic used in Parquet variant casts #8689 [arrow] (liamzwbao)
- check bit width to avoid panic in DeltaBitPackDecoder #8688 [parquet] (rambleraptor)
- [thrift-remodel] Use
thrift_enummacro forConvertedType#8680 [parquet] (etseidl) - [JSON] Map key supports utf8 view #8679 [arrow] (mapleFU)
- [JSON] Add encoding for binary view #8675 [arrow] (mapleFU)
- [Parquet] Account for FileDecryptor in ParquetMetaData heap size calculation #8671 [parquet] (adamreeve)
- chore: update
OffsetBuffer::from_lengths(std::iter::repeat_n(<val>, <repeat>));withOffsetBuffer::from_repeated_length(<val>, <repeat>);#8669 [arrow] (rluvaton) - [Variant] Support
shred_variantfor Uuids #8666 (friendlymatthew) - [Variant] Remove
create_test_variant_arrayhelper method #8664 (friendlymatthew) - [parquet] Adding counting method in thrift_enum macro to support ENCODING_SLOTS #8663 [parquet] (hhhizzz)
- chore: add test case of RowSelection::trim #8660 [parquet] (lichuang)
- feat: add
new_repeatedtoByteArray#8659 [arrow] (rluvaton) - perf: add
repeat_slice_n_timestoMutableBuffer#8658 [arrow] (rluvaton) - perf: add optimized function to create offset with same length #8656 [arrow] (rluvaton)
- [Variant]
rescale_decimalfollowup #8655 [arrow] (liamzwbao) - feat: parse DataType
List,ListView,LargeList,LargeListView,FixedSizeList#8649 [arrow] (dqkqd) - Support more operations on ListView #8645 [arrow] (a10y)
- [Variant] Implement primitive type access for null/time/decimal* #8638 (klion26)
- [Variant] refactor: Split builder.rs into several smaller files #8635 (Weijun-H)
- add
try_new_with_lengthconstructor toFixedSizeList#8624 [arrow] (connortsui20) - Change some panics to errors in parquet decoder #8602 [parquet] (rambleraptor)
- Support
variant_to_arrowfor utf8 #8600 [arrow] (sdf-jkl) - Cast support for RunEndEncoded arrays #8589 [arrow] (vegarsti)
-
57.0.023 Oct 2025Release notes
Open source →Breaking changes:
- Use
Arc<FileEncryptionProperties>everywhere to be be consistent withFileDecryptionProperties#8626 [parquet] (alamb) - feat: Improve DataType display for
RunEndEncoded#8596 [arrow] (Weijun-H) - Add
ArrowError::AvroError, remaining types and roundtrip tests toarrow-avro, #8595 [arrow] (jecsand838) - [thrift-remodel] Refactor Thrift encryption and store encodings as bitmask #8587 [parquet] (etseidl)
- feat: Enhance
Mapdisplay formatting in DataType #8570 [arrow] (Weijun-H) - feat: Enhance DataType display formatting for
ListViewandLargeListViewvariants #8569 [arrow] (Weijun-H) - Use custom thrift parser for parquet metadata (phase 1 of Thrift remodel) #8530 [parquet] (etseidl)
- refactor: improve display formatting for Union #8529 [arrow] (Weijun-H)
- Use
Arc<FileDecryptionProperties>to reduce size of ParquetMetadata and avoid copying whenencryptionis enabled #8470 [parquet] (alamb) - Fix for column name based projection mask creation #8447 [parquet] (etseidl)
- Improve Display formatting of DataType::Timestamp #8425 [parquet] [arrow] (emilk)
- Use more compact Debug formatting of Field #8424 [arrow] (emilk)
- Reuse zstd compression context when writing IPC #8405 [arrow] [arrow-flight] (albertlockett)
- [Decimal] Add scale argument to validation functions to ensure accurate error logging #8396 [arrow] (Weijun-H)
- Quote
DataType::Structfield names inDisplayformatting #8291 [parquet] [arrow] (emilk) - Improve
DisplayforDataTypeandField#8290 [parquet] [arrow] (emilk) - Bump pyo3 to 0.26.0 #8286 (mbrobbel)
Implemented enhancements:
- Added Avro support (new
arrow-avrocrate) #4886 - parquet-rewrite: supports compression level and write batch size #8639
- Error not panic when int96 stastistics aren't size 12 #8614 [parquet]
- [Variant] Make
VariantArrayiterable #8612 - [Variant] impl
PartialEqforVariantArray#8610 - [Variant] Remove potential panics when probing
VariantArray#8609 - [Variant] Remove ceremony of going from list of
VarianttoVariantArray#8606 - Eliminate redundant validation in
RecordBatch::project#8591 [arrow] - [PARQUET][BENCH] Arrow writer bench with compression and/or page v2 #8559 [parquet]
- [Variant] casting functions are confusingly named #8531 [parquet]
- Support writing GeospatialStatistics in Parquet writer #8523 [parquet]
- [thrift-remodel] Optimize
convert_row_groups#8517 [parquet] - [Variant] Add variant to arrow primitive support for boolean/timestamp/time #8515
- Test
thrift-remodelbranch with DataFusion #8513 [parquet] - Make
UnionArray::is_denseMethod Public #8503 [arrow] - Add
append_nmethod toFixedSizeBinaryDictionaryBuilder#8497 [arrow] - [Parquet] Reduce size of ParquetMetadata when encryption feature is enabled #8469 [parquet]
- [Parquet] Remove useless mut requirements in geting bloom filter function #8461 [parquet]
- Change
serdedependency toserde_corewhere applicable #8451 [arrow] - [Parquet] Split
ParquetMetadataReaderinto IO/decoder state machine and thrift parsing #8439 [parquet] - Remove compiler warning for redundant config enablement #8412 [arrow]
- Add geospatial statistics creation support for GEOMETRY/GEOGRAPHY Parquet logical types #8411 [arrow]
arrow_jsonlackswith_timestamp_formatfunctions likearrow_csvhad offered #8398 [arrow]- Unify API for writing column chunks / row groups in parallel #8389 [parquet]
- Reuse zstd context in arrow IPC writer #8386 [arrow] [arrow-flight]
- [Variant] Support reading/writing Parquet Variant LogicalType #8370 [parquet]
- [Variant] Implement a
shred_variantfunction #8361 - [Parquet] Expose ReadPlan and ReadPlanBuilder #8347 [parquet]
- [Variant] [Shredding] Support typed_access for
List#8337 [parquet] - [Variant] [Shredding] Support typed_access for
Struct#8336 [parquet] - [Variant] [Shredding] Support typed_access for
Time64(Microsecond)#8334 [parquet] - [Variant] [Shredding] Support typed_access for
Decimal128#8332 [parquet] - [Variant] [Shredding] Support typed_access for
Timestamp(Microsecond, _)andTimestamp(Nanosecond, _)#8331 [parquet] - [Variant] [Shredding] Support typed_access for
Date32#8330 [parquet] - [Variant] Support strict casting for all data types #8303
- [Variant] Support typed access for string types in variant_get #8285
- [Variant]: Implement
DataType::FixedSizeListsupport forcast_to_variantkernel #8281
Fixed bugs:
- Fix arrow-avro Writer Documentation related to AvroBinaryFormat #8631 [arrow]
- Decimal -> Decimal cast wrongly fails for large scale reduction #8579 [arrow]
- [Parquet] Avoid fetching multiple pages when
max_predicate_cache_sizeis 0 #8542 [parquet] - DataType parsing no longer works correctly for old formatted timestamps #8539 [parquet] [arrow]
- [Parquet] ArrowWriter flush does not work #8534 [parquet]
arrow::compute::interleavefails with struct arrays with no fields #8533 [arrow]- [Parquet] Over memory consumation for writer page v1 compressed #8526 [parquet]
- Incorrect Behavior of Collecting a filtered iterator to a BooleanArray #8505 [arrow]
- [Parquet] ProjectionMask::columns name handling is bug prone #8443 [parquet]
- [Variant] Shredded typed_value columns must have valid variant types #8435 [parquet]
- cargo test -p parquet fails with default
ulimit#8406 [parquet] - Column with List(Struct) causes failed to decode level data for struct array #8404 [parquet]
- Binaryview Utf8 Cast Issue #8403 [arrow]
- Decimal precision validation displays value without accounting for scale #8382 [arrow]
- [Variant]
VariantArray::data_typereturnsStructType, causingArray::as_structto panic #8319 [parquet] - [Variant] writing a VariantArray to parquet panics #8296 [parquet]
Documentation updates:
Performance improvements:
- [parquet] Improve encoding mask API (wrap bare i32 in a struct w/ docs) #8588 [parquet]
- bench: create
zipkernel benchmarks #8654 [arrow] (rluvaton) - Skip redundant validation checks in RecordBatch#project #8583 [arrow] (pepijnve)
- [thrift-remodel] Remove conversion functions for row group and column metadata #8574 [parquet] (etseidl)
- [PARQUET] Improve memory efficency for compressed writer parquet 1.0 #8527 [parquet] (lilianm)
- perf: improve
GenericByteBuilder::append_arrayto use SIMD for extending the offsets #8388 [arrow] (rluvaton)
Closed issues:
- Utf-8, LargeUtf8, Utf8View #8601
- [Variant] Improve the get type logic for DataType in variant to arrow row builder #8538
- Add a README.md for arrow-avro #8504 [arrow]
- Fix UnionArray references to "positive" values #8418 [arrow]
- [Variant]
metadatafield should be marked is non-nullable #8410 [parquet] - [Avro] Example read_with_utf8view.rs fails to run with error "Error: ParseError("Unexpected EOF while reading Avro header")" #8380 [arrow]
- [Geospatial]: Add CI checks for
parquet-geospatialcrate #8377 - [Geospatial] Create new
parquet-geometrycrate #8374
Merged pull requests:
- parquet-rewrite: add write_batch_size and compression_level config #8642 [parquet] (mapleFU)
- Introduce a ThriftProtocolError to avoid allocating and formattings strings for error messages #8636 [parquet] (jhorstmann)
- [thrift-remodel] Add macro to reduce boilerplate necessary to implement Thrift serialization #8634 [parquet] (etseidl)
- Fix Writer docs and rename
AvroBinaryFormattoAvroSoeFormat#8633 [arrow] (jecsand838) - [Variant] Bulk insert elements into List and Object Builders #8629 (friendlymatthew)
- [Variant] impl
PartialEqandFromIterator<Option<..>>forVariantArray#8627 (friendlymatthew) - [Variant] Remove ceremony from iterator of variants into VariantArray #8625 (friendlymatthew)
- Undeprecate
ArrowWriter::into_serialized_writerand add docs #8621 [parquet] (alamb) - fix: incorrect assertion in
BitChunks::new#8620 [arrow] (rluvaton) - [Variant] Clean up redundant
get_type_name#8617 (liamzwbao) - [Minor] Hide thrift macros #8616 [parquet] (etseidl)
- Deprecate
parquet::formatmodule #8615 [parquet] (etseidl) - [Variant] Make
VariantArrayiterable #8613 (friendlymatthew) - [Variant] Impl
ExtendforVariantArrayBuilder#8611 (friendlymatthew) - build(deps): bump actions/setup-node from 5 to 6 #8604 (dependabot[bot])
- Check int96 min/max instead of panicking #8603 [parquet] (rambleraptor)
- [thrift-remodel] Refactor Parquet Thrift code into new
thriftmodule #8599 [parquet] (etseidl) - [Parquet] Remove use of
parquet::formatin metadata bench code #8598 [parquet] (lichuang) - Remove experimental warning from
extensionmodule #8597 [arrow] (mbrobbel) - Adding
try_append_valueimplementation toByteViewBuilder#8594 [arrow] (samueleresca) - Add RecordBatch::project microbenchmark #8592 [arrow] (pepijnve)
- [parquet] Add a sync fn to ArrowWriter that flushes Writer #8586 [parquet] (PiotrSrebrny)
- chore: use magic number
FOOTER_SIZEinstead of hard code number #8585 [parquet] (lichuang) - Add support for run-end encoded (REE) arrays in arrow-avro #8584 [arrow] (jecsand838)
- Unify API for writing column chunks / row groups in parallel #8582 [parquet] (adamreeve)
- Fix linting issues missed by #8506 #8581 [parquet] (etseidl)
- Fix broken decimal->decimal casting with large scale reduction #8580 [arrow] (scovich)
- Migrate
arrowand workspace to Rust 2024 #8578 [parquet] [arrow] [arrow-flight] (mbrobbel) - Fix doctests of parquet push decoded without default features #8577 [parquet] (mbrobbel)
- Avoid panics and warnings when building avro without default features #8576 [arrow] (mbrobbel)
- Add support for 64-bit Schema Registry IDs (Id64) in arrow-avro #8575 [arrow] (jecsand838)
- fix: bug when struct nullability determined from
Dict<_, ByteArray>>column #8573 [parquet] (albertlockett) - fix: Support
interleave_structto handle empty fields #8563 [arrow] (Weijun-H) - [Variant] Define and use VariantDecimalType trait #8562 (scovich)
- [PARQUET] Update parquet writer bench with compression and pagev2 #8560 [parquet] (lilianm)
- Replace serde with
serde_corewhen possible #8558 [arrow] (AdamGS) - fix: use default field name when name is None in Field conversion #8557 [arrow] (Weijun-H)
- Add arrow-avro README.md file #8556 [arrow] (jecsand838)
- minor(parquet): Fix test_not_found on Windows #8555 [parquet] (nuno-faria)
- [Parquet] Avoid fetching multiple pages when the predicate cache is disabled #8554 [parquet] (nuno-faria)
- [Variant] Support variant to
Decimal32/64/128/256#8552 [arrow] (liamzwbao) - Arrow-avro Writer Dense Union support #8550 [arrow] (nathaniel-d-ef)
- Arrow-Avro: Resolve named field discrepancies #8546 [arrow] (nathaniel-d-ef)
- Migrate
arrow-avroto Rust 2024 #8545 [arrow] (mbrobbel) - feat: Export
is_densepublic #8544 [arrow] (Weijun-H) - Fix "Incorrect Behavior of Collecting a filtered iterator to a BooleanArray" #8543 [arrow] (tobixdev)
- Support old syntax for DataType parsing #8541 [arrow] (alamb)
- [Variant] Decimal unshredding support #8540 [parquet] (scovich)
- [Variant] Improve documentation and make kernels consistent #8536 [parquet] (alamb)
- feat: support casting from null to float16 #8535 [arrow] (chenkovsky)
- Add benchmarks for FromIter (PrimitiveArray and BooleanArray) #8525 [arrow] (tobixdev)
- Support writing GeospatialStatistics in Parquet writer #8524 [parquet] (paleolimbot)
- Fix some new rustdoc warnings #8522 [parquet] (etseidl)
- [Variant] Reverse VariantAsPrimitive trait to PrimitiveFromVariant #8519 (scovich)
- [Variant] Add variant to arrow primitive support for boolean/timestamp/time #8516 (klion26)
- [Variant] Add list support to unshred_variant #8514 [parquet] (scovich)
- Migrate
parquet-variant-jsonto Rust 2024 #8512 (mbrobbel) - Migrate
parquet-variant-computeto Rust 2024 #8511 (mbrobbel) - Migrate
parquet-variantto Rust 2024 #8510 (mbrobbel) - Migrate
parquet-geospatialto Rust 2024 #8509 (mbrobbel) - Migrate
parquet_derive_testto Rust 2024 #8508 (mbrobbel) - Migrate
parquet_deriveto Rust 2024 #8507 (mbrobbel) - Migrate
parquetto Rust 2024 #8506 [parquet] (mbrobbel) - [Variant] ReadOnlyMetadataBuilder borrows its underlying VariantMetadata #8502 (scovich)
- [Variant] Add a VariantBuilderExt impl for VariantValueArrayBuilder #8501 (scovich)
- build(deps): update sysinfo requirement from 0.36.0 to 0.37.1 #8500 [parquet] (dependabot[bot])
- [Variant] Introduce new BorrowedShreddingState concept #8499 (scovich)
- Add
append_nmethod toFixedSizeBinaryDictionaryBuilder#8498 [arrow] (albertlockett) - Fix docs.rs build: Use
doc_cfginstead of removeddoc_auto_cfg#8494 [parquet] [arrow] [arrow-flight] (mbrobbel) - Remove allow unused from arrow-avro lib.rs file #8493 [arrow] (jecsand838)
- Regression Testing, Bug Fixes, and Public API Tightening for arrow-avro #8492 [arrow] (jecsand838)
- Migrate
arrow-stringto Rust 2024 #8491 [arrow] (mbrobbel) - Migrate
arrow-selectto Rust 2024 #8490 [arrow] (mbrobbel) - Migrate
arrow-schemato Rust 2024 #8489 [arrow] (mbrobbel) - Migrate
arrow-rowto Rust 2024 #8488 [arrow] (mbrobbel) - Migrate
arrow-pyarrow-testingto Rust 2024 #8487 (mbrobbel) - Migrate
arrow-pyarrow-integration-testingto Rust 2024 #8486 (mbrobbel) - Migrate
arrow-pyarrowto Rust 2024 #8485 (mbrobbel) - Migrate
arrow-ordto Rust 2024 #8484 [arrow] (mbrobbel) - [Variant] Support strict casting for Decimals #8483 (liamzwbao)
- feat(json): Add temporal formatting options when write to JSON #8482 [arrow] (linyihai)
- [Variant] Define and use unshred_variant function #8481 [parquet] (scovich)
- [Minor] Remove private APIs from Parquet metadata benchmark #8478 [parquet] (etseidl)
- Add examples of using
Field::try_extension_type#8475 [arrow] (alamb) - Fix Rustfmt in arrow-cast #8473 [arrow] (mbrobbel)
- Disable incremental builds in CI #8471 (mbrobbel)
- Update Rust toolchain to 1.90 #8468 [arrow] (mbrobbel)
- [Parquet] Minor: Remove mut ref for getting row-group bloom filter #8462 [parquet] (mapleFU)
- refactor: split
numdependency #8459 [parquet] [arrow] (crepererum) - Migrate
arrow-jsonto Rust 2024 #8458 [arrow] (mbrobbel) - Migrate
arrow-ipcto Rust 2024 #8457 [arrow] (mbrobbel) - Migrate
arrow-flightto Rust 2024 #8456 [arrow] [arrow-flight] (mbrobbel) - Migrate
arrow-datato Rust 2024 #8455 [arrow] (mbrobbel) - Migrate
arrow-csvto Rust 2024 #8454 [arrow] (mbrobbel) - Migrate
arrow-castto Rust 2024 #8453 [arrow] (mbrobbel) - Migrate
arrow-bufferto Rust 2024 #8452 [arrow] (mbrobbel) - Migrate
arrow-arrayto Rust 2024 #8450 [arrow] (mbrobbel) - Migrate
arrow-arithto Rust 2024 #8449 [arrow] (mbrobbel) - Expose
fieldsinStructBuilder#8448 [arrow] (lewiszlw) - [Variant] Simpler shredding state #8444 [parquet] (scovich)
- Unpin comfytable #8440 [arrow] (alamb)
- Variant integration fixes #8438 [parquet] (scovich)
- Refactor: extract FooterTail from ParquetMetadataReader #8437 [parquet] (alamb)
- Refactor: Move parquet metadata parsing code into its own module #8436 [parquet] (alamb)
- Update
UnionArraywording to 'non-negative' #8434 [arrow] (jdockerty) - Adds Duration(TimeUnit) support to arrow-avro reader and writer #8433 [arrow] (nathaniel-d-ef)
- Update release schedule #8432 (mbrobbel)
- expose read plan and plan builder via mod #8431 [parquet] (yeya24)
- Bump MSRV to 1.85 #8429 [arrow] (mbrobbel)
- Fix clippy #8426 (alamb)
- Fix red main by updating test #8421 [parquet] (emilk)
- Implement AsRef for Schema and Field #8417 [arrow] (findepi)
- [Variant] mark metadata field as non-nullable #8416 (ding-young)
- Respect
CastOptions.safewhen castingBinaryView→Utf8View(returnnullfor invalid UTF‑8) #8415 [arrow] (kosiew) - Add Parquet geospatial statistics utility #8414 [arrow] (paleolimbot)
- Remove explicit default cfg option #8413 [arrow] (abacef)
- Support parquet canonical extension type roundtrip #8409 [parquet] (alamb)
- Support reading/writing
VariantArrayto parquet with Variant LogicalType #8408 [parquet] (alamb) - Follow-up on arrow-avro Documentation #8402 [arrow] (jecsand838)
- [Variant][Shredding] Support typed_access for timestamp_micro/timestamp_nano #8401 [parquet] (klion26)
- Expose ReadPlan and ReadPlanBuilder #8399 [parquet] (yeya24)
- Propagate errors instead of panics: Replace usages of
newwithtry_newfor Array types #8397 [arrow] (Jefffrey) - [Variant] Fix NULL handling for shredded object fields #8395 (scovich)
- Add Arrow Variant Extension Type, remove
Arrayimpl forVariantArrayandShreddedVariantFieldArray#8392 [parquet] (alamb) - Minor cleanup creating Schema #8391 [parquet] (alamb)
- [Geospatial]: Add CI checks for
parquet-geospatialcrate #8390 (kylebarron) - Follow-up Improvements to Avro union handling #8385 [arrow] (jecsand838)
- fix: reset the offset of 'file_for_view' #8381 [arrow] (TrevorADHD)
- [Variant] [Shredding] feat: Support typed_access for Date32 #8379 [parquet] (PinkCrow007)
- [Geospatial]: Scaffolding for new
parquet-geospatialcrate #8375 (kylebarron) - Avro writer prefix support #8371 [arrow] (nathaniel-d-ef)
- [Variant] Define new shred_variant function #8366 (scovich)
- Add arrow-avro Reader support for Dense Union and Union resolution (Part 2) #8349 [arrow] (jecsand838)
- Move ParquetMetadata decoder state machine into ParquetMetadataPushDecoder #8340 [parquet] (alamb)
- [Variant]: Implement
DataType::FixedSizeListsupport forcast_to_variantkernel #8282 (liamzwbao)
- Use
-
56.2.111 May 2026Nothing published for this version
-
56.2.023 Sep 2025Release notes
Open source →- [Variant] [Shredding] Support typed_access for Utf8 and BinaryView #8364 [parquet] (petern48)
- Fix casting floats to Decimal64 #8363 [arrow] (AdamGS)
- [Variant] Implement new VariantValueArrayBuilder #8360 (scovich)
- [Variant] Add constants for empty variant metadata #8359 (scovich)
- [Variant] Allow lossless casting from integer to floating point #8357 (scovich)
- [Variant] Minor code cleanups #8356 (scovich)
- [Variant] Remove unused metadata from variant ShreddingState #8355 (scovich)
- Adds Map & Enum support, round-trip & benchmark tests #8353 [arrow] (nathaniel-d-ef)
- [Variant] [Shredding] feat: Support typed_access for FixedSizeBinary #8352 (petern48)
- Add arrow-avro Reader support for Dense Union and Union resolution (Part 1) #8348 [arrow] (jecsand838)
- [Variant] feat: Support typed_access for Boolean #8346 (Weijun-H)
- [Variant] Make VariantToArrowRowBuilder an enum #8345 (scovich)
- [Variant] Rename VariantShreddingRowBuilder to VariantToArrowRowBuilder #8344 (scovich)
- [Variant] Add tests for variant_get requesting Some struct #8343 (scovich)
- [Variant] Add nullable arg to StructArrayBuilder::with_field #8342 (scovich)
- Minor: avoid an
Arc::clonein CacheOptions for Parquet PredicateCache #8338 [parquet] (alamb) - Fix
can_cast_typesfor temporal toUtf8View#8328 [arrow] (findepi) - Update
variant_integrationtest to use final approvedparquet-testingdata #8325 [parquet] (alamb) - [Variant] ParentState tracks builder-specific state in a uniform way #8324 [parquet] (scovich)
- [Variant] Remove boilerplate from make_shredding_row_builder #8322 (scovich)
- [Variant] Move VariantAsPrimitive to type_conversions.rs #8321 (scovich)
- [Variant] Remove unused output builder files #8320 (scovich)
- Add arrow-avro examples and Reader documentation #8316 [arrow] (jecsand838)
- Expose predicates from RowFilter #8315 [parquet] (yeya24)
- [Variant] Implement row builders for cast_to_variant #8299 (scovich)
- Adds additional type support to arrow-avro writer #8298 [arrow] (nathaniel-d-ef)
- Use apache/arrow-dotnet for integration test #8295 (kou)
- Add projection with default values support to
RecordDecoder#8293 [arrow] (jecsand838) - Add array/map/fixed schema resolution and default value support to arrow-avro codec #8292 [arrow] (jecsand838)
- Bump actions/labeler from 6.0.0 to 6.0.1 #8288 (dependabot[bot])
- Bump actions/github-script from 7 to 8 #8287 (dependabot[bot])
- [Variant] Add as_u* for Variant #8284 (klion26)
- [Variant] Support Shredded Objects in variant_get (take 2) #8280 (scovich)
- Bump actions/setup-node from 4 to 5 #8279 (dependabot[bot])
- Bump actions/setup-python from 5 to 6 #8278 (dependabot[bot])
- Bump actions/labeler from 5.0.0 to 6.0.0 #8276 (dependabot[bot])
- Impl
DisplayforTz#8275 [arrow] (kylebarron) - Added List and Struct Encoding to arrow-avro Writer #8274 [arrow] (jecsand838)
- Add into_builder method for WriterProperties #8272 [parquet] (corwinjoy)
- chore(parquet/record/field): dont truncate timestamps on display #8266 [parquet] (Erigara)
- [Parquet] Write row group with async writer #8262 [parquet] (lilianm)
- Parquet: Do not compress v2 data page when compress is bad quality #8257 [parquet] (mapleFU)
- Add Decimal32 and Decimal64 support to arrow-avro Reader #8255 [arrow] (jecsand838)
- [Minor] Backport changes to metadata benchmark #8251 [parquet] (etseidl)
- Update hashbrown requirement from 0.15.1 to 0.16.0 #8248 [parquet] [arrow] (dependabot[bot])
- Sort: Change lexsort comment from stable to unstable #8245 [arrow] (mapleFU)
- pin comfy-table to 7.1.2 #8244 [arrow] (zachschuermann)
- Adds Confluent wire format handling to arrow-avro crate #8242 [arrow] (nathaniel-d-ef)
- feat: gRPC compression support for flight CLI #8240 [arrow] [arrow-flight] (crepererum)
- feat:
SSLKEYLOGFILEsupport for flight CLI #8239 [arrow] [arrow-flight] (crepererum) - [Variant] Refactor
cast_to_variant#8235 (liamzwbao) - [Variant] add strict mode to cast_to_variant #8233 (codephage2020)
- [Variant] Add Variant::as_f16 #8232 (klion26)
- Unpin nightly rust version (MIRI job) #8229 (mbrobbel)
- Update apache-avro requirement from 0.14.0 to 0.20.0 #8226 [arrow] (dependabot[bot])
- Bump actions/upload-pages-artifact from 3 to 4 #8224 (dependabot[bot])
- Added arrow-avro enum mapping support for schema resolution #8223 [arrow] (jecsand838)
- Added arrow-avro schema resolution value skipping #8220 [arrow] (jecsand838)
- Fix error condition in doc comment of
Field::try_canonical_extension_type#8216 [arrow] (mbrobbel) - [Variant]: Implement
DataType::Durationsupport forcast_to_variantkernel #8215 (liamzwbao) - [Variant] feat: remove unnecessary unwraps in
Object::finish#8214 (Weijun-H) - [avro] Fix Avro decoder bitmap corruption when nullable field decoding fails #8213 [arrow] (yongkyunlee)
- Restore accidentally removed method Block::to_ne_bytes #8211 [parquet] (jhorstmann)
- [avro] Support all default types for avro schema's record field #8210 [arrow] (yongkyunlee)
- [Variant] Support read-only metadata builders #8208 (scovich)
- Avro to arrow schema conversion fails when a field has a default type that is not string #8209
- parquet: No method named
to_ne_bytesfound for structbloom_filter::Blockfor targets390x-unknown-linux-gnu#8207 - [Variant] cast_to_variant will panic on certain
Date64or Timestamp Values values #8155 - Parquet: Avoid page-size overflows i32 #8264 [parquet] (mapleFU)
Documentation updates:
- Update docstring comment for Writer::write() in writer.rs #8267 [arrow] (YKoustubhRao)
Closed issues:
- comfy-table release 7.2.0 breaks MSRV #8243
- [Variant] Add
Variant::as_f16#8228 - Support appending raw bytes to variant objects and lists #8217
VariantArrayBuilderusesParentStatefor simpler rollbacks #8205- Make
ObjectBuilder::finishsignature infallible #8184 - Improve performance of
i256tof64#8013
Merged pull requests:
- [Variant] Support Variant to PrimitiveArrow for unsigned integer #8369 (klion26)
- [Variant] [Shredding] Support typed_access for Utf8 and BinaryView #8364 [parquet] (petern48)
- Fix casting floats to Decimal64 #8363 [arrow] (AdamGS)
- [Variant] Implement new VariantValueArrayBuilder #8360 (scovich)
- [Variant] Add constants for empty variant metadata #8359 (scovich)
- [Variant] Allow lossless casting from integer to floating point #8357 (scovich)
- [Variant] Minor code cleanups #8356 (scovich)
- [Variant] Remove unused metadata from variant ShreddingState #8355 (scovich)
- Adds Map & Enum support, round-trip & benchmark tests #8353 [arrow] (nathaniel-d-ef)
- [Variant] [Shredding] feat: Support typed_access for FixedSizeBinary #8352 (petern48)
- Add arrow-avro Reader support for Dense Union and Union resolution (Part 1) #8348 [arrow] (jecsand838)
- [Variant] feat: Support typed_access for Boolean #8346 (Weijun-H)
- [Variant] Make VariantToArrowRowBuilder an enum #8345 (scovich)
- [Variant] Rename VariantShreddingRowBuilder to VariantToArrowRowBuilder #8344 (scovich)
- [Variant] Add tests for variant_get requesting Some struct #8343 (scovich)
- [Variant] Add nullable arg to StructArrayBuilder::with_field #8342 (scovich)
- Minor: avoid an
Arc::clonein CacheOptions for Parquet PredicateCache #8338 [parquet] (alamb) - Fix
can_cast_typesfor temporal toUtf8View#8328 [arrow] (findepi) - Update
variant_integrationtest to use final approvedparquet-testingdata #8325 [parquet] (alamb) - [Variant] ParentState tracks builder-specific state in a uniform way #8324 [parquet] (scovich)
- [Variant] Remove boilerplate from make_shredding_row_builder #8322 (scovich)
- [Variant] Move VariantAsPrimitive to type_conversions.rs #8321 (scovich)
- [Variant] Remove unused output builder files #8320 (scovich)
- Add arrow-avro examples and Reader documentation #8316 [arrow] (jecsand838)
- Expose predicates from RowFilter #8315 [parquet] (yeya24)
- [Variant] Implement row builders for cast_to_variant #8299 (scovich)
- Adds additional type support to arrow-avro writer #8298 [arrow] (nathaniel-d-ef)
- Use apache/arrow-dotnet for integration test #8295 (kou)
- Add projection with default values support to
RecordDecoder#8293 [arrow] (jecsand838) - Add array/map/fixed schema resolution and default value support to arrow-avro codec #8292 [arrow] (jecsand838)
- Bump actions/labeler from 6.0.0 to 6.0.1 #8288 (dependabot[bot])
- Bump actions/github-script from 7 to 8 #8287 (dependabot[bot])
- [Variant] Add as_u* for Variant #8284 (klion26)
- [Variant] Support Shredded Objects in variant_get (take 2) #8280 (scovich)
- Bump actions/setup-node from 4 to 5 #8279 (dependabot[bot])
- Bump actions/setup-python from 5 to 6 #8278 (dependabot[bot])
- Bump actions/labeler from 5.0.0 to 6.0.0 #8276 (dependabot[bot])
- Impl
DisplayforTz#8275 [arrow] (kylebarron) - Added List and Struct Encoding to arrow-avro Writer #8274 [arrow] (jecsand838)
- Add into_builder method for WriterProperties #8272 [parquet] (corwinjoy)
- chore(parquet/record/field): dont truncate timestamps on display #8266 [parquet] (Erigara)
- [Parquet] Write row group with async writer #8262 [parquet] (lilianm)
- Parquet: Do not compress v2 data page when compress is bad quality #8257 [parquet] (mapleFU)
- Add Decimal32 and Decimal64 support to arrow-avro Reader #8255 [arrow] (jecsand838)
- [Minor] Backport changes to metadata benchmark #8251 [parquet] (etseidl)
- Update hashbrown requirement from 0.15.1 to 0.16.0 #8248 [parquet] [arrow] (dependabot[bot])
- Sort: Change lexsort comment from stable to unstable #8245 [arrow] (mapleFU)
- pin comfy-table to 7.1.2 #8244 [arrow] (zachschuermann)
- Adds Confluent wire format handling to arrow-avro crate #8242 [arrow] (nathaniel-d-ef)
- feat: gRPC compression support for flight CLI #8240 [arrow] [arrow-flight] (crepererum)
- feat:
SSLKEYLOGFILEsupport for flight CLI #8239 [arrow] [arrow-flight] (crepererum) - [Variant] Refactor
cast_to_variant#8235 (liamzwbao) - [Variant] add strict mode to cast_to_variant #8233 (codephage2020)
- [Variant] Add Variant::as_f16 #8232 (klion26)
- Unpin nightly rust version (MIRI job) #8229 (mbrobbel)
- Update apache-avro requirement from 0.14.0 to 0.20.0 #8226 [arrow] (dependabot[bot])
- Bump actions/upload-pages-artifact from 3 to 4 #8224 (dependabot[bot])
- Added arrow-avro enum mapping support for schema resolution #8223 [arrow] (jecsand838)
- Added arrow-avro schema resolution value skipping #8220 [arrow] (jecsand838)
- Fix error condition in doc comment of
Field::try_canonical_extension_type#8216 [arrow] (mbrobbel) - [Variant]: Implement
DataType::Durationsupport forcast_to_variantkernel #8215 (liamzwbao) - [Variant] feat: remove unnecessary unwraps in
Object::finish#8214 (Weijun-H) - [avro] Fix Avro decoder bitmap corruption when nullable field decoding fails #8213 [arrow] (yongkyunlee)
- Restore accidentally removed method Block::to_ne_bytes #8211 [parquet] (jhorstmann)
- [avro] Support all default types for avro schema's record field #8210 [arrow] (yongkyunlee)
- [Variant] Support read-only metadata builders #8208 (scovich)
- [Variant] VariantArrayBuilder uses MetadataBuilder and ValueBuilder #8206 (scovich)
- [Variant]: Implement DataType::List/LargeList support for cast_to_variant kernel #8201 (sdf-jkl)
- [Variant]: Implement
DataType::Unionsupport forcast_to_variantkernel #8196 (liamzwbao) - [Variant] Support typed access for numeric types in variant_get #8179 (superserious-dev)
- [Variant]: Implement
DataType::Unionsupport forcast_to_variantkernel #8195 - [Variant]: Implement
DataType::Durationsupport forcast_to_variantkernel #8194 - [Variant] Support typed access for numeric types in variant_get #8178
- [Parquet] Implement a "push style" API for decoding Parquet Metadata #8164
- [Variant] Support creating Variants with pre-existing Metadata #8152
- [Variant] Support Shredded Objects in
variant_get: typed path access (STEP 1) #8150 - [Variant] Add
variantfeature toparquetcrate #8132 - [Parquet] Concurrent writes with ArrowWriter.get_column_writers should parallelize across row groups #8115
- [Variant] Implement
VariantArray::valuefor shredded variants #8091 - [Variant] Integration tests for reading parquet w/ Variants #8084
- [Variant]: Implement
DataType::Mapsupport forcast_to_variantkernel #8063 - [Variant]: Implement
DataType::List/LargeListsupport forcast_to_variantkernel #8060
-
56.1.025 Aug 2025Release notes
Open source →Implemented enhancements:
- Implement cast and other operations on decimal32 and decimal64 #7815 #8204 [arrow]
- Speed up Parquet filter pushdown with predicate cache #8203 [parquet]
- Optionally read parquet page indexes #8070 [parquet]
- Parquet reader: add method for sync reader read bloom filter #8023 [parquet]
- [parquet] Support writing logically equivalent types to
ArrowWriter#8012 [parquet] - Improve StringArray(Utf8) sort performance #7847 [arrow]
- feat: arrow-ipc delta dictionary support #8001 [arrow] (JakeDern)
Fixed bugs:
- The Rustdocs are clean CI job is failing #8175
- [avro] Bug in resolving avro schema with named type #8045 [arrow]
- Doc test failure (test arrow-avro/src/lib.rs - reader) when verifying avro 56.0.0 RC1 release #8018 [arrow]
Documentation updates:
- arrow-row: Document dictionary handling #8168 [arrow] (alamb)
- Docs: Clarify that Array::value does not check for nulls #8065 [arrow] (alamb)
- docs: Fix a typo in README #8036 (EricccTaiwan)
- Add more comments to the internal parquet reader #7932 [parquet] (alamb)
Performance improvements:
- perf(arrow-ipc): avoid counting nulls in
RecordBatchDecoder#8127 [arrow] (rluvaton) - Use
Vecdirectly in builders #7984 [arrow] (liamzwbao) - Improve StringArray(Utf8) sort performance (~2-4x faster) #7860 [arrow] (zhuqi-lucas)
Closed issues:
- [Variant] Improve fuzz test for Variant #8199
- [Variant] Improve fuzz test for Variant #8198
VariantArrayBuildertracks starting offsets instead of (offset, len) pairs #8192- Rework
ValueBuilderAPI to work withParentStatefor reliable nested rollbacks #8188 - [Variant] Rename
ValueBufferasValueBuilder#8186 - [Variant] Refactor
ParentStateto track and rollback state on behalf of its owning builder #8182 - [Variant]
ObjectBuildershould detect duplicates at insertion time, not at finish #8180 - [Variant] ObjectBuilder does not reliably check for duplicates #8170
- [Variant] Support
StringViewandLargeStringin ´batch_json_string_to_variant` #8145 [parquet] - [Variant] Rename
batch_json_string_to_variantandbatch_variant_to_json_stringjson_to_variant #8144 [parquet] - [avro] Use
tempfilecrate rather than custom temporary file generator in tests #8143 [arrow] - [Avro] Use
Writeratherdyn Writein Decoder #8142 [arrow] - [Variant] Nested builder rollback is broken #8136
- [Variant] Add support the remaing primitive type(timestamp_nanos/timestampntz_nanos/uuid) for parquet variant #8126
- Meta: Implement missing Arrow 56.0 lint rules - Sequential workflow #8121
- ARROW-012-015: Add linter rules for remaining Arrow 56.0 breaking changes #8120
- ARROW-010 & ARROW-011: Add linter rules for Parquet Statistics and Metadata API removals #8119
- ARROW-009: Add linter rules for IPC Dictionary API removals in Arrow 56.0 #8118
- ARROW-008: Add linter rule for SerializedPageReaderState usize→u64 breaking change #8117
- ARROW-007: Add linter rule for Schema.all_fields() removal in Arrow 56.0 #8116
- [Variant] Implement
ShreddingState::AllNullvariant #8088 [parquet] - [Variant] Support Shredded Objects in
variant_get#8083 [parquet] - [Variant]: Implement
DataType::RunEndEncodedsupport forcast_to_variantkernel #8064 [parquet] - [Variant]: Implement
DataType::Dictionarysupport forcast_to_variantkernel #8062 [parquet] - [Variant]: Implement
DataType::Structsupport forcast_to_variantkernel #8061 [parquet] - [Variant]: Implement
DataType::Decimal32/Decimal64/Decimal128/Decimal256support forcast_to_variantkernel #8059 [parquet] - [Variant]: Implement
DataType::Timestamp(..)support forcast_to_variantkernel #8058 [parquet] - [Variant]: Implement
DataType::Float16support forcast_to_variantkernel #8057 [parquet] - [Variant]: Implement
DataType::Intervalsupport forcast_to_variantkernel #8056 [parquet] - [Variant]: Implement
DataType::Time32/Time64support forcast_to_variantkernel #8055 [parquet] - [Variant]: Implement
DataType::Date32 / DataType::Date64support forcast_to_variantkernel #8054 [parquet] - [Variant]: Implement
DataType::Nullsupport forcast_to_variantkernel #8053 [parquet] - [Variant]: Implement
DataType::Booleansupport forcast_to_variantkernel #8052 [parquet] - [Variant]: Implement
DataType::FixedSizeBinarysupport forcast_to_variantkernel #8051 [parquet] - [Variant]: Implement
DataType::Binary/LargeBinary/BinaryViewsupport forcast_to_variantkernel #8050 [parquet] - [Variant]: Implement
DataType::Utf8/LargeUtf8/Utf8Viewsupport forcast_to_variantkernel #8049 [parquet] - [Variant] Implement
cast_to_variantkernel #8043 [parquet] - [Variant] Support
variant_getkernel for shredded variants #7941 [parquet] - Add test for casting
Decimal128(i128::MINandi128::MAX) tof64with overflow handling #7939 [arrow]
Merged pull requests:
- [Variant] Enhance the variant fuz test to cover time/timestamp/uuid primitive type #8200 (klion26)
- [Variant] VariantArrayBuilder tracks only offsets #8193 (scovich)
- [Variant] Caller provides ParentState to ValueBuilder methods #8189 (scovich)
- [Variant] Rename ValueBuffer as ValueBuilder #8187 (scovich)
- [Variant] ParentState handles finish/rollback for builders #8185 (scovich)
- [Variant]: Implement
DataType::RunEndEncodedsupport forcast_to_variantkernel #8174 (liamzwbao) - [Variant]: Implement
DataType::Dictionarysupport forcast_to_variantkernel #8173 (liamzwbao) - Implement
ArrayBuilderforUnionBuilder#8169 [arrow] (grtlr) - [Variant] Support
LargeStringandStringViewinbatch_json_string_to_variant#8163 (liamzwbao) - [Variant] Rename
batch_json_string_to_variantandbatch_variant_to_json_string#8161 (liamzwbao) - [Variant] Add primitive type timestamp_nanos(with&without timezone) and uuid #8149 (klion26)
- refactor(avro): Use impl Write instead of dyn Write in encoder #8148 [arrow] (Xuanwo)
- chore: Use tempfile to replace hand-written utils functions #8147 [arrow] (Xuanwo)
- feat: support push batch direct to completed and add biggest coalesce batch support #8146 [arrow] (zhuqi-lucas)
- [Variant] Add human-readable impl Debug for Variant #8140 (scovich)
- [Variant] Fix broken metadata builder rollback #8135 (scovich)
- [Variant]: Implement DataType::Interval support for cast_to_variant kernel #8125 (codephage2020)
- Add schema resolution and type promotion support to arrow-avro Decoder #8124 [arrow] (jecsand838)
- Add Initial
arrow-avrowriter implementation with basic type support #8123 [arrow] (jecsand838) - [Variant] Add Variant::Time primitive and cast logic #8114 (klion26)
- [Variant] Support Timestamp to variant for
cast_to_variantkernel #8113 (abacef) - Bump actions/checkout from 4 to 5 #8110 (dependabot[bot])
- [Varaint]: add
DataType::Nullsupport to cast_to_variant #8107 (feniljain) - [Variant] Adding fixed size byte array to variant and test #8106 (abacef)
- [VARIANT] Initial integration tests for variant reads #8104 [parquet] (carpecodeum)
- [Variant]: Implement
DataType::Decimal32/Decimal64/Decimal128/Decimal256support forcast_to_variantkernel #8101 (liamzwbao) - Refactor arrow-avro
Decoderto support partial decoding #8100 [arrow] (jecsand838) - fix: Validate metadata len in IPC reader #8097 [arrow] (JakeDern)
- [parquet] further improve logical type compatibility in ArrowWriter #8095 [parquet] (albertlockett)
- [Varint] Implement ShreddingState::AllNull variant #8093 (codephage2020)
- [Variant] Minor: Add comments to tickets for follow on items #8092 (alamb)
- [VARIANT] Add support for DataType::Struct for cast_to_variant #8090 (carpecodeum)
- [VARIANT] Add support for DataType::Utf8/LargeUtf8/Utf8View for cast_to_variant #8089 (carpecodeum)
- [Variant] Implement
DataType::Booleansupport forcast_to_variantkernel #8085 (sdf-jkl) - [Variant] Implement
DataType::{Date32,Date64}=>Variant::Date#8081 (superserious-dev) - Fix new clippy lints from Rust 1.89 #8078 [parquet] [arrow] [arrow-flight] (alamb)
- Implement ArrowSchema to AvroSchema conversion logic in arrow-avro #8075 [arrow] (jecsand838)
- Implement
DataType::{Binary, LargeBinary, BinaryView}=>Variant::Binary#8074 (superserious-dev) - [Variant] Implement
DataType::Float16=>Variant::Float#8073 (superserious-dev) - create PageIndexPolicy to allow optional indexes #8071 [parquet] (kczimm)
- [Variant] Minor: use From impl to make conversion infallable #8068 [parquet] (alamb)
- Bump actions/download-artifact from 4 to 5 #8066 (dependabot[bot])
- Added arrow-avro schema resolution foundations and type promotion #8047 [arrow] (jecsand838)
- Fix arrow-avro type resolver register bug #8046 [arrow] (yongkyunlee)
- implement
cast_to_variantkernel to cast native types toVariantArray#8044 [parquet] (alamb) - Add arrow-avro
SchemaStoreand fingerprinting #8039 [arrow] (jecsand838) - Add more benchmarks for Parquet thrift decoding #8037 [parquet] (etseidl)
- Support multi-threaded writing of Parquet files with modular encryption #8029 [parquet] (rok)
- Add arrow-avro Decoder Benchmarks #8025 [arrow] (jecsand838)
- feat: add method for sync Parquet reader read bloom filter #8024 [parquet] (mapleFU)
- [Variant] Add
variant_getand ShreddedVariantArray#8021 [parquet] (alamb) - Implement arrow-avro SchemaStore and Fingerprinting To Enable Schema Resolution #8006 [arrow] (jecsand838)
- [Parquet] Add tests for IO/CPU access in parquet reader #7971 [parquet] (alamb)
- Speed up Parquet filter pushdown v4 (Predicate evaluation cache for async_reader) #7850 [parquet] (XiangpengHao)
- Implement cast and other operations on decimal32 and decimal64 #7815 [arrow] (CurtHagenlocher)
-
56.0.001 Aug 2025Release notes
Open source →Breaking changes:
- arrow-schema: Remove dict_id from being required equal for merging #7968 [arrow] (brancz)
- [Parquet] Use
u64forSerializedPageReaderState.offset&remaining_bytes, instead ofusize#7918 [parquet] (JigaoLuo) - Upgrade tonic dependencies to 0.13.0 version (try 2) #7839 [arrow] [arrow-flight] (alamb)
- Remove deprecated Arrow functions #7830 [arrow] [arrow-flight] (etseidl)
- Remove deprecated temporal functions #7813 [arrow] (etseidl)
- Remove functions from parquet crate deprecated in or before 54.0.0 #7811 [parquet] (etseidl)
- GH-7686: [Parquet] Fix int96 min/max stats #7687 [parquet] (rahulketch)
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_valuefor convenience #7951 [parquet] - [Variant] Add
ObjectBuilder::with_fieldfor convenience #7949 [parquet] - [Variant] Impl PartialEq for VariantObject #7943 #7948
- [Variant] Offer
simdutf8as 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_getkernel #7893 [parquet] - [Variant][Compute] Add batch processing for Variant-JSON String conversion #7883 [parquet]
- Support
MapArrayin 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
ObjectBuilderto control validation behavior on duplicate field write #7777 [parquet] - [Variant] make
serde_jsonan optional dependency ofparquet-variant#7775 [parquet] - [coalesce] Implement specialized
BatchCoalescer::push_batchforPrimitiveArray#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::gcmethod #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_largetakes over 20s #7872 [parquet] - [Variant] If
ObjectBuilder::finalizeis 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.88upgrade #7796 [parquet] [arrow] [arrow-flight] - [Variant] Field lookup with out of bounds index causes unwanted behavior #7784 [parquet]
- Error verifying
parquet-variantcrate on 55.2.0 withverify-release-candidate.sh#7746 test_to_pyarrowtests fail during release verification #7736 [arrow]- [parquet_derive] Example for ParquetRecordWriter is broken. #7732
- [Variant]
Variant::Objectcan 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_nullslength #7647 [arrow] - Ensure page encoding statistics are written to Parquet file #7643 [parquet] (etseidl)
Documentation updates:
- Minor: Upate
cast_with_optionsdocs about casting integers --> intervals #8002 [arrow] (alamb) - docs: More docs to
BatchCoalescer#7891 [arrow] (2010YOUY01) - chore: fix a typo in
ExtensionType::supports_data_typedocs #7682 [arrow] (mbrobbel) - [Variant] Add variant docs and examples #7661 [parquet] (alamb)
- Minor: Add version to deprecation notice for
ParquetMetaDataReader::decode_footer#7639 [parquet] (etseidl)
Performance improvements:
RowConverteron 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_valueto 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_f64to replace current ±∞ saturation for Decimal256 → Float64 #7985 - [Variant]
impl FromIteratorfprVariantPath#7955 validatedandis_fully_validatedflags doesn't need to be part of PartialEq #7952 [parquet]- [Variant] remove VariantMetadata::dictionary_size #7947 [parquet]
- [Variant] Improve
VariantArrayperformance 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
Dropimpl #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:
- Add benchmark for converting StringViewArray with mixed short and long strings #8015 [arrow] (ding-young)
- [Variant] impl FromIterator for VariantPath #8011 [parquet] (sdf-jkl)
- Create empty buffer for a buffer specified in the C Data Interface with length zero #8009 [arrow] (viirya)
- bench: add benchmark for converting list and sliced list to row format #8008 [arrow] (rluvaton)
- bench: benchmark interleave structs #8007 [arrow] (rluvaton)
- [Parquet] Allow writing compatible DictionaryArrays to parquet writer #8005 [parquet] (albertlockett)
- doc: remove outdated info from CONTRIBUTING doc in project root dir. #7998 (sonhmai)
- perf: only encode actual list values in
RowConverter(16-26 times faster for small sliced list) #7996 [arrow] (rluvaton) - test: add tests for converting sliced list to row based #7994 [arrow] (rluvaton)
- perf: Improve
interleaveperformance for struct (3-6 times faster) #7991 [arrow] (rluvaton) - [Variant] Avoid extra buffer allocation in ListBuilder #7987 [parquet] (klion26)
- Implement full-range
i256::to_f64to eliminate ±∞ saturation for Decimal256 → Float64 casts #7986 [arrow] (kosiew) - Minor: Restore warning comment on Int96 statistics read #7975 [parquet] (alamb)
- Add additional integration tests to arrow-avro #7974 [arrow] (nathaniel-d-ef)
- Perf: optimize actual_buffer_size to use only data buffer capacity for coalesce #7967 [arrow] (zhuqi-lucas)
- Implement Improved arrow-avro Reader Zero-Byte Record Handling #7966 [arrow] (jecsand838)
- Perf: improve sort via
partition_validityto use fast path for bit map scan (up to 30% faster) #7962 [arrow] (zhuqi-lucas) - [Variant] Revisit VariantMetadata and Object equality #7961 [parquet] (friendlymatthew)
- [Variant] Add ListBuilder::with_value for convenience #7959 [parquet] (codephage2020)
- [Variant] remove VariantMetadata::dictionary_size #7958 [parquet] (codephage2020)
- [Variant] VariantMetadata is allowed to contain the empty string #7956 [parquet] (scovich)
- Add arrow-avro support for Impala Nullability #7954 [arrow] (veronica-m-ef)
- [Test] Add tests for VariantList equality #7953 [parquet] (alamb)
- [Variant] Add ObjectBuilder::with_field for convenience #7950 [parquet] (alamb)
- [Variant] Adding code to store metadata and value references in VariantArray #7945 (abacef)
- [Variant] Add
variant_kernelsbenchmark #7944 (alamb) - [Variant] Impl
PartialEqfor VariantObject #7943 [parquet] (friendlymatthew) - [Variant] Add documentation, tests and cleaner api for Variant::get_path #7942 [parquet] (alamb)
- arrow-ipc: Remove all abilities to preserve dict IDs #7940 [parquet] [arrow] [arrow-flight] (brancz)
- Optimize partition_validity function used in sort kernels #7937 [arrow] (jhorstmann)
- [Variant] Avoid extra allocation in object builder #7935 [parquet] (klion26)
- [Variant] Avoid collecting offset iterator #7934 [parquet] (codephage2020)
- Minor: Support BinaryView and StringView builders in
make_builder#7931 [arrow] (kylebarron) - chore: bump MSRV to 1.84 #7926 [parquet] [arrow] [arrow-flight] (mbrobbel)
- Update bzip2 requirement from 0.4.4 to 0.6.0 #7924 [arrow] (mbrobbel)
- [Variant] Reserve capacity beforehand during large object building #7922 [parquet] (friendlymatthew)
- [Variant] Add
variant_getcompute kernel #7919 [parquet] (Samyak2) - Improve memory usage for
arrow-row -> String/BinaryViewwhen utf8 validation disabled #7917 [arrow] (ding-young) - Restructure compare_greater function used in parquet statistics for better performance #7916 [parquet] (jhorstmann)
- [Variant] Support appending complex variants in
VariantBuilder#7914 [parquet] (friendlymatthew) - [Variant] Add
VariantBuilder::new_with_buffersto write to existing buffers #7912 [parquet] (alamb) - Convert JSON to VariantArray without copying (8 - 32% faster) #7911 [parquet] (alamb)
- [Variant] Use simdutf8 for UTF-8 validation #7908 [parquet] [arrow] (codephage2020)
- [Variant] Avoid superflous validation checks #7906 [parquet] (friendlymatthew)
- Add
VariantArrayandVariantArrayBuilderfor constructing Arrow Arrays of Variants #7905 (alamb) - Update sysinfo requirement from 0.35.0 to 0.36.0 #7904 [parquet] (dependabot[bot])
- Fix current CI failure #7898 [arrow] (viirya)
- Remove redundant is_err checks in Variant tests #7897 [parquet] (viirya)
- [Variant] test: add variant object tests with different sizes #7896 [parquet] (odysa)
- [Variant] Define basic convenience methods for variant pathing #7894 [parquet] (scovich)
- fix:
view_typesbenchmark slice should follow by correct len array #7892 [arrow] (zhuqi-lucas) - Add arrow-avro support for bzip2 and xz compression #7890 [arrow] (jecsand838)
- Add arrow-avro support for Duration type and minor fixes for UUID decoding #7889 [arrow] (jecsand838)
- [Variant] Reduce variant-related struct sizes #7888 [parquet] (scovich)
- Fix panic on lossy decimal to float casting: round to saturation for overflows #7887 [arrow] (kosiew)
- Add tests for invalid variant metadata and value #7885 [parquet] (viirya)
- [Variant] Introduce parquet-variant-compute crate to transform batches of JSON strings to and from Variants #7884 (harshmotw-db)
- feat: support
MapArrayin lexsort #7882 [arrow] (rluvaton) - fix: mark
DataType::Mapas unsupported inRowConverter#7880 [arrow] (rluvaton) - [Variant] Speedup validation #7878 [parquet] (friendlymatthew)
- benchmark: Add StringViewArray gc benchmark with not null cases #7877 [arrow] (zhuqi-lucas)
- [ARROW-RS-7820][Variant] Add tests for large variant lists #7876 [parquet] (klion26)
- fix: Incorrect inlined string view comparison after Add prefix compar… #7875 [arrow] (zhuqi-lucas)
- perf: speed up StringViewArray gc 1.4 ~5.x faster #7873 [arrow] (zhuqi-lucas)
- [Variant] Remove superflous validate call and rename methods #7871 [parquet] (friendlymatthew)
- Benchmark: Add rich testing cases for sort string(utf8) #7867 [arrow] (zhuqi-lucas)
- chore: update link for
row_filter.rs#7866 [parquet] (haohuaijin) - [Variant] List and object builders have no effect until finalized #7865 [parquet] (scovich)
- Added number to string benches for json_writer #7864 [arrow] (abacef)
- [Variant] Introduce
parquet-variant-jsoncrate #7862 [parquet] (alamb) - [Variant] Remove dead code, add comments #7861 [parquet] (alamb)
- Speedup sorting for inline views: 1.4x - 1.7x improvement #7856 [arrow] (Dandandan)
- Fix union slice logical_nulls length #7855 [arrow] (codephage2020)
- Add
get_ref/get_mutto JSON Writer #7854 [arrow] (cetra3) - [Minor] Add Benchmark for RowConverter::append #7853 [arrow] (Dandandan)
- Add Enum type support to arrow-avro and Minor Decimal type fix #7852 [arrow] (jecsand838)
- CSV error message has values transposed #7851 [arrow] (Omega359)
- [Variant] Fuzz testing and benchmarks for vaildation #7849 [parquet] (carpecodeum)
- [Variant] Follow up nits and uncomment test cases #7846 [parquet] (friendlymatthew)
- [Variant] Make sure ObjectBuilder and ListBuilder to be finalized before its parent builder #7843 [parquet] (viirya)
- Add decimal32 and decimal64 support to Parquet, JSON and CSV readers and writers #7841 [parquet] [arrow] (CurtHagenlocher)
- Implement arrow-avro Reader and ReaderBuilder #7834 [arrow] (jecsand838)
- [Variant] Support creating sorted dictionaries #7833 [parquet] (friendlymatthew)
- Add Decimal type support to arrow-avro #7832 [arrow] (jecsand838)
- Allow concating struct arrays with no fields #7829 [arrow] (AdamGS)
- Add features to configure flate2 #7827 [parquet] (zeevm)
- make builder public under experimental #7825 [parquet] (XiangpengHao)
- Improvements for parquet writing performance (25%-44%) #7824 [parquet] [arrow] (jhorstmann)
- Use in-memory buffer for arrow_writer benchmark #7823 [parquet] (jhorstmann)
- [Variant] impl [Try]From for VariantDecimalXX types #7809 [parquet] (scovich)
- [Variant] Speedup
ObjectBuilder(62x faster) #7808 [parquet] (friendlymatthew) - [VARIANT] Support both fallible and infallible access to variants #7807 [parquet] (scovich)
- Minor: fix clippy in parquet-variant after logical conflict #7803 [parquet] (alamb)
- [Variant] Add flag in
ObjectBuilderto control validation behavior on duplicate field write #7801 [parquet] (micoo227) - Fix clippy for Rust 1.88 release #7797 [parquet] [arrow] [arrow-flight] (alamb)
- [Variant] Simplify
Builderbuffer operations #7795 [parquet] (friendlymatthew) - fix: Change panic to error in
takekernel for StringArrary/BinaryArray on overflow #7793 [arrow] (chenkovsky) - Update base64 requirement from 0.21 to 0.22 #7791 [parquet] (dependabot[bot])
- Fix RowConverter when FixedSizeList is not the last #7789 [arrow] (findepi)
- Add schema with only primitive arrays to
coalesce_kernelbenchmark #7788 [arrow] (alamb) - Add sort_kernel benchmark for StringViewArray case #7787 [arrow] (zhuqi-lucas)
- [Variant] Check pending before
VariantObject::insert#7786 [parquet] (friendlymatthew) - [VARIANT] impl Display for VariantDecimalXX #7785 [parquet] [arrow] (scovich)
- [VARIANT] Add support for the json_to_variant API #7783 [parquet] (harshmotw-db)
- [Variant] Consolidate examples for json writing #7782 [parquet] (alamb)
- Add benchmark for about view array slice #7781 [arrow] (ctsk)
- [Variant] Add negative tests for reading invalid primitive variant values #7779 [parquet] (superserious-dev)
- [Variant] Support creating nested objects and object with lists #7778 [parquet] (friendlymatthew)
- [VARIANT] Validate precision in VariantDecimalXX structs and add missing tests #7776 [parquet] (scovich)
- Add tests for
BatchCoalescer::push_batch_with_filter, fix bug #7774 [arrow] (alamb) - [Variant] Minor: make fields in
VariantDecimal*private, add examples #7770 [parquet] (alamb) - Extend the fast path in GenericByteViewArray::is_eq for comparing against empty strings #7767 [arrow] (jhorstmann)
- [Variant] Improve getter API for
VariantListandVariantObject#7757 [parquet] (friendlymatthew) - [Variant] Add Variant::as_object and Variant::as_list #7755 [parquet] (alamb)
- [Variant] Fix several overflow panic risks for 32-bit arch #7752 [parquet] (scovich)
- Add testing section to pull request template #7749 (alamb)
- Perf: Add prefix compare for inlined compare and change use of inline_value to inline it to a u128 #7748 [arrow] (zhuqi-lucas)
- Move arrow-pyarrow tests that require
pyarrowto be installed intoarrow-pyarrow-testingcrate #7742 (alamb) - [Variant] Improve write API in
Variant::Object#7741 [parquet] (friendlymatthew) - [Variant] Support nested lists and object lists #7740 [parquet] (friendlymatthew)
- feat: [Variant] Add Validation for Variant Deciaml #7738 [parquet] (Weijun-H)
- Add fallible versions of temporal functions that may panic #7737 [arrow] (adriangb)
- fix: Implement support for appending Object and List variants in VariantBuilder #7735 [parquet] (Weijun-H)
- parquet_derive: update in working example for ParquetRecordWriter #7733 (LanHikari22)
- Perf: Optimize comparison kernels for inlined views #7731 [arrow] (zhuqi-lucas)
- arrow-row: Refactor arrow-row REE roundtrip tests #7729 [arrow] (brancz)
- arrow-array: Implement PartialEq for RunArray #7727 [arrow] (brancz)
- fix: Do not add null buffer for
NullArrayin MutableArrayData #7726 [arrow] (comphead) - Allow per-column parquet dictionary page size limit #7724 [parquet] (XiangpengHao)
- fix JSON decoder error checking for UTF16 / surrogate parsing panic #7721 [arrow] (nicklan)
- [Variant] Use
BTreeMapforVariantBuilder.dictandObjectBuilder.fieldsto maintain invariants upon entry writes #7720 [parquet] (friendlymatthew) - Introduce
MAX_INLINE_VIEW_LENconstant for string/byte views #7719 [arrow] (alamb) - [Variant] Introduce new type over &str for ShortString #7718 [parquet] (friendlymatthew)
- Split out variant code into several new sub-modules #7717 [parquet] (scovich)
- add
garbage_collect_dictionarytoarrow-select#7716 [arrow] (davidhewitt) - Support write to buffer api for SerializedFileWriter #7714 [parquet] (zhuqi-lucas)
- Support
FixedSizeListRowConverter #7705 [arrow] (findepi) - Make variant iterators safely infallible #7704 [parquet] (scovich)
- Speedup
interleave_views(4-7x faster) #7695 [arrow] (Dandandan) - Define a "arrow-pyrarrow" crate to implement the "pyarrow" feature. #7694 [arrow] (brunal)
- feat: add constructor to efficiently upgrade dict key type to remaining builders #7689 [arrow] (albertlockett)
- Document REE row format and add some more tests #7680 [arrow] (alamb)
- feat: add min max aggregate support for FixedSizeBinary #7675 [arrow] (alexwilcoxson-rel)
- arrow-data: Add REE support for
build_extendandbuild_extend_nulls#7671 [arrow] (brancz) - Variant: Write Variant Values as JSON #7670 [parquet] (carpecodeum)
- Remove
lazy_staticdependency #7669 [arrow] (Expyron) - Finish implementing Variant::Object and Variant::List #7666 [parquet] (scovich)
- Add
RecordBatch::schema_metadata_mutandField::metadata_mut#7664 [arrow] (emilk) - [Variant] Simplify creation of Variants from metadata and value #7663 [parquet] (alamb)
- chore: group prost dependabot updates #7659 (mbrobbel)
- Initial Builder API for Creating Variant Values #7653 [parquet] (PinkCrow007)
- Add
BatchCoalescer::push_filtered_batchand docs #7652 [arrow] (alamb) - Optimize coalesce kernel for StringView (10-50% faster) #7650 [arrow] (alamb)
- arrow-row: Add support for REE #7649 [arrow] (brancz)
- Use approximate comparisons for pow tests #7646 [arrow] (adamreeve)
- [Variant] Implement read support for remaining primitive types #7644 [parquet] (superserious-dev)
- Add
pretty_format_batches_with_schemafunction #7642 [arrow] (lewiszlw) - Deprecate old Parquet page index parsing functions #7640 [parquet] (etseidl)
- Update FlightSQL
GetDbSchemasandGetTablesschemas to fully match the protocol #7638 [arrow] [arrow-flight] (sgrebnov) - Minor: Remove outdated FIXME from
ParquetMetaDataReader#7635 [parquet] (etseidl) - Fix the error info of
StructArray::try_new#7634 [arrow] (xudong963) - Fix reading encrypted Parquet pages when using the page index #7633 [parquet] (adamreeve)
- [Variant] Add commented out primitive test casees #7631 [parquet] (alamb)
-
55.2.026 Jun 2025Release notes
Open source →- Add a
strong_countmethod toBuffer#7568 [arrow] - Create version of LexicographicalComparator that compares fixed number of columns #7531 [arrow]
- parquet-show-bloom-filter should work with integer typed columns #7528 [parquet]
- Allow merging primitive dictionary values in concat and interleave kernels #7518 [arrow]
- Add efficient concatenation of StructArrays #7516 [arrow]
- Rename
flight-sql-experimentaltoflight-sql#7498 [arrow] [arrow-flight] - Consider moving from ryu to lexical-core for string formatting / casting floats to string. #7496
- Arithmetic kernels can be safer and faster #7494 [arrow]
- Speedup
filter_bytesby precalculating capacity #7465 [arrow] - [Variant]: Rust API to Create Variant Values #7424 [parquet] [arrow]
- [Variant] Rust API to Read Variant Values #7423 [arrow]
- Release arrow-rs / parquet Minor version
55.1.0(May 2025) #7393 [parquet] - Support create_random_array for Decimal data types #7343 [arrow]
- Truncate Parquet page data page statistics #7555 [parquet] (etseidl)
Fixed bugs:
- In arrow_json, Decoder::decode can panic if it encounters two high surrogates in a row. #7712
- FlightSQL "GetDbSchemas" and "GetTables" schemas do not fully match the protocol #7637 [arrow] [arrow-flight]
- Cannot read encrypted Parquet file if page index reading is enabled #7629 [parquet]
encoding_statsnot present in Parquet generated byparquet-rewrite#7616 [parquet]- When writing parquet plaintext footer files
footer_signing_key_metadatais not included, encryption alghoritm is always written in footer #7599 [parquet] new_null_arraypanics when constructing a struct of a dictionary #7571- Parquet derive fails to build when Result is aliased #7547
- Unable to read
Dictionary(u8, FixedSizeBinary(_))using datafusion. #7545 [parquet] - filter_record_batch panics with empty struct array. #7538 [arrow]
- Panic in
pretty_formatfunction when displaying DurationSecondsArray withi64::MIN/i64::MAX#7533 [arrow] - Record API unable to parse TIME_MILLIS when encoded as INT32 #7510 [parquet]
- The
read_record_batchfunc of theRecordBatchDecoderdoes not respect theskip_validationproperty #7508 [arrow] arrow-55.1.0breaksfilter_record_batch#7500- Files containing binary data with >=8_388_855 bytes per row written with
arrow-rscan't be read withpyarrow#7489 [parquet] - [Bug] Ingestion with Arrow Flight Sql panic when the input stream is empty or fallible #7329 [arrow] [arrow-flight]
- Ensure page encoding statistics are written to Parquet file #7643 [parquet] (etseidl)
Documentation updates:
- arrow_reader_row_filter benchmark doesn't capture page cache improvements #7460 [parquet] [arrow]
- chore: fix a typo in
ExtensionType::supports_data_typedocs #7682 [arrow] (mbrobbel) - [Variant] Add variant docs and examples #7661 [parquet] (alamb)
- Minor: Add version to deprecation notice for
ParquetMetaDataReader::decode_footer#7639 [parquet] (etseidl) - Add references for defaults in
WriterPropertiesBuilder#7558 [parquet] (etseidl) - Clarify Docs: NullBuffer::len is in bits #7556 [arrow] (alamb)
- docs: fix typo for
Decimal128Array#7525 [arrow] (burmecia) - Minor: Add examples to ProjectionMask documentation #7523 [parquet] (alamb)
- Improve documentation for Parquet
WriterProperties#7491 [parquet] (alamb)
Closed issues:
- [Variant] More efficient determination of String vs ShortString #7700
- [Variant] Improve API for iterating over values of a VariantList #7685 [parquet]
- [Variant] Consider validating variants on creation (rather than read) #7684 [parquet]
- Miri test_native_type_pow test failing #7641 [arrow]
- Improve performance of
coalesceandconcatfor views #7615 [arrow] - Bad min value in row group statistics in some special cases #7593
- Feature Request: BloomFilter Position Flexibility in
parquet-rewrite#7552 [parquet]
Merged pull requests:
- arrow-array: Implement PartialEq for RunArray #7727 [arrow] (brancz)
- fix: Do not add null buffer for
NullArrayin MutableArrayData #7726 [arrow] (comphead) - fix JSON decoder error checking for UTF16 / surrogate parsing panic #7721 [arrow] (nicklan)
- [Variant] Introduce new type over &str for ShortString #7718 [parquet] (friendlymatthew)
- Split out variant code into several new sub-modules #7717 [parquet] (scovich)
- Support write to buffer api for SerializedFileWriter #7714 [parquet] (zhuqi-lucas)
- Make variant iterators safely infallible #7704 [parquet] (scovich)
- Speedup
interleave_views(4-7x faster) #7695 [arrow] (Dandandan) - Define a "arrow-pyrarrow" crate to implement the "pyarrow" feature. #7694 [arrow] (brunal)
- Document REE row format and add some more tests #7680 [arrow] (alamb)
- feat: add min max aggregate support for FixedSizeBinary #7675 [arrow] (alexwilcoxson-rel)
- arrow-data: Add REE support for
build_extendandbuild_extend_nulls#7671 [arrow] (brancz) - Remove
lazy_staticdependency #7669 [arrow] (Expyron) - Finish implementing Variant::Object and Variant::List #7666 [parquet] (scovich)
- Add
RecordBatch::schema_metadata_mutandField::metadata_mut#7664 [arrow] (emilk) - [Variant] Simplify creation of Variants from metadata and value #7663 [parquet] (alamb)
- chore: group prost dependabot updates #7659 (mbrobbel)
- Initial Builder API for Creating Variant Values #7653 [parquet] (PinkCrow007)
- Add
BatchCoalescer::push_filtered_batchand docs #7652 [arrow] (alamb) - Optimize coalesce kernel for StringView (10-50% faster) #7650 [arrow] (alamb)
- arrow-row: Add support for REE #7649 [arrow] (brancz)
- Use approximate comparisons for pow tests #7646 [arrow] (adamreeve)
- [Variant] Implement read support for remaining primitive types #7644 [parquet] (superserious-dev)
- Add
pretty_format_batches_with_schemafunction #7642 [arrow] (lewiszlw) - Deprecate old Parquet page index parsing functions #7640 [parquet] (etseidl)
- Update FlightSQL
GetDbSchemasandGetTablesschemas to fully match the protocol #7638 [arrow] [arrow-flight] (sgrebnov) - Minor: Remove outdated FIXME from
ParquetMetaDataReader#7635 [parquet] (etseidl) - Fix the error info of
StructArray::try_new#7634 [arrow] (xudong963) - Fix reading encrypted Parquet pages when using the page index #7633 [parquet] (adamreeve)
- [Variant] Add commented out primitive test casees #7631 [parquet] (alamb)
- Improve
coalescekernel tests #7626 [arrow] (alamb) - Revert "Revert "Improve
coalesceandconcatperformance for views… #7625 [arrow] (Dandandan) - Revert "Improve
coalesceandconcatperformance for views (#7614)" #7623 [arrow] (Dandandan) - Improve coalesce_kernel benchmark to capture inline vs non inline views #7619 [arrow] (alamb)
- Improve
coalesceandconcatperformance for views #7614 [arrow] (Dandandan) - feat: add constructor to help efficiently upgrade key for GenericBytesDictionaryBuilder #7611 [arrow] (albertlockett)
- feat: support append_nulls on additional builders #7606 [arrow] (albertlockett)
- feat: add AsyncArrowWriter::into_inner #7604 [parquet] (jpopesculian)
- Move variant interop test to Rust integration test #7602 [parquet] (alamb)
- Include footer key metadata when writing encrypted Parquet with a plaintext footer #7600 [parquet] (rok)
- Add
coalescekernel andBatchCoalescerfor statefully combining selected b…atches: #7597 [arrow] (alamb) - Add FixedSizeBinary to
take_kernelbenchmark #7592 [arrow] (alamb) - Fix GenericBinaryArray docstring. #7588 [arrow] (brunal)
- fix: error reading multiple batches of
Dict(_, FixedSizeBinary(_))#7585 [parquet] (albertlockett) - Revert "Minor: remove filter code deprecated in 2023 (#7554)" #7583 [arrow] (alamb)
- Fixed a warning build build: function never used. #7577 [parquet] (JigaoLuo)
- Adding Encoding argument in
parquet-rewrite#7576 [parquet] (JigaoLuo) - feat: add
row_group_is_[max/min]_value_exactto StatisticsConverter #7574 [parquet] (CookiePieWw) - [array] Remove unwrap checks from GenericByteArray::value_unchecked #7573 [arrow] (ctsk)
- [benches/row_format] fix typo in array lengths #7572 [arrow] (ctsk)
- Add a strong_count method to Buffer #7569 [arrow] (westonpace)
- Minor: Enable byte view for clickbench benchmark #7565 [parquet] (zhuqi-lucas)
- Optimize length calculation in row encoding for fixed-length columns #7564 [arrow] (ctsk)
- Use PR title and description for commit message #7563 (kou)
- Use apache/arrow-{go,java,js} in integration test #7561 (kou)
- Implement Array Decoding in arrow-avro #7559 [arrow] (jecsand838)
- Minor: remove filter code deprecated in 2023 #7554 [arrow] (alamb)
- fix: Correct docs for
WriterPropertiesBuilder::set_column_index_truncate_length#7553 [parquet] (etseidl) - Adding Bloom Filter Position argument in parquet-rewrite #7550 [parquet] (JigaoLuo)
- Fix
Resultname collision in parquet_derive #7548 (jspaezp) - Fix: Converted feature flight-sql-experimental to flight-sql #7546 [arrow] [arrow-flight] (kunalsinghdadhwal)
- Fix CI on main due to logical conflict #7542 [arrow] (alamb)
- Fix
filter_record_batchpanics with empty struct array #7539 [arrow] (thorfour) - [Variant] Initial API for reading Variant data and metadata #7535 (mkarbo)
- fix: Panic in pretty_format function when displaying DurationSecondsA… #7534 [arrow] (zhuqi-lucas)
- Create version of LexicographicalComparator that compares fixed number of columns (~ -15%) #7530 [arrow] (Dandandan)
- Make parquet-show-bloom-filter work with integer typed columns #7529 [parquet] (adamreeve)
- chore(deps): update criterion requirement from 0.5 to 0.6 #7527 [parquet] [arrow] (mbrobbel)
- Minor: Add a parquet row_filter test, reduce some test boiler plate #7522 [parquet] (alamb)
- Refactor
build_array_readerinto a struct #7521 [parquet] (alamb) - arrow: add concat structs benchmark #7520 [arrow] (asubiotto)
- arrow-select: add support for merging primitive dictionary values #7519 [arrow] (asubiotto)
- arrow-select: add support for optimized concatenation of struct arrays #7517 [arrow] (asubiotto)
- Fix Clippy in CI for Rust 1.87 release #7514 [parquet] [arrow] [arrow-flight] (alamb)
- Simplify
ParquetRecordBatchReader::nextcontrol logic #7512 [parquet] (alamb) - Fix record API support for reading INT32 encoded TIME_MILLIS #7511 [parquet] (njaremko)
- RecordBatchDecoder: skip RecordBatch validation when
skip_validationproperty is enabled #7509 [arrow] (nilskch) - Introduce
ReadPlanto encapsulate the calculation of what parquet rows to decode #7502 [parquet] (alamb) - Update documentation for ParquetReader #7501 [parquet] (alamb)
- Improve
Fielddocs, add missingField::set_*methods #7497 [arrow] (alamb) - Speed up arithmetic kernels, reduce
unsafeusage #7493 [arrow] (Dandandan) - Prevent FlightSQL server panics for
do_putwhen stream is empty or 1st stream element is an Err #7492 [arrow] [arrow-flight] (superserious-dev) - arrow-ipc: add
StreamDecoder::schema#7488 [arrow] (lidavidm) - arrow-select: Implement concat for
RunArrays #7487 [arrow] (brancz) - [Variant] Add (empty)
parquet-variantcrate, updateparquet-testingpin #7485 (alamb) - Improve error messages if schema hint mismatches with parquet schema #7481 [parquet] [arrow] (alamb)
- Add
arrow_reader_clickbenchbenchmark #7470 [parquet] (alamb) - Speedup
filter_bytes~-20-40%,filter_nativelow selectivity (~-37%) #7463 [arrow] (Dandandan)
- Add a
-
55.1.013 May 2025Release notes
Open source →Breaking changes:
- refactor!: do not default the struct array length to 0 in Struct::try_new #7247 [arrow] (westonpace)
Implemented enhancements:
- Add a way to get max
usizefromOffsetSizeTrait#7474 [arrow] - Deterministic metadata encoding #7448 [arrow]
- Support Arrow type Dictionary with value FixedSizeBinary in Parquet #7445
- Parquet: Add ability to project rowid in parquet reader #7444
- Move parquet::file::metadata::reader::FooterTail to parquet::file::metadata so that it is public #7438 [parquet]
- Speedup take_bytes by precalculating capacity #7432 [arrow]
- Improve performance of interleave_primitive and interleave_bytes #7421 [arrow]
- Implement
EqandDefaultforScalarBuffer#7411 [arrow] - Add decryption support for column index and offset index #7390 [parquet]
- Support writing encrypted Parquet files with plaintext footers #7320 [parquet]
- Support Parquet key management tools #7256 [parquet]
- Verify footer tags when reading encrypted Parquet files with plaintext footers #7255 [parquet]
- StructArray::try_new behavior can be unexpected when there are no child arrays #7246 [arrow]
- Parquet performance: improve performance of reading int8/int16 #7097 [parquet]
Fixed bugs:
- StructArray::try_new validation incorrectly returns an error when
logical_nulls()returns Some() && null_count == 0 #7435 - Reading empty DataPageV2 fails with
snappy: corrupt input (empty)#7388 [parquet]
Documentation updates:
- Improve documentation and add examples for ArrowPredicateFn #7480 [parquet] (alamb)
- Document Arrow <--> Parquet schema conversion better #7479 [parquet] (alamb)
- Fix a typo in arrow/examples/README.md #7473 [arrow] (Mottl)
Closed issues:
- Refactor Parquet DecryptionPropertiesBuilder to fix use of unreachable #7476 [parquet]
- Implement
EqandDefaultforOffsetBuffer#7417 [arrow]
Merged pull requests:
- Add Parquet
arrow_readerbenchmarks for {u}int{8,16} columns #7484 [parquet] (alamb) - fix:
rustdoc::unportable_markdownwas removed #7483 [arrow] [arrow-flight] (crepererum) - Support round trip reading / writing Arrow
Durationtype to parquet #7482 [parquet] (Liyixin95) - Add const MAX_OFFSET to OffsetSizeTrait #7478 [arrow] (thinkharderdev)
- Refactor Parquet DecryptionPropertiesBuilder #7477 [parquet] (adamreeve)
- Support parsing and display pretty for StructType #7469 [arrow] (goldmedal)
- chore(deps): update sysinfo requirement from 0.34.0 to 0.35.0 #7462 [parquet] (dependabot[bot])
- Verify footer tags when reading encrypted Parquet files with plaintext footers #7459 [parquet] (rok)
- Improve comments for avro #7449 [arrow] (kumarlokesh)
- feat: Support round trip reading/writing Arrow type
Dictionary(_, FixedSizeBinary(_))to Parquet #7446 [parquet] (albertlockett) - Fix out of bounds crash in RleValueDecoder #7441 [parquet] (apilloud)
- Make
FooterTailpublic #7440 [parquet] (masonh22) - Support writing encrypted Parquet files with plaintext footers #7439 [parquet] (rok)
- feat: deterministic metadata encoding #7437 [arrow] (timsaucer)
- Fix validation logic in
StructArray::try_newto account for array.logical_nulls() returning Some() and null_count == 0 #7436 [arrow] (phillipleblanc) - Minor: Fix typo in async_reader comment #7433 [parquet] (amoeba)
- feat: coerce fixed size binary to binary view #7431 [arrow] (chenkovsky)
- chore(deps): update brotli requirement from 7.0 to 8.0 #7430 [parquet] (dependabot[bot])
- Speedup take_bytes (-35% -69%) by precalculating capacity #7422 [arrow] (Dandandan)
- Improve performance of interleave_primitive (-15% - 45%) / interleave_bytes (-10-25%) #7420 [arrow] (Dandandan)
- Implement
EqandDefaultforOffsetBuffer#7418 [arrow] (kylebarron) - Implement
DefaultforBuffer&ScalarBuffer#7413 [arrow] (emilk) - Implement
EqforScalarBufferwhenT: Eq#7412 [arrow] (emilk) - Skip page should also support skip dict page #7409 [parquet] (zhuqi-lucas)
- Replace
RecordBatch::with_schema_uncheckedwithRecordBatch::new_unchecked#7405 [arrow] (tustvold) - feat: Adding
with_schema_uncheckedmethod forRecordBatch#7402 [arrow] (comphead) - Add benchmark for parquet reader with row_filter and project settings #7401 [parquet] (zhuqi-lucas)
- Parquet: Expose accessors from
ArrowReaderOptions#7400 (kylebarron) - Support decryption of Parquet column and offset indexes #7399 [parquet] (adamreeve)
- Handle compressed empty DataPage v2 #7389 [parquet] (EnricoMi)
- Improve performance of reading int8/int16 Parquet data #7055 [parquet] (etseidl)
-
55.0.011 Apr 2025Release notes
Open source →Breaking changes:
- Change Parquet API interaction to use
u64(support files larger than 4GB in WASM) #7371 [parquet] (kylebarron) - Remove
AsyncFileReader::get_metadata_with_options, addoptionstoAsyncFileReader::get_metadata#7342 [parquet] (corwinjoy) - Parquet: Support reading Parquet metadata via suffix range requests #7334 [parquet] (kylebarron)
- Upgrade to
object_storeto0.12.0#7328 [parquet] (mbrobbel) - Upgrade
pyo3to0.24#7324 [arrow] (mbrobbel) - Reapply Box
FlightErrror::tonicto reduce size (fixes nightly clippy) #7277 [arrow] [arrow-flight] (alamb) - Improve parquet gzip compression performance using zlib-rs #7200 [parquet] (psvri)
- Fix:
date_partto extract only the requested part (not the overall interval) #7189 [arrow] (delamarch3) - chore: upgrade flatbuffer version to
25.2.10#7134 [arrow] (tisonkun) - Add hooks to json encoder to override default encoding or add support for unsupported types #7015 [arrow] (adriangb)
Implemented enhancements:
- Improve the performance of
concat#7357 [arrow] - Pushdown predictions to Parquet in-memory row group fetches #7348 [parquet]
- Improve CSV parsing errors: Print the row that makes csv parsing fails #7344 [arrow]
- Support ColumnMetaData
encoding_statsin Parquet Writing #7341 [parquet] - Support writing Parquet with modular encryption #7327 [parquet]
- Parquet Use U64 Instead of Usize (wasm support for files greater than 4GB) #7238 [parquet]
- Support different TimeUnits and timezones when reading Timestamps from INT96 #7220 [parquet]
Fixed bugs:
- New clippy failures in code base with release of rustc 1.86 #7381 [parquet] [arrow]
- Fix bug in
ParquetMetaDataReaderand add test of suffix metadata reads with encryption #7372 [parquet] (etseidl)
Documentation updates:
- Improve documentation on
ArrayData::offset#7385 [arrow] (alamb) - Improve documentation for
AsyncFileReader::get_metadata#7380 [parquet] (alamb) - Improve documentation on implementing Parquet predicate pushdown #7370 [parquet] (alamb)
- Add documentation and examples for pretty printing, make
pretty_format_columns_with_optionspub #7346 [arrow] (alamb) - Improve documentation on writing parquet, including multiple threads #7321 [parquet] (alamb)
Merged pull requests:
- chore: apply clippy suggestions newly introduced in rust 1.86 #7382 [parquet] [arrow] (westonpace)
- bench: add more {boolean, string, int} benchmarks for concat kernel #7376 [arrow] (rluvaton)
- Add more examples of using Parquet encryption #7374 [parquet] (adamreeve)
- Clean up
ArrowReaderMetadata::load_async#7369 [parquet] (etseidl) - bump pyo3 for RUSTSEC-2025-0020 #7368 [arrow] (onursatici)
- Test int96 Parquet file from Spark #7367 [parquet] (mbutrovich)
- fix: respect offset/length when converting ArrayData to StructArray #7366 [arrow] (westonpace)
- Print row, data present, expected type, and row number in error messages for arrow-csv #7361 [arrow] (psiayn)
- Use rust builtins for round_upto_multiple_of_64 and ceil #7358 [arrow] (psvri)
- Write parquet PageEncodingStats #7354 [parquet] (jhorstmann)
- Move
sysinfotodev-dependencies#7353 [parquet] (mbrobbel) - chore(deps): update sysinfo requirement from 0.33.0 to 0.34.0 #7352 [parquet] (dependabot[bot])
- Add additional benchmarks for utf8view comparison kernels #7351 [arrow] (zhuqi-lucas)
- Upgrade to twox-hash 2.0 #7347 [parquet] (alamb)
- refactor: apply borrowed chunk reader to Sbbf::read_from_column_chunk #7345 [parquet] (ethe)
- Merge changelog and version from 54.3.1 into main #7340 [parquet] [arrow] (timsaucer)
- Remove
object-storelabel from.asf.yaml#7339 (mbrobbel) - Encapsulate encryption code more in readers #7337 [parquet] (alamb)
- Bump MSRV to 1.81 #7336 [parquet] [arrow] [arrow-flight] (mbrobbel)
- Add an option to show column type #7335 [arrow] (blaginin)
- Add missing type annotation #7326 [parquet] (mbrobbel)
- Minor: Improve parallel parquet encoding example #7323 [parquet] (alamb)
- feat: allow if expressions for fallbacks in downcast macro #7322 [arrow] (rluvaton)
- Minor: rename
ParquetRecordBatchStream::readertoParquetRecordBatchStream::reader_factory#7319 [parquet] (alamb) - bugfix: correct offsets when serializing a list of fixed sized list and non-zero start offset #7318 [arrow] (timsaucer)
- Remove object_store references in Readme.md #7317 (alamb)
- Adopt MSRV policy #7314 (psvri)
- fix: correct array length validation error message #7313 [arrow] (wkalt)
- chore: remove trailing space in debug print #7311 [arrow] (xxchan)
- Improve
concatperformance, and addappend_arrayfor some array builder implementations #7309 [arrow] (rluvaton) - feat: add
append_bufferforNullBufferBuilder#7308 [arrow] (rluvaton) - MINOR: fix incorrect method name in deprecate node #7306 [arrow] (waynexia)
- Allow retrieving Parquet decryption keys using the key metadata #7286 [parquet] (adamreeve)
- Support different TimeUnits and timezones when reading Timestamps from INT96 #7285 [parquet] (mbutrovich)
- Add Parquet Modular encryption support (write) #7111 [parquet] (rok)
- Change Parquet API interaction to use
-
54.3.130 Mar 2025Release notes
Open source →Fixed bugs:
- Round trip encoding of list of fixed list fails when offset is not zero #7315
Merged pull requests:
-
54.3.021 Mar 2025Release notes
Open source →Implemented enhancements:
- Using column chunk offset index in
InMemoryRowGroup::fetch#7300 - Support reading parquet with modular encryption #7296 [parquet]
- Add example for how to read/write encrypted parquet files #7281 [parquet]
- Have writer return parsed
ParquetMetadata#7254 [parquet] - feat: Support Utf8View in JSON reader #7244 [arrow]
- StructBuilder should provide a way to get a &dyn ArrayBuilder of a field builder #7193 [arrow]
- Support div_wrapping/rem_wrapping for numeric arithmetic kernels #7158 [arrow]
- Improve RleDecoder performance #7195 [parquet] (Dandandan)
- Improve arrow-json deserialization performance by 30% #7157 [arrow] (mwylde)
- Add
with_skip_validationflag to IPCStreamReader,FileReaderandFileDecoder#7120 [arrow] (alamb)
Fixed bugs:
- Archery integration CI test is failing on main: error: package
half v2.5.0cannot be built because it requires rustc 1.81 or newer, while the currently active rustc version is 1.77.2 #7291 - MSRV CI check is failing on main #7289
- Incorrect IPC schema encoding for multiple dictionaries #7058 [arrow] [arrow-flight]
Documentation updates:
- Add example for how to read encrypted parquet files #7283 [parquet] (rok)
- Update the relative path of the test data in docs #7221 (Ziy1-Tan)
- Minor: fix doc and remove unused code #7194 [arrow] (lewiszlw)
- doc: modify wrong comment #7190 [arrow] (YichiZhang0613)
- doc: fix IPC file reader/writer docs #7178 [arrow] (Jefffrey)
Merged pull requests:
- chore: require ffi feature in arrow-schema benchmark #7298 [arrow] (ethe)
- Fix archery integration test #7292 (alamb)
- Minor: run
test_decimal_listagain #7282 [parquet] (alamb) - Move Parquet encryption tests into the arrow_reader integration tests #7279 [parquet] (adamreeve)
- Include license and notice files in published crates, part 2 #7275 [arrow] (ankane)
- feat: Support Utf8View in JSON reader #7263 [arrow] (zhuqi-lucas)
- feat: use
force_validatefeature flag when creating an arrays #7241 [arrow] (rluvaton) - fix: take on empty struct array returns empty array #7224 [arrow] (westonpace)
- fix: correct
bloom_filter_positiondescription #7223 [parquet] (romanz) - Minor: Move
make_builderinto mod.rs #7218 (lewiszlw) - Expose
field_buildersinStructBuilder#7217 [arrow] (lewiszlw) - Minor: Fix json StructMode docs links #7215 [arrow] (gstvg)
- [main] Bump arrow version to 54.2.1 (#7207) #7212 (alamb)
- feat: add
downcast_integer_arraymacro helper #7211 [arrow] (rluvaton) - Remove zstd pin #7199 [parquet] (tustvold)
- fix: Use chrono's quarter() to avoid conflict #7198 [arrow] (yutannihilation)
- Fix some Clippy 1.85 warnings #7167 [parquet] [arrow] (mbrobbel)
- feat: add to concat different data types error message the data types #7166 [arrow] (rluvaton)
- Add Week ISO, Year ISO computation #7163 [arrow] (kosiew)
- fix: create_random_batch fails with timestamp types having a timezone #7162 [arrow] (niebayes)
- Avoid overflow of remainder #7159 [arrow] (wForget)
- fix: Data type inference for NaN, inf and -inf in csv files #7150 [arrow] (Mottl)
- Preserve null dictionary values in
interleaveandconcatkernels #7144 [arrow] (kawadakk) - Support casting
Dateto a time zone-specific timestamp #7141 [arrow] (friendlymatthew) - Minor: Add doctest to ArrayDataBuilder::build_unchecked #7139 [arrow] (gstvg)
- arrow-ord: add support for nested types to
partition#7131 [arrow] (asubiotto) - Update prost-build requirement from =0.13.4 to =0.13.5 #7127 [arrow] [arrow-flight] (dependabot[bot])
- Avoid use of
flatbuffers::size_prefixed_root, fix validation error in arrow-flight #7109 [arrow] [arrow-flight] (bkietz) - Optimise decimal casting for infallible conversions #7021 [arrow] (aweltsch)
- Using column chunk offset index in
-
54.2.127 Feb 2025Release notes
Open source → -
54.2.016 Feb 2025Release notes
Open source →Implemented enhancements:
- Casting from Utf8View to Dict(k, Utf8View) #7114
- Support creating map arrays with key metadata #7100 [arrow]
- [parquet] Print Parquet BasicTypeInfo id when present #7081 [parquet]
- Add arrow-ipc benchmarks for the IPC reader and writer #6968 [arrow]
Fixed bugs:
- NullBufferBuilder::allocated_size Returns Size in Bits #7121 [arrow]
- [Regression in 54.0.0]. Decimal cast to smaller precision gives invalid (off-by-one) result in some cases #7069 [arrow]
- Minor: Fix deprecated note to point to the correct const #7067 [arrow]
- incorrect error message for reading definition levels #7056 [parquet]
- First None in ListArray panics in
cast_with_options#7043 [arrow]
Documentation updates:
- Minor: Clarify documentation on
NullBufferBuilder::allocated_size#7089 [arrow] (alamb) - Minor: Update release schedule #7086 (alamb)
- Improve
ListArraydocumentation for slices #7039 [arrow] (alamb)
Merged pull requests:
- fix: NullBufferBuilder::allocated_size should return Size in Bytes #7122 [arrow] (shuozel)
- minor: fix deprecated_note #7105 [arrow] (Chen-Yuan-Lai)
- Minor: Fix ArrayDataBuilder::build_unchecked docs #7103 [arrow] (gstvg)
- Support setting key field in MapBuilder #7101 [arrow] (rshkv)
- Add tests that arrow IPC data is validated #7096 [arrow] (alamb)
- Print Parquet BasicTypeInfo id when present #7094 [parquet] (devinrsmith)
- Expose record boundary information in JSON decoder #7092 [arrow] (scovich)
- Benchmarks for Arrow IPC reader #7091 [arrow] (alamb)
- Benchmarks for Arrow IPC writer #7090 [arrow] (alamb)
- Add another decimal cast edge test case #7078 [arrow] (findepi)
- minor: re-export
OffsetBufferBuilderinarrowcrate #7077 [arrow] (alamb) - Support converting large dates (i.e. +10999-12-31) from string to Date32 #7074 [arrow] (phillipleblanc)
- fix: issue introduced in #6833 - less than equal check for scale in decimal conversion #7070 [arrow] (himadripal)
- perf: inline
from_iterforScalarBuffer#7066 [arrow] (0ax1) - fix: first none/empty list in
ListArraypanics incast_with_options#7065 [arrow] (irenjj) - Minor: add ticket reference for todo #7064 [parquet] (alamb)
- Refactor some decimal-related code and tests #7062 [arrow] (CurtHagenlocher)
- fix error message for reading definition levels #7057 [parquet] (jp0317)
- Update release schedule README.md #7053 (alamb)
- Support both 0x01 and 0x02 as type for list of booleans in thrift metadata #7052 [parquet] (jhorstmann)
- Refactor arrow-ipc: Move
create_*_arraymethods intoRecordBatchDecoder#7029 [arrow] (alamb)
-
54.1.002 Feb 2025Release notes
Open source →Implemented enhancements:
- Create GitHub releases automatically on tagging #7041
- Add required methods to access inner builder for
NullBufferBuilder#7002 [arrow] - Re-export
NullBufferBuilderin the arrow crate #6975 [arrow] arrow-stringfunction should support binary input as well #6923 [arrow]- MMap support for IPC files #6709 [arrow]
- fix: mark (Large)ListView as nested and support in equal data type #6995 [arrow] (rluvaton)
- Expose min/max values for Decimal128/256 and improve docs #6992 [arrow] (alamb)
- [Parquet] Improve speed of dictionary encoding NaN float values #6953 [parquet] (adamreeve)
- Optimize
BooleanBufferBuilderfor non nullable columns #6973 [arrow] arrow::compute::concatshould merge dictionary type when concatenating list of dictionaries #6888 [arrow]- Improve error message for unsupported cast between struct and other types #6724 [arrow]
- implement regexp_match, regexp_scalar_match and regexp_array_match for StringViewArray #6717 [arrow]
- Speed up Parquet utf8 validation #6667 [parquet]
Fixed bugs:
- Regression: Concatenating sliced
ListArrays is broken #7034 PrimitiveDictionaryBuilderwith specific value data type and capacity #7011 [arrow]- Arrow IPC Writer Panics for sliced nested arrays #6997 [arrow]
- RecordBatch with no columns cannot be roundtripped through Parquet #6988 [parquet]
- StringView: Using the Interleave kernel (and potentially others) results in many repeated buffers in variadic_buffers #6780 [arrow]
- fix prefetch of page index #6999 [parquet] (adriangb)
- fix: Parquet column writer
Dictionary(_, Decimal128)andDictionary(_, Decimal256)#6987 [parquet] (korowa) - Writing floating point values containing NaN to Parquet is slow when using dictionary encoding #6952 [parquet] [arrow]
- Public API using private types:
Buffer::from_bytestakes unexportedBytes#6754 [parquet] [arrow] [arrow-flight] - Some MSRVs are inaccurate #6741 [parquet] [arrow] [arrow-flight]
Documentation updates:
- docs: add to bit slice iterator docs that the start value is inclusive and end value is exclusive #7022 [arrow] (rluvaton)
- Fix duplicate link references in README #7020 (Jefffrey)
- Enhance ListViewArray related docs #7007 [arrow] (Jefffrey)
- Document data type support and examples to predicates
*like,starts_with,ends_with,contains#7003 [arrow] (alamb) - Minor: improve documentation on timezone representations #7000 [arrow] (alamb)
- Add additional documentation for UTC representation of timestamps #6994 [arrow] (Abdullahsab3)
- Improve
ParquetRecordBatchStreamBuilderdocs / examples #6948 [parquet] (alamb) - Document the
ParquetRecordBatchStreambuffering #6947 [parquet] (alamb) - Minor: improve
zipkernel docs, add examples #6928 [arrow] (alamb) - Add doctest example for
Buffer::from_bytes#6920 [arrow] (kylebarron) - [object store] Add planned object_store release schedule to crate readme #6904 (alamb)
- Avoid panics? #6737 [parquet]
Merged pull requests:
- Create GitHub releases automatically on tagging #7042 (kou)
- Fix
concatfor slicedListArrays#7037 [arrow] (alamb) - Minor: Clarify NullBufferBuilder::new capacity parameter #7016 [arrow] (alamb)
- Add
is_validandtruncatemethods toNullBufferBuilder#7013 [arrow] (Chen-Yuan-Lai) - fix: use the values builder capacity for the hash map in
PrimitiveDictionaryBuilder::new_from_builders#7012 [arrow] (rluvaton) - Refactor ipc reading code into methods on
ArrayReader#7006 [arrow] (alamb) - Minor: make it clear Predicate is crate private #7001 [arrow] (alamb)
- fix: Panic on reencoding offsets in arrow-ipc with sliced nested arrays #6998 [arrow] (HawaiianSpork)
- Add check for empty schema in
parquet::schema::types::from_thrift_helper#6990 [parquet] (etseidl) - Add example reading data from an
mmaped IPC file #6986 [arrow] (alamb) - Improve
arrow-ipcdocumentation #6983 [arrow] (alamb) - Add
simdutf8feature to makesimdutf8optional, consolidatecheck_valid_utf8#6979 [parquet] (alamb) - Export NullBufferBuilder along with BooleanBufferBuilder in
arrowcrate #6976 [arrow] (alamb) - Minor: improve the documentation of NullBuffer and BooleanBuffer #6974 [arrow] (alamb)
- Simplify Validation/Alignment APIs of
ArrayDataBuilder: validate and align #6966 [arrow] (alamb) - Fix WASM CI for Rust 1.84 release #6963 (alamb)
- [Parquet] Add benchmark and test for writing NaNs to Parquet #6955 [parquet] [arrow] (adamreeve)
- Add
peek_next_page_offsettoSerializedPageReader#6945 [parquet] (XiangpengHao) - Improve
Bufferdocumentation, deprecateBuffer::from_bytesaddFrom<Bytes>andFrom<bytes::Bytes>impls #6939 [parquet] [arrow] [arrow-flight] (alamb) - minor: fix test and remove println in tests #6935 [arrow] (himadripal)
- Document how to use Extend for generic methods on ArrayBuilders #6932 [arrow] (wiedld)
- [Parquet] Add projection utility functions #6931 [parquet] (XiangpengHao)
- [Parquet] Reuse buffer in
ByteViewArrayDecoderPlain#6930 [parquet] (XiangpengHao) - Support
Binaryarrays instarts_with,ends_withandcontains#6926 [arrow] (rluvaton) - Improve the error message for casting between struct and non-struct types #6919 [arrow] (takaebato)
- Fix error message typos with Parquet compression #6918 [parquet] (orf)
- Expose arrow-schema methods, for use when writing parquet outside of ArrowWriter #6916 [parquet] (wiedld)
- feat(arrow-ord): support boolean in
rankand add tests for sorting lists of booleans #6912 [arrow] (rluvaton) - chore(arrow-ord): move
can_rankto therankfile #6910 [arrow] (rluvaton) - feat(parquet): Add next_row_group API for ParquetRecordBatchStream #6907 [parquet] (Xuanwo)
- feat(arrow-select):
concatkernel will merge dictionary values for list of dictionaries #6893 [arrow] (rluvaton) - add
extend_dictionaryin dictionary builder for improved performance #6875 [arrow] (rluvaton) - [arrow-string] Implement string view support for
regexp_match#6849 [arrow] (tlm365) - Add support
StringView/BinaryViewininterleavekernel #6779 [arrow] (onursatici) RecordBatchnormalization (flattening) #6758 [arrow] (ngli-me)
-
54.0.023 Dec 2024Release notes
Open source →Breaking changes:
- avoid redundant parsing of repeated value in RleDecoder #6834 [parquet] (jp0317)
- Handling nullable DictionaryArray in CSV parser #6830 [arrow] (edmondop)
- fix(flightsql): remove Any encoding of DoPutUpdateResult #6825 [arrow] [arrow-flight] (davisp)
- arrow-ipc: Default to not preserving dict IDs #6788 [arrow] (brancz)
- Remove some very old deprecated functions #6774 [parquet] [arrow] (alamb)
- update to pyo3 0.23.0 #6745 [arrow] (psvri)
- Remove APIs deprecated since v 4.4.0 #6722 [arrow] [arrow-flight] (findepi)
- Return
Nonewhen Parquet page indexes are not present in file #6639 [parquet] (etseidl) - Add
ParquetError::NeedMoreDatamarkParquetErrorasnon_exhaustive#6630 [parquet] (etseidl) - Remove APIs deprecated since v 2.0.0 #6609 [arrow] (findepi)
Implemented enhancements:
- Parquet schema hint doesn't support integer types upcasting #6891 [parquet]
- Parquet UTF-8 max statistics are overly pessimistic #6867 [parquet]
- Add builder support for Int8 keys #6844 [arrow]
- Formalize the name of the nested
Fieldin a list #6784 [parquet] [arrow] [arrow-flight] - Allow disabling the writing of Parquet Offset Index #6778 [parquet]
parquet::record::make_rowis not exposed to users, leaving no option to users to manually createRowobjects #6761 [parquet]- Avoid
from_num_days_from_ce_optcalls intimestamp_s_to_datetimeif we don't need #6746 [arrow] - Support Temporal -> Utf8View casting #6734 [arrow]
- Add Option To Coerce List Type on Parquet Write #6733 [parquet] [arrow]
- Support Numeric -> Utf8View casting #6714 [arrow]
- Support Utf8View <=> boolean casting #6713 [arrow]
Fixed bugs:
Buffer::bit_sliceloses length with byte-aligned offsets #6895 [arrow]- parquet arrow writer doesn't track memory size correctly for fixed sized lists #6839 [parquet]
- Casting Decimal128 to Decimal128 with smaller precision produces incorrect results in some cases #6833 [arrow]
- Should empty nullable dictionary be parsed as null from arrow-csv? #6821 [arrow]
- Array take doesn't make fields nullable #6809
- Arrow Flight Encodes a Slice's List Offsets If the slice offset is starts with zero #6803 [arrow]
- Parquet readers incorrectly interpret legacy nested lists #6756 [parquet]
- filter_bits under-allocates resulting boolean buffer #6750 [arrow]
- Multi-language support issues with Arrow FlightSQL client's execute_update and execute_ingest methods #6545 [arrow] [arrow-flight]
Documentation updates:
- Should we document at what rate deprecated APIs are removed? #6851 [parquet] [arrow]
- Fix docstring for
Format::with_headerinarrow-csv#6856 [arrow] (kylebarron) - Add deprecation / API removal policy #6852 [parquet] [arrow] (alamb)
- Minor: add example for creating
SchemaDescriptor#6841 [parquet] (alamb) - chore: enrich panic context when BooleanBuffer fails to create #6810 [arrow] (tisonkun)
Closed issues:
- [FlightSQL] GetCatalogsBuilder does not sort the catalog names #6807 [arrow] [arrow-flight]
- Add a lint to automatically check for unused dependencies #6796 [arrow] [arrow-flight]
Merged pull requests:
- doc: add comment for timezone string #6899 [arrow] (xxchan)
- docs: fix typo #6890 [arrow] (rluvaton)
- Minor: Fix deprecation notice for
arrow_to_parquet_schema#6889 [parquet] (etseidl) - Add Field::with_dict_is_ordered #6885 [arrow] (alamb)
- Deprecate "max statistics size" property in
WriterProperties#6884 [parquet] (etseidl) - Add deprecation warnings for everything related to
dict_id#6873 [parquet] [arrow] [arrow-flight] (brancz) - Enable matching temporal as from_type to Utf8View #6872 [arrow] (Kev1n8)
- Enable string-based column projections from Parquet files #6871 [parquet] (etseidl)
- Improvements to UTF-8 statistics truncation #6870 [parquet] (etseidl)
- fix: make GetCatalogsBuilder sort catalog names #6864 [arrow] [arrow-flight] (niebayes)
- add buffered data_pages to parquet column writer total bytes estimation #6862 [parquet] (onursatici)
- Update prost-build requirement from =0.13.3 to =0.13.4 #6860 [arrow] [arrow-flight] (dependabot[bot])
- Minor: add comments explaining bad MSRV, output in json #6857 (alamb)
- perf: Use Cow in get_format_string in FFI_ArrowSchema #6853 [arrow] (andygrove)
- chore: add cast_decimal benchmark #6850 [arrow] (andygrove)
- arrow-array::builder: support Int8, Int16 and Int64 keys #6845 [arrow] (ajwerner)
- Add
ArrowToParquetSchemaConverter, deprecatearrow_to_parquet_schema#6840 [parquet] (alamb) - Remove APIs deprecated in 50.0.0 #6838 [arrow] (findepi)
- fix: decimal conversion looses value on lower precision #6836 [arrow] (himadripal)
- Update sysinfo requirement from 0.32.0 to 0.33.0 #6835 [parquet] (dependabot[bot])
- Optionally coerce names of maps and lists to match Parquet specification #6828 [parquet] (etseidl)
- Remove deprecated unary_dyn and try_unary_dyn #6824 [arrow] (findepi)
- Remove deprecated flight_data_from_arrow_batch #6823 [arrow] [arrow-flight] (findepi)
- [arrow-cast] Support cast boolean from/to string view #6822 [arrow] (tlm365)
- Hook up Avro Decoder #6820 [arrow] (tustvold)
- Fix arrow-avro compilation without default features #6819 [arrow] (findepi)
- Support shrink to empty #6817 [arrow] (tustvold)
- [arrow-cast] Support cast numeric to string view (alternate) #6816 [arrow] (alamb)
- Hide implicit optional dependency features in arrow-flight #6806 [arrow] [arrow-flight] (findepi)
- fix: Encoding of List offsets was incorrect when slice offsets begin with zero #6805 [arrow] (HawaiianSpork)
- Enable unused_crate_dependencies Rust lint, remove unused dependencies #6804 [arrow] [arrow-flight] (findepi)
- Minor: Fix docstrings for
ColumnProperties::statistics_enabledproperty #6798 [parquet] (etseidl) - Add option to disable writing of Parquet offset index #6797 [parquet] (etseidl)
- Remove unused dependencies #6792 [arrow] [arrow-flight] (findepi)
- Add
Array::shrink_to_fit(&mut self)#6790 [arrow] (emilk) - Formalize the default nested list field name to
item#6785 [parquet] [arrow] [arrow-flight] (gruuya) - Improve UnionArray logical_nulls tests #6781 [arrow] (gstvg)
- Improve list builder usage example in docs #6775 [arrow] (findepi)
- Update proc-macro2 requirement from =1.0.89 to =1.0.92 #6772 [arrow] [arrow-flight] (dependabot[bot])
- Allow NullBuffer construction directly from array #6769 [parquet] [arrow] (findepi)
- Include license and notice files in published crates #6767 [parquet] [arrow] [arrow-flight] (ankane)
- fix: remove redundant
bit_util::ceil#6766 [arrow] (miroim) - Remove 'make_row', expose a 'Row::new' method instead. #6763 [parquet] (jonded94)
- Read nested Parquet 2-level lists correctly #6757 [parquet] (etseidl)
- Split
timestamp_s_to_datetimetodateandtimeto avoid unnecessary computation #6755 [arrow] (jayzhan211) - More trivial implementation of
Box<dyn AsyncArrowWriter>andBox<dyn AsyncArrowReader>#6748 [parquet] (ethe) - Update cache action to v4 #6744 (findepi)
- Remove redundant implementation of
StringArrayType#6743 [arrow] (tlm365) - Fix Dictionary logical nulls for RunArray/UnionArray Values #6740 [arrow] (findepi)
- Allow reading Parquet maps that lack a
valuesfield #6730 [parquet] (etseidl) - Improve default implementation of Array::is_nullable #6721 [arrow] (findepi)
- Fix Buffer::bit_slice losing length with byte-aligned offsets #6707 [arrow] [arrow-flight] (itsjunetime)
-
53.4.107 Mar 2025Release notes
Open source → -
53.4.018 Jan 2025Nothing published for this version
-
53.3.020 Nov 2024Release notes
Open source →- Signed decimal e-notation parsing bug #6728 [arrow]
- Add support for Utf8View -> numeric in can_cast_types #6715
- IPC file writer produces incorrect footer when not preserving dict ID #6710 [arrow]
- parquet from_thrift_helper incorrectly checks index #6693 [parquet]
- Primitive REPEATED fields not contained in LIST annotated groups aren't read as lists by record reader #6648 [parquet]
- DictionaryHandling does not recurse into Map fields #6644 [arrow] [arrow-flight]
- Array writer output empty when no record is written #6613 [arrow]
- Archery Integration Test with c# failing on main #6577 [arrow]
- Potential unsoundness in
filter_run_end_array#6569 [arrow] - Parquet reader can generate incorrect validity buffer information for nested structures #6510 [parquet]
- arrow-array ffi: FFI_ArrowArray.null_count is always interpreted as unsigned and initialized during conversion from C to Rust. #6497 [arrow]
Documentation updates:
- Minor: Document pattern for accessing views in StringView #6673 [arrow] (alamb)
- Improve Array::is_nullable documentation #6615 [arrow] (findepi)
- Minor: improve docs for ByteViewArray->ByteArray From impl #6610 [arrow] (alamb)
Performance improvements:
Closed issues:
- Incorrect like results for pattern starting/ending with
%percent and containing escape characters #6702 [arrow]
Merged pull requests:
- Fix signed decimal e-notation parsing #6729 [arrow] (gruuya)
- Clean up some arrow-flight tests and duplicated code #6725 [arrow] [arrow-flight] (itsjunetime)
- Update PR template section about API breaking changes #6723 (findepi)
- Support for casting
StringViewArraytoDecimalArray#6720 [arrow] (tlm365) - File writer preserve dict bug #6711 [arrow] (brancz)
- Add filter_kernel benchmark for run array #6706 [arrow] (delamarch3)
- Fix string view ILIKE checks with NULL values #6705 [arrow] (findepi)
- Implement logical_null_count for more array types #6704 [arrow] (findepi)
- Fix LIKE with escapes #6703 [arrow] (findepi)
- Speed up
filter_bytes#6699 [arrow] (Dandandan) - Minor: fix misleading comment in byte view #6695 [arrow] (jayzhan211)
- minor fix on checking index #6694 [parquet] (jp0317)
- Undo run end filter performance regression #6691 [arrow] (delamarch3)
- Reimplement
PartialEqofGenericByteViewArraycompares by logical value #6689 [arrow] (tlm365) - feat: expose known_schema from FlightDataEncoder #6688 [arrow] [arrow-flight] (nathanielc)
- Update hashbrown requirement from 0.14.2 to 0.15.1 #6684 [parquet] [arrow] (dependabot[bot])
- Support Duration in JSON Reader #6683 [arrow] (simonvandel)
- Check predicate and values are the same length for run end array filter safety #6675 [arrow] (delamarch3)
- [ffi] Fix arrow-array null_count error during conversion from C to Rust #6674 [arrow] (adbmal)
- Support
Utf8Viewforbit_lengthkernel #6671 [arrow] (austin362667) - Fix string view LIKE checks with NULL values #6662 [arrow] (findepi)
- Improve documentation for
nullifkernel #6658 [arrow] (alamb) - Improve test_auth error message when contains() fails #6657 [arrow] [arrow-flight] (findepi)
- Let std::fmt::Debug for StructArray output Null/Validity info #6655 [arrow] (XinyuZeng)
- Include offending line number when processing CSV file fails #6653 [arrow] (findepi)
- feat: add write_bytes for GenericBinaryBuilder #6652 [arrow] (tisonkun)
- feat: Support Utf8View in JSON serialization #6651 [arrow] (jonmmease)
- fix: include chrono-tz in flight sql cli #6650 [arrow] [arrow-flight] (crepererum)
- Handle primitive REPEATED field not contained in LIST annotated group #6649 [parquet] (zeevm)
- Implement
append_nforBooleanBuilder#6646 [arrow] (delamarch3) - fix: recurse into Map datatype when hydrating dictionaries #6645 [arrow] [arrow-flight] (nathanielc)
- fix: enable TLS roots for flight CLI client #6640 [arrow] [arrow-flight] (crepererum)
- doc: Clarify take kernel semantics #6632 [arrow] (viirya)
- Return error rather than panic when too many row groups are written #6629 [parquet] (etseidl)
- Fix test feature selection so all feature combinations work as expected #6626 [parquet] (itsjunetime)
- Add Parquet RowSelection benchmark #6623 [parquet] (XiangpengHao)
- Optimize
take_bitsto optimizetake_boolean/take_primitive/take_byte_view: up to -25% #6622 [arrow] (Dandandan) - Make downcast macros hygenic (#6400) #6620 [arrow] (tustvold)
- Update proc-macro2 requirement from =1.0.88 to =1.0.89 #6618 [arrow] [arrow-flight] (dependabot[bot])
- Fix arrow-json writer empty #6614 [arrow] (gwik)
- Add
ParquetObjectReader::with_runtime#6612 [parquet] [arrow] (itsjunetime) - Re-enable
C#arrow flight integration test #6611 [arrow] (alamb)
-
53.2.024 Oct 2024Release notes
Open source →Implemented enhancements:
- Implement arrow_json encoder for Decimal128 & Decimal256 DataTypes #6605 [arrow]
- Support DataType::FixedSizeList in make_builder within struct_builder.rs #6594 [arrow]
- Support DataType::Dictionary in
make_builderwithin struct_builder.rs #6589 [arrow] - Interval parsing from string - accept "mon" and "mons" token #6548 [arrow]
AsyncArrowWriterAPI to get the total size of a written parquet file #6530 [parquet]append_manyfor Dictionary builders #6529 [arrow]- Missing tonic
GRPC_STATUSwith tonic 0.12.1 #6515 [arrow] [arrow-flight] - Add example of how to use parquet metadata reader APIs for a local cache #6504 [parquet]
- Remove reliance on
raw-entryfeature of Hashbrown #6498 [parquet] [arrow] [arrow-flight] - Improve page index metadata loading in
SerializedFileReader::new_with_options#6491 [parquet] - Release arrow-rs / parquet minor version
53.1.0(October 2024) #6340 [arrow]
Fixed bugs:
- Compilation fail where
c_char = u8#6571 [arrow] - Arrow flight CI test failing on
master#6568 [arrow] [arrow-flight]
Documentation updates:
Closed issues:
Merged pull requests:
- Minor: more comments for
RecordBatch.get_array_memory_size()#6607 [arrow] (2010YOUY01) - Implement arrow_json encoder for Decimal128 & Decimal256 #6606 [arrow] (phillipleblanc)
- Add support for building FixedSizeListBuilder in struct_builder's mak… #6595 [arrow] (kszlim)
- Add limited support for dictionary builders in
make_buildersfor stru… #6593 [arrow] (kszlim) - Fix CI with new valid certificates and add script for future usage #6585 [arrow] [arrow-flight] (itsjunetime)
- Update proc-macro2 requirement from =1.0.87 to =1.0.88 #6579 [arrow] [arrow-flight] (dependabot[bot])
- Fix clippy complaints #6573 [parquet] [arrow] [arrow-flight] (itsjunetime)
- Use c_char instead of i8 to compile on platforms where c_char = u8 #6572 [arrow] (itsjunetime)
- Bump pyspark from 3.3.1 to 3.3.2 in /parquet/pytest #6564 [parquet] (dependabot[bot])
unsafeimprovements #6551 [arrow] (ssbr)- Update README.md #6550 [arrow] [arrow-flight] (Abdullahsab3)
- Fix string '0' cast to decimal with scale 0 #6547 [arrow] (findepi)
- Add finish to
AsyncArrowWriter::finish#6543 [parquet] (etseidl) - Add append_nulls to dictionary builders #6542 [arrow] (adriangb)
- Improve UnionArray::is_nullable #6540 [arrow] (tustvold)
- Allow to read parquet binary column as UTF8 type #6539 [parquet] (goldmedal)
- Use HashTable instead of raw_entry_mut #6537 [parquet] [arrow] (tustvold)
- Add append_many to dictionary arrays to allow adding repeated values #6534 [arrow] (adriangb)
- Adds documentation and example recommending Vec<ArrayRef> over ChunkedArray #6527 [arrow] (efredine)
- Update proc-macro2 requirement from =1.0.86 to =1.0.87 #6526 [arrow] [arrow-flight] (dependabot[bot])
- Add
ColumnChunkMetadataBuilderclear APIs #6523 [parquet] (alamb) - Update sysinfo requirement from 0.31.2 to 0.32.0 #6521 [parquet] (dependabot[bot])
- Update Tonic to 0.12.3 #6517 [arrow] [arrow-flight] (cisaacson)
- Detect missing page indexes while reading Parquet metadata #6507 [parquet] (etseidl)
- Use ParquetMetaDataReader to load page indexes in
SerializedFileReader::new_with_options#6506 [parquet] (etseidl) - Improve parquet
MetadataFetchandAsyncFileReaderdocs #6505 [parquet] (alamb) - fix arrow-json encoding with dictionary including nulls #6503 [arrow] (samuelcolvin)
- Update brotli requirement from 6.0 to 7.0 #6499 [parquet] (dependabot[bot])
- Benchmark both scenarios, with records skipped and without skipping, for delta-bin-packed primitive arrays with half nulls. #6489 [parquet] (wiedld)
- Add round trip tests for reading/writing parquet metadata #6463 [parquet] (alamb)
-
53.1.006 Oct 2024Release notes
Open source →Implemented enhancements:
- Write null counts in Parquet statistics when they are known to be zero #6502 [parquet]
- Make it easier to find / work with
ByteView#6478 [arrow] - Update lexical-core version due to soundness issues with current version #6468
- Add builder style API for manipulating
ParquetMetaData#6465 [parquet] ArrayData.align_buffersshould supportStructdata type / child data #6461 [arrow]- Add a method to return the number of skipped rows in a
RowSelection#6428 [parquet] - Bump lexical-core to 1.0 #6397 [arrow]
- Add union_extract kernel #6386 [arrow]
- implement
regexp_is_match_utf8andregexp_is_match_utf8_scalarforStringViewArray#6370 [arrow] - Add support for BinaryView in arrow_string::length #6358 [arrow]
- Add
as_uniontoAsArray#6351 - Ability to append non contiguous strings to
StringBuilder#6347 [arrow] - Add Catalog DB Schema subcommands to
flight_sql_client#6331 [arrow] [arrow-flight] - Add support for Utf8View in arrow_string::length #6305 [arrow]
- Reading FIXED_LEN_BYTE_ARRAY columns with nulls is inefficient #6296 [parquet]
- Optionally verify 32-bit CRC checksum when decoding parquet pages #6289 [parquet]
- Speed up
pad_nullsforFixedLenByteArrayBuffer#6297 [parquet] (etseidl) - Improve performance of set_bits by avoiding to set individual bits #6288 [arrow] (kazuyukitanimura)
Fixed bugs:
- BitIterator panics when retrieving length #6480 [arrow]
- Flight data retrieved via Python client (wrapping C++) cannot be used by Rust Arrow #6471 [arrow]
- CI integration test failing: Archery test With other arrows #6448 [parquet] [arrow] [arrow-flight]
- IPC not respecting not preserving dict ID #6443 [parquet] [arrow] [arrow-flight]
- Failing CI: Prost requires Rust 1.71.1 #6436 [arrow] [arrow-flight]
- Invalid struct arrays in IPC data causes panic during read #6416 [arrow]
- REE Dicts cannot be encoded/decoded with streaming IPC #6398 [arrow]
- Reading json
mapwith non-nullable value schema doesn't error if values are actually null #6391 - StringViewBuilder with deduplication does not clear observed values #6384 [arrow]
- Cast from Decimal(p, s) to dictionary-encoded Decimal(p, s) loses precision and scale #6381 [arrow]
- LocalFileSystem
listoperation returns objects in wrong order #6375 compute::binary_mutreturnsErr(PrimitiveArray<T>)only with certain arrays #6374 [arrow]- Exporting Binary/Utf8View from arrow-rs to pyarrow fails #6366 [arrow]
- warning: methods
as_anyandnext_batchare never used inparquetcrate #6143 [parquet]
Documentation updates:
- chore: add docs, part of #37 #6496 [parquet] [arrow] [arrow-flight] (ByteBaker)
- Minor: improve
ChunkedReaderdocs #6477 [parquet] (alamb) - Minor: Add some missing documentation to fix CI errors #6445 [arrow] (etseidl)
- Fix doc "bit width" to "byte width" #6434 [arrow] (kylebarron)
- chore: add docs, part of #37 #6433 [arrow] (ByteBaker)
- chore: add docs, part of #37 #6424 [arrow] (ByteBaker)
- Rephrase doc comment #6421 [parquet] [arrow] [arrow-flight] (waynexia)
- Remove "NOT YET FULLY SUPPORTED" comment from DataType::Utf8View/BinaryView #6380 [arrow] (alamb)
- Improve
GenericStringBuilderdocumentation #6372 [arrow] (alamb)
Closed issues:
- Columnar json writer for arrow-json #6411
- Primitive
binary/unaryare not as fast as they could be #6364 [arrow] - Different numeric type may be able to compare #6357
Merged pull requests:
- fix: override
size_hintforBitIteratorto return the exact remaining size #6495 [arrow] (Beihao-Zhou) - Minor: Fix path in format command in CONTRIBUTING.md #6494 (etseidl)
- Write null counts in Parquet statistics when they are known #6490 [parquet] (etseidl)
- Add configuration option to
StatisticsConverterto control interpretation of missing null counts in Parquet statistics #6485 [parquet] (etseidl) - fix: check overflow numbers while inferring type for csv files #6481 [arrow] (CookiePieWw)
- Add better documentation, examples and builer-style API to
ByteView#6479 [arrow] (alamb) - Add take_arrays util for getting entries from 2d arrays #6475 [arrow] (akurmustafa)
- Deprecate
MetadataLoader#6474 [parquet] (etseidl) - Update tonic-build requirement from =0.12.2 to =0.12.3 #6473 [arrow] [arrow-flight] (dependabot[bot])
- Align buffers from Python (FFI) #6472 [arrow] (EnricoMi)
- Add
ParquetMetaDataBuilder#6466 [parquet] (alamb) - Make
ArrayData.align_buffersalign child data buffers recursively #6462 [arrow] (EnricoMi) - Minor: Silence compiler warnings for
parquet::file::metadata::reader#6457 [parquet] (etseidl) - Minor: Error rather than panic for unsupported for dictionary
casting #6456 [arrow] (goldmedal) - Support cast between Durations + between Durations all numeric types #6452 [arrow] (tisonkun)
- Deprecate methods from footer.rs in favor of
ParquetMetaDataReader#6451 [parquet] (etseidl) - Workaround for missing Parquet page indexes in
ParquetMetadaReader#6450 [parquet] (etseidl) - Fix CI by disabling newly failing rust <> nanoarrow integration test in CI #6449 (alamb)
- Add
IpcSchemaEncoder, deprecate ipc schema functions, Fix IPC not respecting not preserving dict ID #6444 [parquet] [arrow] [arrow-flight] (brancz) - Add additional documentation and builder APIs to
SortOptions#6441 [arrow] (alamb) - Update prost-build requirement from =0.13.2 to =0.13.3 #6440 [arrow] [arrow-flight] (dependabot[bot])
- Bump arrow-flight MSRV to 1.71.1 #6437 [arrow] [arrow-flight] (gstvg)
- Silence warnings that
as_anyandnext_batchare never used #6432 [parquet] (etseidl) - Add
ParquetMetaDataReader#6431 [parquet] (etseidl) - Add RowSelection::skipped_row_count #6429 [parquet] (progval)
- perf: Faster decimal precision overflow checks #6419 [arrow] (andygrove)
- fix: don't panic in IPC reader if struct child arrays have different lengths #6417 [arrow] (alexwilcoxson-rel)
- Reduce integration test matrix #6407 (kou)
- Move lifetime of
take_iterfrom iterator to its items #6403 [arrow] (dariocurr) - Update lexical-core requirement from 0.8 to 1.0 (to resolve RUSTSEC-2023-0086) #6402 [arrow] (dariocurr)
- Fix encoding/decoding REE Dicts when using streaming IPC #6399 [arrow] (brancz)
- fix: binary_mut should work if only one input array has null buffer #6396 [arrow] (viirya)
- Add
set_bitsfuzz test #6394 [arrow] (alamb) - impl
From<ScalarBuffer<T>>forBuffer#6389 [arrow] (mbrobbel) - Add
union_extractkernel #6387 [arrow] (gstvg) - Clear string-tracking hash table when ByteView deduplication is enabled #6385 [arrow] (shanesveller)
- fix: Stop losing precision and scale when casting decimal to dictionary #6383 [arrow] (andygrove)
- Add
ARROW_VERSIONconst #6379 [arrow] (samuelcolvin) - parquet writer: Raise an error when the row_group_index overflows i16 #6378 [parquet] (progval)
- Implement native support StringViewArray for
regexp_is_matchandregexp_is_match_scalarfunction, deprecateregexp_is_match_utf8andregexp_is_match_utf8_scalar#6376 [arrow] (tlm365) - Update chrono-tz requirement from 0.9 to 0.10 #6371 [arrow] (dependabot[bot])
- Support StringViewArray interop with python: fix lingering C Data Interface issues for *ViewArray #6368 [arrow] (a10y)
- stop panic in
MetadataLoaderon invalid data #6367 [parquet] (samuelcolvin) - Add support for BinaryView in arrow_string::length #6359 [arrow] (Omega359)
- impl
From<Vec<T>>forBuffer#6355 [arrow] (mbrobbel) - Add breaking change from #6043 to
CHANGELOG#6354 (mbrobbel) - Benchmark for bit_mask (set_bits) #6353 [arrow] (kazuyukitanimura)
- Update prost-build requirement from =0.13.1 to =0.13.2 #6350 [arrow] [arrow-flight] (dependabot[bot])
- fix: clippy warnings from nightly rust 1.82 #6348 [parquet] [arrow] (waynexia)
- Add support for Utf8View in arrow_string::length #6345 [arrow] (Omega359)
- feat: add catalog/schema subcommands to flight_sql_client. #6332 [arrow] [arrow-flight] (nathanielc)
- Manually run fmt on all files under parquet #6328 [parquet] (etseidl)
- Implement UnionArray logical_nulls #6303 [arrow] (gstvg)
- Parquet: Verify 32-bit CRC checksum when decoding pages #6290 [parquet] (xmakro)
-
53.0.003 Sep 2024Release notes
Open source →Breaking changes:
- parquet_derive: Match fields by name, support reading selected fields rather than all #6269 (double-free)
- Update parquet object_store dependency to 0.11.0 #6264 [parquet] (alamb)
- parquet Statistics - deprecate
has_*APIs and add_optfunctions that returnOption<T>#6216 [parquet] (Michael-J-Ward) - Expose bulk ingest in flight sql client and server #6201 [arrow] [arrow-flight] (djanderson)
- Upgrade protobuf definitions to flightsql 17.0 (#6133) #6169 [arrow-flight] (alamb)
- Remove automatic buffering in
ipc::reader::FileReaderfor for consistent buffering #6132 [arrow] (V0ldek) - No longer write Parquet column metadata after column chunks *and* in the footer #6117 [parquet] (etseidl)
- Remove
impl<T: AsRef<[u8]>> From<T> for Bufferthat easily accidentally copies data #6043 [arrow] (XiangpengHao)
Implemented enhancements:
- Derive
PartialEqandEqforparquet::arrow::ProjectionMask#6329 [parquet] - Allow converting empty
pyarrow.RecordBatchtoarrow::RecordBatch#6318 [arrow] - Parquet writer should not write any min/max data to ColumnIndex when all values are null #6315 [parquet]
- Parquet: Add
unionmethod toRowSelection#6307 [parquet] - Support writing
UTC adjusted timearrow array to parquet #6277 [parquet] - A better way to resize the buffer for the snappy encode/decode #6276 [parquet]
- parquet_derive: support reading selected columns from parquet file #6268
- Tests for invalid parquet files #6261 [parquet]
- Implement
date_partforDuration#6245 [arrow] - Avoid unnecessary null buffer construction when converting arrays to a different type #6243 [parquet] [arrow]
- Add
parquet_opendalin related projects #6235 - Look into optimizing reading FixedSizeBinary arrays from parquet #6219 [parquet] [arrow]
- Add benchmarks for
BYTE_STREAM_SPLITencoded ParquetFIXED_LEN_BYTE_ARRAYdata #6203 [parquet] - Make it easy to write parquet to object_store -- Implement
AsyncFileWriterfor a type that implementsobj_store::MultipartUploadforAsyncArrowWriter#6200 [parquet] - Remove test duplication in parquet statistics tets #6185 [parquet]
- Support BinaryView Types in C Schema FFI #6170 [arrow]
- speedup take_byte_view kernel #6167 [arrow]
- Add support for
StringViewandBinaryViewstatistics inStatisticsConverter#6164 [parquet] - Support casting
BinaryView-->Utf8andLargeUtf8#6162 [arrow] - Implement
filterkernel specially forFixedSizeByteArray#6153 [arrow] - Use
LevelHistogramthroughout Parquet metadata #6134 [parquet] - Support DoPutStatementIngest from Arrow Flight SQL 17.0 #6124 [arrow] [arrow-flight]
- ColumnMetaData should no longer be written inline with data #6115 [parquet]
- Implement date_part for
Interval#6113 [arrow] - Implement
Into<Arc<dyn Array>>forArrayData#6104 - Allow flushing or non-buffered writes from
arrow::ipc::writer::StreamWriter#6099 [arrow] - Default block_size for
StringViewArray#6094 [arrow] - Remove
Statistics::has_min_max_setandValueStatistics::has_min_max_setand useOptioninstead #6093 [parquet] - Upgrade arrow-flight to tonic 0.12 #6072
- Improve speed of row converter by skipping utf8 checks #6058 [arrow]
- Extend support for BYTE_STREAM_SPLIT to FIXED_LEN_BYTE_ARRAY, INT32, and INT64 primitive types #6048 [parquet]
- Release arrow-rs / parquet minor version
52.2.0(August 2024) #5998 [parquet] [arrow]
Fixed bugs:
- Invalid
ColumnIndexwritten in parquet #6310 [parquet] - comparison_kernels benchmarks panic #6283 [arrow]
- Printing schema metadata includes possibly incorrect compression level #6270 [parquet]
- Don't panic when creating
FieldfromFFI_ArrowSchemawith no name #6251 [arrow] - lexsort_to_indices should not fallback to non-lexical sort if the datatype is not supported #6226 [arrow]
- Parquet Statistics null_count does not distinguish between
0and not specified #6215 [parquet] - Using a take kernel on a dense union can result in reaching "unreachable" code #6206 [arrow]
- Adding sub day seconds to Date64 is ignored. #6198 [arrow]
- mismatch between parquet type
is_optionalcodes and comment #6191 [parquet]
Documentation updates:
- Minor: improve filter documentation #6317 [arrow] (alamb)
- Minor: Improve comments on GenericByteViewArray::bytes_iter(), prefix_iter() and suffix_iter() #6306 [arrow] (alamb)
- Minor: improve
RowFilterandArrowPredicatedocs #6301 [parquet] (alamb) - Improve documentation for
MutableArrayData#6272 [arrow] (alamb) - Add examples to
StringViewBuilderandBinaryViewBuilder#6240 [arrow] (alamb) - minor: enhance document for ParquetField #6239 [parquet] (mapleFU)
- Minor: Improve Type documentation #6224 [arrow] (alamb)
- Minor: Update
DateType::Date64docs #6223 [arrow] (alamb) - Add (more) Parquet Metadata Documentation #6184 [parquet] (alamb)
- Add additional documentation and examples to
ArrayAccessor#6141 [arrow] (alamb) - Minor: improve comments in temporal.rs tests #6140 [arrow] (alamb)
- Minor: Update release schedule in README #6125 (alamb)
Closed issues:
- Simplify take octokit workflow #6279
- Make the bearer token visible in FlightSqlServiceClient #6253 [arrow] [arrow-flight]
- Port
takeworkflow to useoktokit#6242 - Remove
SchemaBuilderdependency fromStructArrayconstructors #6138 [arrow]
Merged pull requests:
- Derive PartialEq and Eq for parquet::arrow::ProjectionMask #6330 [parquet] (thinkharderdev)
- Support zero column
RecordBatches in pyarrow integration (use RecordBatchOptions when converting a pyarrow RecordBatch) #6320 [arrow] (Michael-J-Ward) - Fix writing of invalid Parquet ColumnIndex when row group contains null pages #6319 [parquet] (adriangb)
- Pass empty vectors as min/max for all null pages when building ColumnIndex #6316 [parquet] (etseidl)
- Update tonic-build requirement from =0.12.0 to =0.12.2 #6314 [arrow] [arrow-flight] (dependabot[bot])
- Parquet: add
unionmethod toRowSelection#6308 [parquet] (sdd) - Specialize filter for structs and sparse unions #6304 [arrow] (gstvg)
- Err on
try_from_le_slice#6295 [parquet] (samuelcolvin) - fix reference in doctest to size_of which is not imported by default #6286 [arrow] (rtyler)
- Support writing UTC adjusted time arrays to parquet #6278 [parquet] (aykut-bozkurt)
- Minor:
pub use ByteViewin arrow and improve documentation #6275 [arrow] (alamb) - Fix accessing name from ffi schema #6273 [arrow] (kylebarron)
- Do not print compression level in schema printer #6271 [parquet] (ttencate)
- ci: use octokit to add assignee #6267 (dsgibbons)
- Add tests for bad parquet files #6262 [parquet] (alamb)
- Add
Statistics::distinct_count_optand deprecateStatistics::distinct_count#6259 [parquet] (alamb) - Minor: move
FallibleRequestStreamandFallibleTonicResponseStreamto a module #6258 [arrow] [arrow-flight] (alamb) - Make the bearer token visible in FlightSqlServiceClient #6254 [arrow] [arrow-flight] (ccciudatu)
- Use
unary()for array conversion in Parquet array readers, speed upDecimal128,Decimal256andFloat16#6252 [parquet] [arrow] (etseidl) - Update tower requirement from 0.4.13 to 0.5.0 #6250 [arrow] [arrow-flight] (dependabot[bot])
- Implement date_part for durations #6246 [arrow] (nrc)
- Remove unnecessary null buffer construction when converting arrays to a different type #6244 [parquet] [arrow] (etseidl)
- Implement PartialEq for GenericByteViewArray #6241 [arrow] (alamb)
- Minor: Remove non standard footer from LICENSE.txt / reference to Apache Aurora #6237 (alamb)
- docs: Add parquet_opendal in related projects #6236 (Xuanwo)
- Avoid infinite loop in bad parquet by checking the number of rep levels #6232 [parquet] (jp0317)
- Specialize Prefix/Suffix Match for
Like/ILikebetween Array and Scalar for StringViewArray #6231 [arrow] (xinlifoobar) - fix: lexsort_to_indices should not fallback to non-lexical sort if the datatype is not supported #6225 [arrow] (viirya)
- Modest improvement to FixedLenByteArray BYTE_STREAM_SPLIT arrow decoder #6222 [parquet] (etseidl)
- Improve performance of
FixedLengthBinarydecoding #6220 [parquet] (etseidl) - Update documentation for Parquet BYTE_STREAM_SPLIT encoding #6212 [parquet] (etseidl)
- Improve interval parsing #6211 [arrow] (samuelcolvin)
- minor: Suggest take on interleave docs #6210 [arrow] (gstvg)
- fix: Correctly handle take on dense union of a single selected type #6209 [arrow] (gstvg)
- Add time dictionary coercions #6208 [arrow] (adriangb)
- fix(arrow): restrict the range of temporal values produced via
data_gen#6205 [arrow] (kyle-mccarthy) - Add benchmarks for
BYTE_STREAM_SPLITencoded ParquetFIXED_LEN_BYTE_ARRAYdata #6204 [parquet] (etseidl) - Move
ParquetMetadataWriterto its own module, update documentation #6202 [parquet] (alamb) - Add
ThriftMetadataWriterfor writing Parquet metadata #6197 [parquet] (adriangb) - Update zstd-sys requirement from >=2.0.0, <2.0.13 to >=2.0.0, <2.0.14 #6196 [parquet] (dependabot[bot])
- fix parquet type
is_optionalcomments #6192 [parquet] (jp0317) - Remove duplicated statistics tests in parquet #6190 [parquet] (Kev1n8)
- Benchmarks for
bool_and#6189 [arrow] (simonvandel) - Fix typo in documentation of Float64Array #6188 [arrow] (mesejo)
- Make it clear that
StatisticsConvertercan not panic #6187 [parquet] (alamb) - add filter benchmark for
FixedSizeBinaryArray#6186 [arrow] (chloro-pn) - Update sysinfo requirement from 0.30.12 to 0.31.2 #6182 [parquet] (dependabot[bot])
- Add support for
StringViewandBinaryViewstatistics inStatisticsConverter#6181 [parquet] (Kev1n8) - Support casting between BinaryView <--> Utf8 and LargeUtf8 #6180 [arrow] (xinlifoobar)
- Implement specialized filter kernel for
FixedSizeByteArray#6178 [arrow] (chloro-pn) - Support
StringViewandBinaryViewin CDataInterface #6171 [arrow] (a10y) - Optimize
takekernel forBinaryViewArrayandStringViewArray#6168 [arrow] (a10y) - Support Parquet
BYTE_STREAM_SPLITfor INT32, INT64, and FIXED_LEN_BYTE_ARRAY primitive types #6159 [parquet] (etseidl) - Fix comparison kernel benchmarks #6147 [arrow] (samuelcolvin)
- improve
LIKEregex performance up to 12x #6145 [arrow] (samuelcolvin) - Optimize
min_booleanandbool_and#6144 [arrow] (simonvandel) - Reduce bounds check in
RowIter, addunsafe Rows::row_unchecked#6142 [arrow] (XiangpengHao) - Minor: Simplify
StructArrayconstructors #6139 [arrow] (Rafferty97) - Implement exponential block size growing strategy for
StringViewBuilder#6136 [arrow] (XiangpengHao) - Use
LevelHistograminPageIndex#6135 [parquet] (etseidl) - Add ArrowError::ArithmeticError #6130 [arrow] (andygrove)
- Improve
LIKEperformance for "contains" style queries #6128 [arrow] (samuelcolvin) - Add
BooleanArray::new_from_packedandBooleanArray::new_from_u8#6127 [arrow] (chloro-pn) - improvements to
(i)starts_withand(i)ends_withperformance #6118 [arrow] (samuelcolvin) - Fix Clippy for the Rust 1.80 release #6116 [parquet] [arrow] [arrow-flight] (alamb)
- added a flush method to IPC writers #6108 [arrow] (V0ldek)
- Add support for level histograms added in PARQUET-2261 to
ParquetMetaData#6105 [parquet] (etseidl) - Implement date_part for intervals #6071 [arrow] (nrc)
- feat(parquet): Implement AsyncFileWriter for
object_store::buffered::BufWriter#6013 [parquet] (Xuanwo)
-
52.2.028 Jul 2024Release notes
Open source →Implemented enhancements:
- Faster min/max for string/binary view arrays #6088 [arrow]
- Support casting to/from Utf8View #6076 [arrow]
- Min/max support for String/BinaryViewArray #6052 [arrow]
- Improve performance of constructing
ByteViews for small strings #6034 [parquet] [arrow] - Fast UTF-8 validation when reading StringViewArray from Parquet #5995 [parquet]
- Optimize StringView row decoding #5945 [arrow]
- Implementing
deduplicate/internfunctionality for StringView #5910 [arrow] - Add
FlightSqlServiceClient::new_from_inner#6003 [arrow] [arrow-flight] (lewiszlw) - Complete
StringViewArrayandBinaryViewArrayparquet decoder: #6004 [parquet] (XiangpengHao) - Add begin/end_transaction methods in FlightSqlServiceClient #6026 [arrow] [arrow-flight] (lewiszlw)
- Read Parquet statistics as arrow
Arrays#6046 [parquet] (efredine)
Fixed bugs:
- Panic in
ParquetMetadata::memory_sizeif no min/max set #6091 [parquet] - BinaryViewArray doesn't roundtrip a single
Some(&[])through parquet #6086 [parquet] - Parquet
ColumnIndexfor null columns is written even when statistics are disabled #6010 [parquet]
Documentation updates:
- Fix typo in GenericByteViewArray documentation #6054 [arrow] (progval)
- Minor: Improve parquet PageIndex documentation #6042 [parquet] (alamb)
Closed issues:
- Potential performance improvements for reading Parquet to StringViewArray/BinaryViewArray #5904 [parquet] [arrow]
Merged pull requests:
- Faster
GenericByteViewconstruction #6102 [parquet] [arrow] (XiangpengHao) - Add benchmark to track byte-view construction performance #6101 [parquet] (XiangpengHao)
- Optimize
bool_orusingmax_boolean#6100 [arrow] (simonvandel) - Optimize
max_booleanby operating on u64 chunks #6098 [arrow] (simonvandel) - fix panic in
ParquetMetadata::memory_size: check has_min_max_set before invoking min()/max() #6092 [parquet] (Fischer0522) - Implement specialized min/max for
GenericBinaryView(StringViewandBinaryView) #6089 [arrow] (XiangpengHao) - Add PartialEq to ParquetMetaData and FileMetadata #6082 [parquet] (adriangb)
- Enable casting from Utf8View #6077 [arrow] (a10y)
- StringView support in arrow-csv #6062 [arrow] (2010YOUY01)
- Implement min max support for string/binary view types #6053 [arrow] (XiangpengHao)
- Minor: clarify the relationship between
file::metadataandformatin docs #6049 [parquet] (alamb) - Minor API adjustments for StringViewBuilder #6047 [arrow] (XiangpengHao)
- Add parquet
StatisticsConverterfor arrow reader #6046 [parquet] (efredine) - Directly decode String/BinaryView types from arrow-row format #6044 [arrow] (XiangpengHao)
- Clean up unused code for view types in offset buffer #6040 [parquet] (XiangpengHao)
- Avoid using Buffer api that accidentally copies data #6039 [parquet] [arrow] [arrow-flight] (XiangpengHao)
- MINOR: Fix
hashbrownversion inarrow-array, remove fromarrow-row#6035 [arrow] (mbrobbel) - Improve performance reading
ByteViewArrayfrom parquet by removing an implicit copy #6031 [parquet] (XiangpengHao) - Add begin/end_transaction methods in FlightSqlServiceClient #6026 [arrow] [arrow-flight] (lewiszlw)
- Unsafe improvements: core
parquetcrate. #6024 [parquet] (veluca93) - Additional tests for parquet reader utf8 validation #6023 [parquet] (alamb)
- Update zstd-sys requirement from >=2.0.0, <2.0.12 to >=2.0.0, <2.0.13 #6019 [parquet] (dependabot[bot])
- fix doc ci in latest rust nightly version #6012 [arrow] [arrow-flight] (Rachelint)
- Do not write
ColumnIndexfor null columns when not writing page statistics #6011 [parquet] (etseidl) - Fast utf8 validation when loading string view from parquet #6009 [parquet] (XiangpengHao)
- Deduplicate strings/binarys when building view types #6005 [arrow] (XiangpengHao)
- Complete
StringViewArrayandBinaryViewArrayparquet decoder: implement delta byte array and delta length byte array encoding #6004 [parquet] (XiangpengHao) - Add
FlightSqlServiceClient::new_from_inner#6003 [arrow] [arrow-flight] (lewiszlw) - Rename
Schema::all_fieldstoflattened_fields#6001 [parquet] [arrow] [arrow-flight] (lewiszlw) - Refine documentation and examples for
DataType#5997 [arrow] (alamb) - implement
DataType::try_form(&str)#5994 [arrow] (samuelcolvin) - Implement dictionary support for reading ByteView from parquet #5973 [parquet] (XiangpengHao)
-
52.1.006 Jul 2024Release notes
Open source →Implemented enhancements:
- Implement
eqcomparison for StructArray #5960 [arrow] - A new feature as a workaround hack to unavailable offset support in Arrow Java #5959 [arrow]
- Add
min_bytesandmax_bytestoPageIndex#5949 [parquet] - Error message in ArrowNativeTypeOp::neg_checked doesn't include the operation #5944 [arrow]
- Add object_store_opendal as related projects #5925
- Opaque retry errors make debugging difficult #5923
- Implement arrow-row en/decoding for GenericByteView types #5921 [arrow]
- The arrow-rs repo is very large #5908
- [DISCUSS] Release arrow-rs / parquet patch release
52.0.1#5906 [arrow] - Implement
compare_opforGenericBinaryView#5897 [arrow] - New null with view types are not supported #5893 [arrow]
- Cleanup ByteView construction #5878 [parquet] [arrow]
castkernel support forStringViewArrayandBinaryViewArray\<--\>DictionaryArray` #5861 [arrow]- parquet::ArrowWriter show allow writing Bloom filters before the end of the file #5859 [parquet]
- API to get memory usage for parquet ArrowWriter #5851 [parquet]
- Support writing
IntervalMonthDayNanoArrayto parquet via Arrow Writer #5849 [parquet] - Write parquet statistics for
IntervalDayTimeArray,IntervalMonthDayNanoArrayandIntervalYearMonthArray#5847 [parquet] - Make
RowSelection::from_consecutive_rangespublic #5846 [parquet] Schema::try_mergeshould be able to merge List of any data type with List of Null data type #5843 [arrow]- Add a way to move
fieldsout of parquetRow#5841 [parquet] - Make
TimeUnitandIntervalUnitCopy#5839 [arrow] - Limit Parquet Page Row Count By Default to reduce writer memory requirements with highly compressable columns #5797 [parquet]
- Report / blog on parquet metadata sizes for "large" (1000+) numbers of columns #5770 [parquet] [arrow]
- Structured ByteView Access (underlying StringView/BinaryView representation) #5736 [arrow]
- [parquet_derive] support OPTIONAL (def_level = 1) columns by default #5716
- Maps cast to other Maps with different Elements, Key and Value Names #5702 [arrow]
- Provide Arrow Schema Hint to Parquet Reader #5657 [parquet] [arrow]
Fixed bugs:
- Wrong error type in case of invalid amount in Interval components #5986 [arrow]
- Empty and Null structarray fails to IPC roundtrip #5920
- FixedSizeList got out of range when the total length of the underlying values over i32::MAX #5901 [arrow]
- Out of range when extending on a slice of string array imported through FFI #5896 [arrow]
- cargo msrv test is failing on main for
object_store#5864 [parquet]
Documentation updates:
- chore: update RunArray reference in run_iterator.rs #5892 [arrow] (Weijun-H)
- Minor: Clarify when page index structures are read #5886 [parquet] (alamb)
- Improve Parquet reader/writer properties docs #5863 [parquet] (alamb)
- Refine documentation for
unary_mutandbinary_mut#5798 [arrow] (alamb)
Closed issues:
Merged pull requests:
- fix: error in case of invalid amount interval component #5987 [arrow] (DDtKey)
- Minor: fix clippy complaint in parquet_derive #5984 (alamb)
- Reduce repo size by removing accumulative commits in CI job #5982 (Owen-CH-Leung)
- Add operation in ArrowNativeTypeOp::neg_check error message (#5944) #5980 [arrow] (zhao-gang)
- Implement directly build byte view array on top of parquet buffer #5972 [parquet] (XiangpengHao)
- Handle flight dictionary ID assignment automatically #5971 [arrow] [arrow-flight] (thinkharderdev)
- Add view buffer for parquet reader #5970 [parquet] [arrow] (XiangpengHao)
- Add benchmark for reading binary/binary view from parquet #5968 [parquet] (XiangpengHao)
- feat(5851): ArrowWriter memory usage #5967 [parquet] (wiedld)
- Add ParquetMetadata::memory_size size estimation #5965 [parquet] (alamb)
- Fix FFI array offset handling #5964 [arrow] (tustvold)
- Implement sort for String/BinaryViewArray #5963 [arrow] (XiangpengHao)
- Improve error message for unsupported nested comparison #5961 [arrow] (alamb)
- chore(5797): change default parquet data_page_row_limit to 20k #5957 [parquet] (wiedld)
- Document process for PRs with breaking changes #5953 (alamb)
- Minor: fixup contribution guide about clippy #5952 (alamb)
- feat: add max_bytes and min_bytes on PageIndex #5950 [parquet] (tshauck)
- test: Add unit test for extending slice of list array #5948 [arrow] (viirya)
- minor: row format benches for bool & nullable int #5943 [arrow] (korowa)
- Better document support for nested comparison #5942 [arrow] (tustvold)
- Provide Arrow Schema Hint to Parquet Reader - Alternative 2 #5939 [parquet] (efredine)
likebenchmark for StringView #5936 [arrow] (alamb)- Fix typo in benchmark name
egexp-->regexp#5935 [arrow] (alamb) - Revert "Write Bloom filters between row groups instead of the end " #5932 [parquet] (alamb)
- Implement like/ilike etc for StringViewArray #5931 [arrow] (XiangpengHao)
- docs: Fix broken links of object_store_opendal README #5929 (Xuanwo)
- Expose
IntervalMonthDayNanoandIntervalDayTimeand update docs #5928 [arrow] (alamb) - Update proc-macro2 requirement from =1.0.85 to =1.0.86 #5927 [arrow] [arrow-flight] (dependabot[bot])
- docs: Add object_store_opendal as related projects #5926 (Xuanwo)
- Add eq benchmark for StringArray/StringViewArray #5924 [arrow] (XiangpengHao)
- Implement arrow-row encoding/decoding for view types #5922 [arrow] (XiangpengHao)
- fix(ipc): set correct row count when reading struct arrays with zero fields #5918 [arrow] (kawadakk)
- Update zstd-sys requirement from >=2.0.0, <2.0.10 to >=2.0.0, <2.0.12 #5913 [parquet] (dependabot[bot])
- fix: prevent potential out-of-range access in FixedSizeListArray #5902 [arrow] (BubbleCal)
- Implement compare operations for view types #5900 [arrow] (XiangpengHao)
- minor: use as_primitive replace downcast_ref #5898 [arrow] (Kikkon)
- fix: Adjust FFI_ArrowArray offset based on the offset of offset buffer #5895 [arrow] (viirya)
- implement
new_null_arrayfor view types #5894 [arrow] (XiangpengHao) - chore: add view type single column tests #5891 [parquet] (ariesdevil)
- Minor: expose timestamp_tz_format for csv writing #5890 [arrow] (tmi)
- chore: implement parquet error handling for object_store #5889 [parquet] (abhiaagarwal)
- Document when the ParquetRecordBatchReader will re-read metadata #5887 [parquet] (alamb)
- Add simple GC for view array types #5885 [arrow] (XiangpengHao)
- Update for new clippy rules #5881 [parquet] [arrow] (XiangpengHao)
- clean up ByteView construction #5879 [parquet] [arrow] (XiangpengHao)
- Avoid copy/allocation when read view types from parquet #5877 [parquet] (XiangpengHao)
- Document parquet ArrowWriter type limitations #5875 [parquet] (alamb)
- Benchmark for casting view to dict arrays (and the reverse) #5874 [arrow] (XiangpengHao)
- Implement Take for Dense UnionArray #5873 [arrow] (gstvg)
- Improve performance of casting
StringView/BinaryViewtoDictionaryArray#5872 [arrow] (XiangpengHao) - Improve performance of casting
DictionaryArraytoStringViewArray#5871 [arrow] (XiangpengHao) - fix: msrv CI for object_store #5866 (korowa)
- parquet: Fix warning about unused import #5865 [parquet] (progval)
- Preallocate for
FixedSizeListinconcat#5862 [arrow] (judahrand) - Faster primitive arrays encoding into row format #5858 [arrow] (korowa)
- Added panic message to docs. #5857 [arrow] (SeeRightThroughMe)
- feat: call try_merge recursively for list field #5852 [arrow] (mnpw)
- Minor: refine row selection example more #5850 [parquet] (alamb)
- Make RowSelection's from_consecutive_ranges public #5848 [parquet] (advancedxy)
- Add exposing fields from parquet row #5842 [parquet] (SHaaD94)
- Derive
CopyforTimeUnitandIntervalUnit#5840 [arrow] (mbrobbel) - feat: support reading OPTIONAL column in parquet_derive #5717 (double-free)
- Add the ability for Maps to cast to another case where the field names are different #5703 [arrow] (HawaiianSpork)
- Implement
-
52.0.006 Jun 2024Release notes
Open source →Breaking changes:
- chore: Make binary_mut kernel accept different type for second arg #5833 [arrow] (viirya)
- fix(flightsql): remove Any encoding of
DoPutPreparedStatementResult#5817 [arrow] [arrow-flight] (erratic-pattern) - Encode UUID as FixedLenByteArray in parquet_derive #5773 (conradludgate)
- Structured interval types for
IntervalMonthDayNanoorIntervalDayTime(#3125) (#5654) #5769 [parquet] [arrow] (tustvold) - Fallible stream for arrow-flight do_exchange call (#3462) #5698 [arrow] [arrow-flight] (opensourcegeek)
- Update object_store dependency in arrow to
0.10.0#5675 [parquet] (tustvold) - Remove deprecated JSON writer #5651 [arrow] (tustvold)
- Change
UnionArrayconstructors #5623 [arrow] [arrow-flight] (mbrobbel) - Update py03 from 0.20 to 0.21 #5566 [arrow] (Jefffrey)
- Optionally require alignment when reading IPC, respect alignment when writing #5554 [arrow] [arrow-flight] (hzuo)
Implemented enhancements:
- Serialize
BinaryandLargeBinaryas HEX with JSON Writer #5783 [arrow] - Some optimizations in arrow_buffer::util::bit_util do more harm than good #5771 [arrow]
- Support skipping comments in CSV files #5758 [arrow]
parquet-deriveshould be included in repository README. #5751- proposal: Make AsyncArrowWriter accepts AsyncFileWriter trait instead #5738 [parquet]
- Nested nullable fields do not get treated as nullable in data_gen #5712 [arrow]
- Optionally support flexible column lengths #5678 [arrow]
- Arrow Flight SQL example server: do_handshake should include auth header #5665 [arrow] [arrow-flight]
- Add support for the "r+" datatype in the C Data interface /
RunArray#5631 [arrow] - Serialize
FixedSizeBinaryas HEX with JSON Writer #5620 [arrow] - Cleanup UnionArray Constructors #5613 [arrow] [arrow-flight]
- Zero Copy Support #5593
- ObjectStore bulk delete #5591
- Retry on Broken Connection #5589
StreamReaderis not zero-copy #5584 [arrow]- Create
ArrowReaderMetadatafrom externalized metadata #5582 [parquet] - Make
filterinfilter_leavesAPI propagate error #5574 [arrow] - Support
Listincompare_op#5572 - Make FixedSizedList Json serializable #5568 [arrow]
- arrow-ord: Support sortting StructArray #5559 [arrow]
- Add scientific notation decimal parsing in
parse_decimal#5549 [arrow] takekernel support forStringViewArrayandBinaryViewArray#5511 [arrow]filterkernel support forStringViewArrayandBinaryViewArray#5510 [arrow]- Display support for
StringViewArrayandBinaryViewArray#5509 [arrow] - Arrow Flight format support for
StringViewArrayandBinaryViewArray#5507 [arrow] [arrow-flight] - IPC format support for
StringViewArrayandBinaryViewArray#5506 [parquet] [arrow]
Fixed bugs:
- List Row Encoding Sorts Incorrectly #5807 [arrow]
- Schema Root Message Name Ignored by parquet-fromcsv #5804 [parquet]
- Compute data buffer length by using start and end values in offset buffer #5756 [arrow]
- parquet: ByteArrayEncoder allocates large unused FallbackEncoder for Parquet 2 #5755 [parquet]
- The CI pipeline
Archery test With other arrowis broken #5742 [arrow] - Unable to parse scientific notation string to decimal when scale is 0 #5739 [arrow]
- Stateless prepared statements wrap
DoPutPreparedStatementResultwithAnywhich is differs from Go implementation #5731 [arrow] [arrow-flight] - "Rustdocs are clean (amd64, nightly)" CI check is failing #5725 [parquet] [arrow]
- "Archery test With other arrows" integration tests are failing #5719 [parquet] [arrow]
- parquet_derive: invalid examples/documentation #5687
- Arrow FLight SQL: invalid location in get_flight_info_prepared_statement #5669 [arrow] [arrow-flight]
- Rust Interval definition incorrect #5654 [parquet] [arrow]
- DECIMAL regex in csv reader does not accept positive exponent specifier #5648 [arrow]
- panic when casting
ListArraytoFixedSizeList#5642 [arrow] - FixedSizeListArray::try_new Errors on Entirely Null Array With Size 0 #5614 [arrow]
parquet / Build wasm32 (pull_request)CI check failing on main #5565 [parquet] [arrow]- Documentation fix: example in parquet/src/column/mod.rs is incorrect #5560 [parquet]
- IPC code writes data with insufficient alignment #5553 [arrow] [arrow-flight]
- Cannot access example Flight SQL Server from dbeaver #5540 [arrow] [arrow-flight]
- parquet: "not yet implemented" error when codec is actually implemented but disabled #5520 [parquet]
Documentation updates:
- Minor: Improve arrow_cast documentation #5825 [arrow] (alamb)
- Minor: Improve
ArrowReaderBuilder::with_row_selectiondocs #5824 [parquet] (alamb) - Minor: Add examples for ColumnPath::from #5813 [parquet] (alamb)
- Minor: Clarify docs on
EnabledStatistics#5812 [parquet] (alamb) - Add parquet-derive to repository README #5795 (konjac)
- Refine ParquetRecordBatchReaderBuilder docs #5774 [parquet] (alamb)
- docs: add sizing explanation to bloom filter docs in parquet #5705 [parquet] (hiltontj)
Closed issues:
binary_mutkernel requires both args to be the same type (which is inconsistent withbinary) #5818 [arrow]- Panic when displaying debug the results via log::info in the browser. #5599 [arrow]
Merged pull requests:
- feat: impl *Assign ops for types in arrow-buffer #5832 [arrow] (waynexia)
- Relax zstd-sys Version Pin #5829 [parquet] (waynexia)
- Minor: Document timestamp with/without cast behavior #5826 [arrow] (alamb)
- fix: invalid examples/documentation in parquet_derive doc #5823 (Weijun-H)
- Check length of
FIXED_LEN_BYTE_ARRAYforuuidlogical parquet type #5821 [parquet] (mbrobbel) - Allow overriding the inferred parquet schema root #5814 [parquet] (tustvold)
- Revisit List Row Encoding (#5807) #5811 [arrow] (tustvold)
- Update proc-macro2 requirement from =1.0.83 to =1.0.84 #5805 [arrow] [arrow-flight] (dependabot[bot])
- Fix typo continuation maker -> marker #5802 [arrow] (djanderson)
- fix: serialization of decimal #5801 [arrow] (yjshen)
- Allow constructing ByteViewArray from existing blocks #5796 [arrow] (tustvold)
- Push SortOptions into DynComparator Allowing Nested Comparisons (#5426) #5792 [arrow] (tustvold)
- Fix incorrect URL to Parquet CPP types.h #5790 [parquet] (viirya)
- Update proc-macro2 requirement from =1.0.82 to =1.0.83 #5789 [arrow] [arrow-flight] (dependabot[bot])
- Update prost-build requirement from =0.12.4 to =0.12.6 #5788 [arrow] [arrow-flight] (dependabot[bot])
- Refine parquet documentation on types and metadata #5786 [parquet] (alamb)
- feat(arrow-json): encode
BinaryandLargeBinarytypes as hex when writing JSON #5785 [arrow] (hiltontj) - fix broken link to ballista crate in README.md #5784 (navicore)
- feat(arrow-csv): support encoding of binary in CSV writer #5782 [arrow] (hiltontj)
- Fix documentation for parquet
parse_metadata,decode_metadataanddecode_footer#5781 [parquet] (alamb) - Support casting a
FixedSizedList<T>[1]toT#5779 [arrow] (sadboy) - [parquet] Set the default size of BitWriter in DeltaBitPackEncoder to 1MB #5776 [parquet] (AdamGS)
- Remove harmful table lookup optimization for bitmap operations #5772 [arrow] (HadrienG2)
- Remove deprecated comparison kernels (#4733) #5768 [arrow] (tustvold)
- Add environment variable definitions to run the nanoarrow integration tests #5764 (paleolimbot)
- Downgrade to Rust 1.77 in integration pipeline to fix CI (#5719) #5761 (tustvold)
- Expose boolean builder contents #5760 [arrow] (HadrienG2)
- Allow specifying comment character for CSV reader #5759 [arrow] (bbannier)
- Expose the null buffer of every builder that has one #5754 [arrow] (HadrienG2)
- feat: Make AsyncArrowWriter accepts AsyncFileWriter #5753 [parquet] (Xuanwo)
- Improve repository readme #5752 (alamb)
- Document object store release cadence #5750 (alamb)
- Compute data buffer length by using start and end values in offset buffer #5741 [arrow] (viirya)
- fix: parse string of scientific notation to decimal when the scale is 0 #5740 [arrow] (yjshen)
- Minor: avoid (likely unreachable) panic in FlightClient #5734 [arrow] [arrow-flight] (alamb)
- Update proc-macro2 requirement from =1.0.81 to =1.0.82 #5732 [arrow] [arrow-flight] (dependabot[bot])
- Improve error message for timestamp queries outside supported range #5730 [arrow] (Abdi-29)
- Refactor to share code between do_put and do_exchange calls #5728 [arrow] [arrow-flight] (opensourcegeek)
- Update brotli requirement from 5.0 to 6.0 #5726 [parquet] (dependabot[bot])
- Fix
GenericListBuildertest typo #5724 [arrow] (Kikkon) - Deprecate NullBuilder capacity, as it behaves in a surprising way #5721 [arrow] (HadrienG2)
- Fix nested nullability when randomly generating arrays #5713 [arrow] (alexwilcoxson-rel)
- Fix up clippy for Rust 1.78 #5710 [parquet] [arrow] (alamb)
- Support casting
StringView/BinaryView-->StringArray/BinaryArray. #5704 [arrow] (RinChanNOWWW) - Fix documentation around handling of nulls in cmp kernels #5697 [arrow] (Jefffrey)
- Support casting
StringArray/BinaryArray-->StringView/BinaryView#5686 [arrow] (RinChanNOWWW) - Add support for flexible column lengths #5679 [arrow] (Posnet)
- Move ffi stream and utils from arrow to arrow-array #5670 [arrow] (alexandreyc)
- Arrow Flight SQL example JDBC driver incompatibility #5666 [arrow] [arrow-flight] (istvan-fodor)
- Add
ListView&LargeListViewbasic construction and validation #5664 [arrow] (Kikkon) - Update proc-macro2 requirement from =1.0.80 to =1.0.81 #5659 [arrow] [arrow-flight] (dependabot[bot])
- Modify decimal regex to accept positive exponent specifier #5649 [arrow] (jdcasale)
- feat: JSON encoding of
FixedSizeList#5646 [arrow] (hiltontj) - Update proc-macro2 requirement from =1.0.79 to =1.0.80 #5644 [arrow] [arrow-flight] (dependabot[bot])
- fix: panic when casting
ListArraytoFixedSizeList#5643 [arrow] (jonahgao) - Add more invalid utf8 parquet reader tests #5639 [parquet] (alamb)
- Update brotli requirement from 4.0 to 5.0 #5637 [parquet] (dependabot[bot])
- Update flatbuffers requirement from 23.1.21 to 24.3.25 #5636 [arrow] (dependabot[bot])
- Increase
BinaryViewArraytest coverage #5635 [arrow] (alamb) - PrettyPrint support for
StringViewArrayandBinaryViewArray#5634 [arrow] (alamb) - feat(ffi): add run end encoded arrays #5632 [arrow] (notfilippo)
- Accept parquet schemas without explicitly required Map keys #5630 [parquet] (jupiter)
- Implement
filterkernel for byte view arrays. #5624 [arrow] (RinChanNOWWW) - feat: encode FixedSizeBinary in JSON as hex string #5622 [arrow] (hiltontj)
- Update Flight crate README version #5621 [arrow] [arrow-flight] (phillipleblanc)
- feat: support reading and writing
StringViewandBinaryViewin parquet (part 1) #5618 [parquet] [arrow] (alamb) - Use FixedSizeListArray::new in FixedSizeListBuilder #5612 [arrow] (tustvold)
- String to decimal conversion written using E/scientific notation #5611 [arrow] (Nekit2217)
- Account for Timezone when Casting Timestamp to Date32 #5605 [arrow] (Lordworms)
- Update prost-build requirement from =0.12.3 to =0.12.4 #5604 [arrow] [arrow-flight] (dependabot[bot])
- Fix panic when displaying dates on 32-bit platforms #5603 [arrow] (ivanceras)
- Implement
takekernel for byte view array. #5602 [arrow] (RinChanNOWWW) - Add tests for Arrow Flight support for
StringViewArrayandBinaryViewArray#5601 [arrow] [arrow-flight] (XiangpengHao) - test: Add a test for RowFilter with nested type #5600 [parquet] (viirya)
- Minor: Add docs for GenericBinaryBuilder, links to
GenericStringBuilder#5597 [arrow] (alamb) - Bump chrono-tz from 0.8 to 0.9 #5596 [arrow] (Jefffrey)
- Update brotli requirement from 3.3 to 4.0 #5586 [parquet] (dependabot[bot])
- Add
UnionArray::into_parts#5585 [arrow] (mbrobbel) - Expose ArrowReaderMetadata::try_new #5583 [parquet] (kylebarron)
- Add
try_filter_leavesto propagate error from filter closure #5575 [arrow] (viirya) - filter for run end array #5573 [arrow] (fabianmurariu)
- Pin zstd-sys to
v2.0.9in parquet #5567 [parquet] (Jefffrey) - Split arrow_cast::cast::string into it's own submodule #5563 [arrow] (monkwire)
- Correct example code for column (#5560) #5561 [parquet] (zgershkoff)
- Split arrow_cast::cast::dictionary into it's own submodule #5555 [arrow] (monkwire)
- Split arrow_cast::cast::decimal into it's own submodule #5552 [arrow] (monkwire)
- Fix new clippy lints for Rust 1.77 #5544 [parquet] [arrow] (alamb)
- fix: correctly encode ticket #5543 [arrow] [arrow-flight] (freddieptf)
- feat: implemented with_field() for FixedSizeListBuilder #5541 [arrow] (istvan-fodor)
- Split arrow_cast::cast::list into it's own submodule #5537 [arrow] (monkwire)
- Bump black from 22.10.0 to 24.3.0 in /parquet/pytest #5535 [parquet] (dependabot[bot])
- Add OffsetBufferBuilder #5532 [arrow] (tustvold)
- Add IPC StreamDecoder #5531 [arrow] (tustvold)
- IPC format support for StringViewArray and BinaryViewArray #5525 [arrow] (XiangpengHao)
- parquet: Use specific error variant when codec is disabled #5521 [parquet] (progval)
- impl
From<ScalarBuffer<T>>forVec<T>#5518 [arrow] (mbrobbel)
-
51.0.018 Mar 2024Release notes
Open source →Breaking changes:
- Remove internal buffering from AsyncArrowWriter (#5484) #5485 [parquet] (tustvold)
- Make ArrayBuilder also Sync #5353 [arrow] (dvic)
- Raw JSON writer (~10x faster) (#5314) #5318 [arrow] (tustvold)
Implemented enhancements:
- Prototype Arrow over HTTP in Rust #5496 [arrow]
- Add DataType::ListView and DataType::LargeListView #5492 [parquet] [arrow]
- Improve documentation around handling of dictionary arrays in arrow flight #5487 [arrow] [arrow-flight]
- Better memory limiting in parquet
ArrowWriter#5484 [parquet] - Support Creating Non-Nullable Lists and Maps within a Struct #5482 [arrow]
- [DISCUSSION] Better borrow propagation (e.g.
RecordBatch::schema()to return&SchemaRefvsSchemaRef) #5463 [parquet] [arrow] [arrow-flight] - Build Scalar with ArrayRef #5459
- AsyncArrowWriter doesn't limit underlying ArrowWriter to respect buffer-size #5450 [parquet]
- Refine
Displayimplementation forFlightError#5438 [arrow] [arrow-flight] - Better ergonomics for
FixedSizeListandLargeList#5372 [arrow] - Update Flight proto #5367 [arrow] [arrow-flight]
- Support check similar datatype but with different magnitudes #5358 [arrow]
- Buffer memory usage for custom allocations is reported as 0 #5346 [arrow]
- Can the ArrayBuilder trait be made Sync? #5344 [arrow]
- support cast 'UTF8' to
FixedSizeList#5339 [arrow] - Support Creating Non-Nullable Lists with ListBuilder #5330 [arrow]
ParquetRecordBatchStreamBuilder::new()panics instead of erroring out when opening a corrupted file #5315 [parquet]- Raw JSON Writer #5314 [arrow]
- Add support for more fused boolean operations #5297 [arrow]
- parquet: Allow disabling embed
ARROW_SCHEMA_META_KEYadded by theArrowWriter#5296 [parquet] - Support casting strings like '2001-01-01 01:01:01' to Date32 #5280 [arrow]
- Temporal Extract/Date Part Kernel #5266 [arrow]
- Support for extracting hours/minutes/seconds/etc. from
Time32/Time64type in temporal kernels #5261 [arrow] - parquet: add method to get both the inner writer and the file metadata when closing SerializedFileWriter #5253 [parquet]
- Release arrow-rs version 50.0.0 #5234
Fixed bugs:
- Empty String Parses as Zero in Unreleased Arrow #5504 [arrow]
- Unused import in nightly rust #5476 [parquet] [arrow] [arrow-flight]
- Error
The data type type List .. has no natural orderwhen usingarrow::compute::lexsort_to_indiceswith list and more than one column #5454 [arrow] - Wrong size assertion in arrow_buffer::builder::NullBufferBuilder::new_from_buffer #5445 [arrow]
- Inconsistency between comments and code implementation #5430 [arrow]
- OOB access in
Buffer::from_iter#5412 [arrow] - Cast kernel doesn't return null for string to integral cases when overflowing under safe option enabled #5397 [arrow]
- Make ffi consume variable layout arrays with empty offsets #5391 [arrow]
- RecordBatch conversion from pyarrow loses Schema's metadata #5354 [arrow]
- Debug output of Time32/Time64 arrays with invalid values has confusing nulls #5336 [arrow]
- Removing a column from a
RecordBatchdrops schema metadata #5327 [arrow] - Panic when read an empty parquet file #5304 [parquet]
- How to enable statistics for string columns? #5270 [parquet]
concat::tests::test_string_dictionary_merge failurefails on Mac / has different results in different platforms #5255 [arrow]
Documentation updates:
- Minor: Add doc comments to
GenericByteViewArray#5512 [arrow] (alamb) - Improve docs for logical and physical nulls even more #5434 [arrow] (alamb)
- Add example of converting RecordBatches to JSON objects #5364 [arrow] (alamb)
Performance improvements:
Closed issues:
- Add
StringViewArrayimplementation and layout and basic construction + tests #5469 [parquet] [arrow] - Add
DataType::Utf8ViewandDataType::BinaryView#5468 [parquet] [arrow]
Merged pull requests:
- Deprecate array_to_json_array #5515 [arrow] (tustvold)
- Fix integer parsing of empty strings (#5504) #5505 [arrow] (tustvold)
- feat: clarifying comments in struct_builder.rs #5494 #5499 [arrow] (istvan-fodor)
- Update proc-macro2 requirement from =1.0.78 to =1.0.79 #5498 [arrow] [arrow-flight] (dependabot[bot])
- Add DataType::ListView and DataType::LargeListView #5493 [parquet] [arrow] (Kikkon)
- Better document parquet pushdown #5491 [parquet] (tustvold)
- Fix NullBufferBuilder::new_from_buffer wrong size assertion #5489 [arrow] (Kikkon)
- Support dictionary encoding in structures for
FlightDataEncoder, add documentation forarrow_flight::encode::Dictionary#5488 [arrow] [arrow-flight] (thinkharderdev) - Add MapBuilder::with_values_field to support non-nullable values (#5482) #5483 [arrow] (lasantosr)
- feat: initial support string_view and binary_view, supports layout and basic construction + tests #5481 [arrow] (ariesdevil)
- Add more comprehensive documentation on testing and benchmarking to CONTRIBUTING.md #5478 (monkwire)
- Remove unused import detected by nightly rust #5477 [parquet] [arrow] [arrow-flight] (XiangpengHao)
- Add RecordBatch::schema_ref #5474 [parquet] [arrow] [arrow-flight] (monkwire)
- Provide access to inner Write for parquet writers #5471 [parquet] (tustvold)
- Add DataType::Utf8View and DataType::BinaryView #5470 [parquet] [arrow] (XiangpengHao)
- Update base64 requirement from 0.21 to 0.22 #5467 [parquet] [arrow] [arrow-flight] (dependabot[bot])
- Minor: Fix formatting typo in
Field::new_list_field#5464 [arrow] (alamb) - Fix test_string_dictionary_merge (#5255) #5461 [arrow] (tustvold)
- Use Vec::from_iter in Buffer::from_iter #5460 [arrow] (Kikkon)
- Document parquet writer memory limiting (#5450) #5457 [parquet] (tustvold)
- Document UnionArray Panics #5456 [arrow] (Kikkon)
- fix: lexsort_to_indices unsupported mixed types with list #5455 [arrow] (alamb)
- Refine
DisplayandSourceimplementation for error types #5439 [arrow] [arrow-flight] (BugenZhao) - Improve debug output of Time32/Time64 arrays #5428 [arrow] (monkwire)
- Miri fix: Rename invalid_mut to without_provenance_mut #5418 [arrow] (Jefffrey)
- Ensure addition/multiplications in when allocating buffers don't overflow #5417 [arrow] (Jefffrey)
- Update Flight proto: PollFlightInfo & expiration time #5413 [arrow] [arrow-flight] (Jefffrey)
- Add tests for serializing lists of dictionary encoded values to json #5399 [arrow] (jhorstmann)
- Return null for overflow when casting string to integer under safe option enabled #5398 [arrow] (viirya)
- Propagate error instead of panic for
take_bytes#5395 [arrow] (viirya) - Improve like kernel by ~2% #5390 [arrow] (psvri)
- Enable running arrow-array and arrow-arith with miri and avoid strict provenance warning #5387 [arrow] (jhorstmann)
- Update to chrono 0.4.34 #5385 [arrow] (tustvold)
- Return error instead of panic when reading invalid Parquet metadata #5382 [parquet] (mmaitre314)
- Update tonic requirement from 0.10.0 to 0.11.0 #5380 [arrow] [arrow-flight] (dependabot[bot])
- Update tonic-build requirement from =0.10.2 to =0.11.0 #5379 [arrow] [arrow-flight] (dependabot[bot])
- Fix latest clippy lints #5376 [arrow] (tustvold)
- feat: utility functions for creating
FixedSizeListandLargeListdtypes #5373 [arrow] (universalmind303) - Minor(docs): update master to main for DataFusion/Ballista #5363 (caicancai)
- Return an error instead of a panic when reading a corrupted Parquet file with mismatched column counts #5362 [parquet] (mmaitre314)
- feat: support casting FixedSizeList with new child type #5360 [arrow] (wjones127)
- Add more debugging info to StructBuilder validate_content #5357 [arrow] (viirya)
- pyarrow: Preserve RecordBatch's schema metadata #5355 [arrow] (atwam)
- Mark Encoding::BIT_PACKED as deprecated and document its compatibility issues #5348 [parquet] (jhorstmann)
- Track the size of custom allocations for use via Array::get_buffer_memory_size #5347 [arrow] (jhorstmann)
- fix: Return an error on type mismatch rather than panic (#4995) #5341 [parquet] (carols10cents)
- Minor: support cast values to fixedsizelist #5340 [arrow] (Weijun-H)
- Enhance Time32/Time64 support in date_part #5337 [arrow] (Jefffrey)
- feat: add
take_record_batch. #5333 [arrow] (RinChanNOWWW) - Add ListBuilder::with_field to support non nullable list fields (#5330) #5331 [arrow] (tustvold)
- Don't omit schema metadata when removing column #5328 [arrow] (kylebarron)
- Update proc-macro2 requirement from =1.0.76 to =1.0.78 #5324 [arrow] [arrow-flight] (dependabot[bot])
- Enhance Date64 type documentation #5323 [arrow] (Jefffrey)
- fix panic when decode a group with no child #5322 [parquet] (Liyixin95)
- Minor/Doc Expand FlightSqlServiceClient::handshake doc #5321 [arrow] [arrow-flight] (devinjdangelo)
- Refactor temporal extract date part kernels #5319 [arrow] (Jefffrey)
- Add JSON writer benchmarks (#5314) #5317 [arrow] (tustvold)
- Bump actions/cache from 3 to 4 #5308 (dependabot[bot])
- Avro block decompression #5306 [arrow] (tustvold)
- Result into error in case of endianness mismatches #5301 [arrow] (pangiole)
- parquet: Add ArrowWriterOptions to skip embedding the arrow metadata #5299 [parquet] (evenyag)
- Add support for more fused boolean operations #5298 [arrow] (RTEnzyme)
- Support Parquet Byte Stream Split Encoding #5293 [parquet] (mwlon)
- Extend string parsing support for Date32 #5282 [arrow] (gruuya)
- Bring some methods over from ArrowWriter to the async version #5251 [parquet] (AdamGS)
-
50.0.012 Jan 2024Release notes
Open source →Breaking changes:
- Make regexp_match take scalar pattern and flag #5245 [arrow] (viirya)
- Use Vec in ColumnReader (#5177) #5193 [parquet] (tustvold)
- Remove SIMD Feature #5184 [arrow] (tustvold)
- Use Total Ordering for Aggregates and Refactor for Better Auto-Vectorization #5100 [arrow] (jhorstmann)
- Allow the
zipcompute function to operator onScalarvalues viaDatum#5086 [arrow] (Nathan-Fenner) - Improve C Data Interface and Add Integration Testing Entrypoints #5080 [arrow] (pitrou)
- Parquet: read/write f16 for Arrow #5003 [parquet] (Jefffrey)
Implemented enhancements:
- Support get offsets or blocks info from arrow file. #5252 [arrow]
- Make regexp_match take scalar pattern and flag #5246 [arrow]
- Cannot access pen state website on arrow-row #5238 [arrow]
- RecordBatch with_schema's error message is hard to read #5227 [arrow]
- Support cast between StructArray. #5219 [arrow]
- Remove nightly-only simd feature and related code in ArrowNumericType #5185 [arrow]
- Use Vec instead of Slice in ColumnReader #5177 [parquet]
- Request to Memmap Arrow IPC files on disk #5153 [arrow]
- GenericColumnReader::read_records Yields Truncated Records #5150 [parquet]
- Nested Schema Projection #5148 [parquet] [arrow]
- Support specifying
quoteandescapein CsvWriterBuilder#5146 [arrow] - Support casting of Float16 with other numeric types #5138 [arrow]
- Parquet: read parquet metadata with page index in async and with size hints #5129 [parquet]
- Cast from floating/timestamp to timestamp/floating #5122 [arrow]
- Support Casting List To/From LargeList in Cast Kernel #5113 [arrow]
- Expose a path for converting
bytes::Bytesintoarrow_buffer::Bufferwithout copy #5104 [arrow] - API inconsistency of ListBuilder make it hard to use as nested builder #5098 [arrow]
- Parquet: don't truncate min/max statistics for float16 and decimal when writing file #5075 [parquet]
- Parquet: derive boundary order when writing columns #5074 [parquet]
- Support new Arrow PyCapsule Interface for Python FFI #5067 [arrow]
48.0.1arrow patch release #5050 [parquet] [arrow]- Binary columns do not receive truncated statistics #5037 [parquet]
- Re-evaluate Explicit SIMD Aggregations #5032 [arrow]
- Min/Max Kernels Should Use Total Ordering #5031 [arrow]
- Allow
zipcompute kernel to takeScalar/Datum#5011 [arrow] - Add Float16/Half-float logical type to Parquet #4986 [parquet]
- feat: cast (Large)List to FixedSizeList #5081 [arrow] (wjones127)
- Update Parquet Encoding Documentation #5051 [parquet]
Fixed bugs:
- json schema inference can't handle null field turned into object field in subsequent rows #5215 [arrow]
- Invalid trailing content after
Zin timezone is ignored #5182 [arrow] - Take panics on a fixed size list array when given null indices #5169 [arrow]
- EnabledStatistics::Page does not take effect on ByteArrayEncoder #5162 [parquet]
- Parquet: ColumnOrder not being written when writing parquet files #5152 [parquet]
- Parquet: Interval columns shouldn't write min/max stats #5145 [parquet]
- cast
Utf8to decimal failure #5127 [arrow] - coerce_primitive not honored when decoding from serde object #5095 [arrow]
- Unsound MutableArrayData Constructor #5091 [arrow]
- RowGroupReader.get_row_iter() fails with Path ColumnPath not found #5064 [parquet]
- cast format 'yyyymmdd' to Date32 give a error #5044 [arrow]
Performance improvements:
Closed issues:
- Working example of list_flights with ObjectStore #5116
- (object_store) Error broken pipe on S3 multipart upload #5106
Merged pull requests:
- Update parquet object_store dependency to 0.9.0 #5290 [parquet] (tustvold)
- Update proc-macro2 requirement from =1.0.75 to =1.0.76 #5289 [arrow] [arrow-flight] (dependabot[bot])
- Enable JS tests again #5287 (domoritz)
- Update proc-macro2 requirement from =1.0.74 to =1.0.75 #5279 [arrow] [arrow-flight] (dependabot[bot])
- Update proc-macro2 requirement from =1.0.73 to =1.0.74 #5271 [arrow] [arrow-flight] (dependabot[bot])
- Update proc-macro2 requirement from =1.0.71 to =1.0.73 #5265 [arrow] [arrow-flight] (dependabot[bot])
- Update docs for datatypes #5260 [arrow] (Jefffrey)
- Don't suppress errors in ArrowArrayStreamReader #5256 [arrow] (tustvold)
- Add IPC FileDecoder #5249 [arrow] (tustvold)
- optimize the next function of ArrowArrayStreamReader #5248 [arrow] (doki23)
- ci: Fail Miri CI on first failure #5243 (Jefffrey)
- Remove 'unwrap' from Result #5241 [parquet] (zeevm)
- Update arrow-row docs URL #5239 [arrow] (thomas-k-cameron)
- Improve regexp kernels performance by avoiding cloning Regex #5235 [arrow] (viirya)
- Update proc-macro2 requirement from =1.0.70 to =1.0.71 #5231 [arrow] [arrow-flight] (dependabot[bot])
- Minor: Improve comments and errors for ArrowPredicate #5230 [parquet] (alamb)
- Bump actions/upload-pages-artifact from 2 to 3 #5229 (dependabot[bot])
- make with_schema's error more readable #5228 [arrow] (shuoli84)
- Use
try_newwhen casting between structs to propagate error #5226 [arrow] (viirya) - feat(cast): support cast between struct #5221 [arrow] (my-vegetable-has-exploded)
- Add
entriestoMapBuilderto return both key and value array builders #5218 [arrow] (viirya) - fix(json): fix inferring object after field was null #5216 [arrow] (kskalski)
- Support MapBuilder in make_builder #5210 [arrow] (viirya)
- impl
From<OffsetBuffer<T>>forScalarBuffer<T>#5203 [arrow] (mbrobbel) - impl
From<BufferBuilder<T>>forBuffer#5202 [arrow] (mbrobbel) - impl
From<BufferBuilder<T>>forScalarBuffer<T>#5201 [arrow] (mbrobbel) - feat: Support quote and escape in Csv WriterBuilder #5196 [arrow] (my-vegetable-has-exploded)
- chore: simplify cast_string_to_interval #5195 [arrow] (jackwener)
- Clarify interval comparison behavior with documentation and tests #5192 [arrow] (alamb)
- Add
BooleanArray::into_partsmethod #5191 [arrow] (mbrobbel) - Fix deprecated note for
Buffer::from_raw_parts#5190 [arrow] (mbrobbel) - Fix: Ensure Timestamp Parsing Rejects Characters After 'Z #5189 [arrow] (razeghi71)
- Simplify parquet statistics generation #5183 [parquet] (tustvold)
- Parquet: Ensure page statistics are written only when conifgured from the Arrow Writer #5181 [parquet] (AdamGS)
- Blockwise IO in IPC FileReader (#5153) #5179 [arrow] (tustvold)
- Replace ScalarBuffer in Parquet with Vec (#1849) (#5177) #5178 [parquet] (tustvold)
- Bump actions/setup-python from 4 to 5 #5175 (dependabot[bot])
- Add
LargeListBuildertomake_builder#5171 [arrow] (viirya) - fix: ensure take_fixed_size_list can handle null indices #5170 (westonpace)
- Removing redundant
as castsin parquet #5168 [parquet] (psvri) - Bump actions/labeler from 4.3.0 to 5.0.0 #5167 (dependabot[bot])
- improve: make RunArray displayable #5166 [arrow] (yukkit)
- ci: Add cargo audit CI action #5160 [arrow] (Jefffrey)
- Parquet: write column_orders in FileMetaData #5158 [parquet] (Jefffrey)
- Adding
is_nulldatatype shortcut method #5157 [arrow] (comphead) - Parquet: don't truncate f16/decimal min/max stats #5154 [parquet] (Jefffrey)
- Support nested schema projection (#5148) #5149 [arrow] (tustvold)
- Parquet: omit min/max for interval columns when writing stats #5147 [parquet] (Jefffrey)
- Deprecate Fields::remove and Schema::remove #5144 [arrow] (tustvold)
- Support casting of Float16 with other numeric types #5139 [arrow] (viirya)
- Parquet: Make
MetadataLoaderpublic #5137 [parquet] (AdamGS) - Add FileReaderBuilder for arrow-ipc to allow reading large no. of column files #5136 [arrow] (Jefffrey)
- Parquet: clear metadata and project fields of ParquetRecordBatchStream::schema #5135 [parquet] (Jefffrey)
- JSON: write struct array nulls as null #5133 [arrow] (Jefffrey)
- Update proc-macro2 requirement from =1.0.69 to =1.0.70 #5131 [arrow] [arrow-flight] (dependabot[bot])
- Fix negative decimal string #5128 [arrow] (viirya)
- Cleanup list casting and support nested lists (#5113) #5124 [arrow] (tustvold)
- Cast from numeric/timestamp to timestamp/numeric #5123 [arrow] (viirya)
- Improve cast docs #5114 [arrow] (tustvold)
- Update prost-build requirement from =0.12.2 to =0.12.3 #5112 [arrow] [arrow-flight] (dependabot[bot])
- Parquet: derive boundary order when writing #5110 [parquet] (Jefffrey)
- Implementing
ArrayBuilderforBox<dyn ArrayBuilder>#5109 [arrow] (viirya) - Fix 'ColumnPath not found' error reading Parquet files with nested REPEATED fields #5102 [parquet] (mmaitre314)
- fix: coerce_primitive for serde decoded data #5101 [arrow] (fansehep)
- Extend aggregation benchmarks #5096 [arrow] (jhorstmann)
- Expand parquet crate overview doc #5093 [parquet] (mmaitre314)
- Ensure arrays passed to MutableArrayData have same type (#5091) #5092 [arrow] (tustvold)
- Update prost-build requirement from =0.12.1 to =0.12.2 #5088 [arrow] [arrow-flight] (dependabot[bot])
- Add FFI from_raw #5082 [arrow] (tustvold)
- [fix #5044] Support converting 'yyyymmdd' format to date #5078 [arrow] (Tangruilin)
- Enable truncation of binary statistics columns #5076 [parquet] (emcake)
-
49.0.013 Nov 2023Release notes
Open source →Breaking changes:
- Return row count when inferring schema from JSON #5008 [arrow] (asayers)
- Update object_store 0.8.0 #5043 [parquet] (tustvold)
Implemented enhancements:
- Cast from integer/timestamp to timestamp/integer #5039 [arrow]
- Support casting from integer to binary #5014 [arrow]
- Return row count when inferring schema from JSON #5007 [arrow]
- [FlightSQL] Allow custom commands in get-flight-info #4996 [arrow] [arrow-flight]
- Support
RecordBatch::remove_column()andSchema::remove_field()#4952 [arrow] arrow_json: supportbinarydeserialization #4945 [arrow]- Support StructArray in Cast Kernel #4908 [arrow]
- There exists a
ParquetRecordWriterproc macro inparquet_derive, butParquetRecordReaderis missing #4772 [parquet]
Fixed bugs:
- Regression when serializing large json numbers #5038 [arrow]
- RowSelection::intersection Produces Invalid RowSelection #5036 [parquet]
- Incorrect comment on arrow::compute::kernels::sort::sort_to_indices #5029 [arrow]
Documentation updates:
Merged pull requests:
- Parquet f32/f64 handle signed zeros in statistics #5048 [parquet] (Jefffrey)
- Fix serialization of large integers in JSON (#5038) #5042 [arrow] (tustvold)
- Fix RowSelection::intersection (#5036) #5041 [parquet] (tustvold)
- Cast from integer/timestamp to timestamp/integer #5040 [arrow] (viirya)
- doc: update comment on sort_to_indices to reflect correct ordering #5033 [arrow] (westonpace)
- Support casting from integer to binary #5015 [arrow] (viirya)
- Update tracing-log requirement from 0.1 to 0.2 #4998 [arrow] [arrow-flight] (dependabot[bot])
- feat(flight-sql): Allow custom commands in get-flight-info #4997 [arrow] [arrow-flight] (amartins23)
- [MINOR] No need to jump to web pages #4994 (smallzhongfeng)
- Support metadata in SchemaBuilder #4987 [arrow] (tustvold)
- feat: support schema change by idx and reverse #4985 [arrow] (fansehep)
- Bump actions/setup-node from 3 to 4 #4982 (dependabot[bot])
- Add arrow_cast::base64 and document usage in arrow_json #4975 [arrow] (tustvold)
- Add SchemaBuilder::remove (#4952) #4964 [arrow] (tustvold)
- Add
Field::remove(),Schema::remove(), andRecordBatch::remove_column()APIs #4959 [arrow] (Folyd) - Add
RecordReadertrait and proc macro to implement it for a struct #4773 [parquet] (Joseph-Rance)
-
48.0.113 Nov 2023Nothing published for this version
-
48.0.023 Oct 2023Release notes
Open source →Breaking changes:
- Evaluate null_regex for string type in csv (now such values will be parsed as
Nullrather than"") #4942 [arrow] (haohuaijin) - fix(csv)!: infer null for empty column. #4910 [arrow] (kskalski)
- feat: log headers/trailers in flight CLI (+ minor fixes) #4898 [arrow] [arrow-flight] (crepererum)
- fix(arrow-json)!: include null fields in schema inference with a type of Null #4894 [arrow] (kskalski)
- Mark OnCloseRowGroup Send #4893 [parquet] (devinjdangelo)
- Specialize Thrift Decoding (~40% Faster) (#4891) #4892 [parquet] (tustvold)
- Make ArrowRowGroupWriter Public and SerializedRowGroupWriter Send #4850 [parquet] (devinjdangelo)
Implemented enhancements:
- Allow schema fields to merge with
Nulldatatype #4901 [arrow] - Add option to FlightDataEncoder to always send dictionaries #4895 [arrow] [arrow-flight]
- Rework Thrift Encoding / Decoding of Parquet Metadata #4891 [parquet]
- Plans for supporting Extension Array to support Fixed shape tensor Array #4890
- Implement Take for UnionArray #4882 [arrow]
- Check precision overflow for casting floating to decimal #4865 [arrow]
- Replace lexical #4774 [arrow]
- Add read access to settings in
csv::WriterBuilder#4735 [arrow] - Improve the performance of "DictionaryValue" row encoding #4712 [arrow] [arrow-flight]
Fixed bugs:
- Should we make blank values and empty string to
Nonein csv? #4939 [arrow] - [FlightSQL] SubstraitPlan structure is not exported #4932 [arrow] [arrow-flight]
- Loading page index breaks skipping of pages with nested types #4921 [parquet]
- CSV schema inference assumes
Utf8for empty columns #4903 [arrow] - parquet: Field Ids are not read from a Parquet file without serialized arrow schema #4877 [parquet]
- make_primitive_scalar function loses DataType Internal information #4851 [arrow]
- StructBuilder doesn't handle nulls correctly for empty structs #4842 [arrow]
NullArray::is_null()returnsfalseincorrectly #4835 [arrow]- cast_string_to_decimal should check precision overflow #4829 [arrow]
- Null fields are omitted by
infer_json_schema_from_seekable#4814 [arrow]
Closed issues:
Merged pull requests:
- Assume Pages Delimit Records When Offset Index Loaded (#4921) #4943 [parquet] (tustvold)
- Update pyo3 requirement from 0.19 to 0.20 #4941 [arrow] (crepererum)
- Add
FileWriterschema getter #4940 [arrow] (haixuanTao) - feat: support parsing for parquet writer option #4938 [parquet] (fansehep)
- Export
SubstraitPlanstructure in arrow_flight::sql (#4932) #4933 [arrow] [arrow-flight] (amartins23) - Update zstd requirement from 0.12.0 to 0.13.0 #4923 [parquet] [arrow] (dependabot[bot])
- feat: add method for async read bloom filter #4917 [parquet] (hengfeiyang)
- Minor: Clarify rationale for
FlightDataEncoderAPI, add examples #4916 [arrow] [arrow-flight] (alamb) - Update regex-syntax requirement from 0.7.1 to 0.8.0 #4914 [arrow] (dependabot[bot])
- feat: document & streamline flight SQL CLI #4912 [arrow] [arrow-flight] (crepererum)
- Support Arbitrary JSON values in JSON Reader (#4905) #4911 [arrow] (tustvold)
- Cleanup CSV WriterBuilder, Default to AutoSI Second Precision (#4735) #4909 [arrow] (tustvold)
- Update proc-macro2 requirement from =1.0.68 to =1.0.69 #4907 [arrow] [arrow-flight] (dependabot[bot])
- chore: add csv example #4904 [arrow] (fansehep)
- feat(schema): allow null fields to be merged with other datatypes #4902 [arrow] (kskalski)
- Update proc-macro2 requirement from =1.0.67 to =1.0.68 #4900 [arrow] [arrow-flight] (dependabot[bot])
- Add option to
FlightDataEncoderto always resend batch dictionaries #4896 [arrow] [arrow-flight] (alexwilcoxson-rel) - Fix integration tests #4889 (tustvold)
- Support Parsing Avro File Headers #4888 (tustvold)
- Support parquet bloom filter length #4885 [parquet] (letian-jiang)
- Replace lz4 with lz4_flex Allowing Compilation for WASM #4884 [parquet] [arrow] (tustvold)
- Implement Take for UnionArray #4883 [arrow] (avantgardnerio)
- Update tonic-build requirement from =0.10.1 to =0.10.2 #4881 [arrow] [arrow-flight] (dependabot[bot])
- parquet: Read field IDs from Parquet Schema #4878 [parquet] (Samrose-Ahmed)
- feat: improve flight CLI error handling #4873 [arrow] [arrow-flight] (crepererum)
- Support Encoding Parquet Columns in Parallel #4871 [parquet] (tustvold)
- Check precision overflow for casting floating to decimal #4866 [arrow] (viirya)
- Make align_buffers as public API #4863 [arrow] (viirya)
- Enable new integration tests (#4828) #4862 (tustvold)
- Faster Serde Integration (~80% faster) #4861 [arrow] (tustvold)
- fix: make_primitive_scalar bug #4852 [arrow] (JasonLi-cn)
- Update tonic-build requirement from =0.10.0 to =0.10.1 #4846 [arrow] [arrow-flight] (dependabot[bot])
- Allow Constructing Non-Empty StructArray with no Fields (#4842) #4845 [arrow] (tustvold)
- Refine documentation to
Array::is_null#4838 [arrow] (alamb) - fix: add missing precision overflow checking for
cast_string_to_decimal#4830 [arrow] (jonahgao)
- Evaluate null_regex for string type in csv (now such values will be parsed as
-
47.0.022 Sep 2023Release notes
Open source →Breaking changes:
- Make FixedSizeBinaryArray value_data return a reference #4820 [arrow]
- Update prost to v0.12.1 #4825 [arrow] [arrow-flight] (tustvold)
- feat: FixedSizeBinaryArray::value_data return reference #4821 [arrow] (wjones127)
- Stateless Row Encoding / Don't Preserve Dictionaries in
RowConverter(#4811) #4819 [arrow] [arrow-flight] (tustvold) - fix: entries field is non-nullable #4808 [arrow] (wjones127)
- Fix flight sql do put handling, add bind parameter support to FlightSQL cli client #4797 [arrow] [arrow-flight] (suremarc)
- Remove unused dyn_cmp_dict feature #4766 [arrow] (tustvold)
- Add underlying
std::io::ErrortoIoErrorand addIpcErrorvariant #4726 [arrow] [arrow-flight] (alexandreyc)
Implemented enhancements:
- Row Format Adapative Block Size #4812 [arrow]
- Stateless Row Conversion #4811 [arrow] [arrow-flight]
- Add option to specify custom null values for CSV reader #4794 [arrow]
- parquet::record::RowIter cannot be customized with batch_size and defaults to 1024 #4782 [parquet]
DynScalarabstraction (something that makes it easy to create scalarDatums) #4781 [arrow]Datumis not exported as part ofarrow(it is only exported inarrow_array) #4780 [arrow]Scalaris not exported as part ofarrow(it is only exported inarrow_array) #4779 [arrow]- Support IntoPyArrow for impl RecordBatchReader #4730 [arrow]
- Datum Based String Kernels #4595 [arrow] [arrow-flight]
Fixed bugs:
- MapArray::new_from_strings creates nullable entries field #4807 [arrow]
- pyarrow module can't roundtrip tensor arrays #4805 [arrow]
concat_batcheserrors with "schema mismatch" error when only metadata differs #4799 [arrow]- panic in
cmpkernels with DictionaryArrays:Option::unwrap()on aNonevalue' #4788 [arrow] - stream ffi panics if schema metadata values aren't valid utf8 #4750 [arrow]
- Regression: Incorrect Sorting of
*ListArrayin 46.0.0 #4746 [arrow] - Row is no longer comparable after reuse #4741 [arrow]
- DoPut FlightSQL handler inadvertently consumes schema at start of Request<Streaming<FlightData>> #4658
- Return error when converting schema #4752 [arrow] (wjones127)
- Implement PyArrowType for
Box<dyn RecordBatchReader + Send>#4751 [arrow] (wjones127)
Closed issues:
- Building arrow-rust for target wasm32-wasi falied to compile packed_simd_2 #4717
Merged pull requests:
- Respect FormatOption::nulls for NullArray #4836 [arrow] (tustvold)
- Fix merge_dictionary_values in selection kernels #4833 [arrow] (tustvold)
- Fix like scalar null #4832 [arrow] (tustvold)
- More chrono deprecations #4822 [arrow] (tustvold)
- Adaptive Row Block Size (#4812) #4818 [arrow] (tustvold)
- Update proc-macro2 requirement from =1.0.66 to =1.0.67 #4816 [arrow] [arrow-flight] (dependabot[bot])
- Do not check schema for equality in concat_batches #4815 [arrow] (alamb)
- fix: export record batch through stream #4806 [arrow] (wjones127)
- Improve CSV Reader Benchmark Coverage of Small Primitives #4803 [arrow] (tustvold)
- csv: Add option to specify custom null values #4795 [arrow] (vrongmeal)
- Expand docstring and add example to
Scalar#4793 [arrow] (alamb) - Re-export array crate root (#4780) (#4779) #4791 [arrow] (tustvold)
- Fix DictionaryArray::normalized_keys (#4788) #4789 [arrow] (tustvold)
- Allow custom tree builder for parquet::record::RowIter #4783 [parquet] (YuraKotov)
- Bump actions/checkout from 3 to 4 #4767 (dependabot[bot])
- fix: avoid panic if offset index not exists. #4761 [parquet] (RinChanNOWWW)
- Relax constraints on PyArrowType #4757 (tustvold)
- Chrono deprecations #4748 [arrow] (tustvold)
- Fix List Sorting, Revert Removal of Rank Kernels #4747 [arrow] (tustvold)
- Clear row buffer before reuse #4742 [arrow] (yjshen)
- Datum based like kernels (#4595) #4732 [arrow] [arrow-flight] (tustvold)
- feat: expose DoGet response headers & trailers #4727 [arrow] [arrow-flight] (crepererum)
- Cleanup length and bit_length kernels #4718 [arrow] (tustvold)
-
46.0.024 Aug 2023Release notes
Open source →Breaking changes:
- API improvement:
batches_to_flight_dataforces clone #4656 [arrow] - Add AnyDictionary Abstraction and Take ArrayRef in DictionaryArray::with_values #4707 [arrow] (tustvold)
- Cleanup parquet type builders #4706 [parquet] (tustvold)
- Take kernel dyn Array #4705 [arrow] (tustvold)
- Improve ergonomics of Scalar #4704 [arrow] (tustvold)
- Datum based comparison kernels (#4596) #4701 [parquet] [arrow] [arrow-flight] (tustvold)
- Improve
ArrayLogical Nullability #4691 [parquet] [arrow] (tustvold) - Validate ArrayData Buffer Alignment and Automatically Align IPC buffers (#4255) #4681 [arrow] (tustvold)
- More intuitive bool-to-string casting #4666 [arrow] (fsdvh)
- enhancement: batches_to_flight_data use a schema ref as param. #4665 [arrow] [arrow-flight] (jackwener)
- fix: from_thrift avoid panic when stats in invalid. #4642 [parquet] (jackwener)
- bug: Add some missing field in row group metadata: ordinal, total co… #4636 [parquet] (liurenjie1024)
- Remove deprecated limit kernel #4597 [arrow] (tustvold)
Implemented enhancements:
- parquet: support setting the field_id with an ArrowWriter #4702 [parquet]
- Support references in i256 arithmetic ops #4694 [arrow]
- Precision-Loss Decimal Arithmetic #4664 [arrow]
- Faster i256 Division #4663 [arrow]
- Support
concat_batchesfor 0 columns #4661 [arrow] filter_record_batchshould support filtering record batch without columns #4647 [arrow]- Improve speed of
lexicographical_partition_ranges#4614 [arrow] - object_store: multipart ranges for HTTP #4612
- Add Rank Function #4606 [arrow]
- Datum Based Comparison Kernels #4596 [parquet] [arrow] [arrow-flight]
- Convenience method to create
DataType::Listcorrectly #4544 [arrow] - Remove Deprecated Arithmetic Kernels #4481 [arrow]
- Equality kernel where null==null gives true #4438 [arrow]
Fixed bugs:
- Parquet ArrowWriter Ignores Nulls in Dictionary Values #4690 [parquet] [arrow]
- Schema Nullability Validation Fails to Account for Dictionary Nulls #4689 [parquet] [arrow]
- Comparison Kernels Ignore Nulls in Dictionary Values #4688 [parquet] [arrow]
- Casting List to String Ignores Format Options #4669 [arrow]
- Double free in C Stream Interface #4659 [arrow]
- CI Failing On Packed SIMD #4651 [arrow]
RowInterner::size()much too low for high cardinality dictionary columns #4645 [arrow]- Decimal PrimitiveArray change datatype after try_unary #4644
- Better explanation in docs for Dictionary field encoding using RowConverter #4639 [arrow]
List(FixedSizeBinary)array equality check may return wrong result #4637 [arrow]arrow::compute::nullifpanics ifNullArrayis provided #4634 [arrow]- Empty lists in FixedSizeListArray::try_new is not handled #4623 [arrow]
- Bounds checking in
MutableBuffer::set_null_bitscan be bypassed #4620 [arrow] - TypedDictionaryArray Misleading Null Behaviour #4616 [parquet] [arrow]
- bug: Parquet writer missing row group metadata fields such as
compressed_size,file offset. #4610 [parquet] new_null_arraygenerates an invalid union array #4600 [arrow]- Footer parsing fails for very large parquet file. #4592 [parquet]
- bug(parquet): Disabling global statistics but enabling for particular column breaks reading #4587 [parquet]
arrow::compute::concatpanics for dense union arrays with non-trivial type IDs #4578 [arrow]
Closed issues:
- [object_store] when Create a AmazonS3 instance work with MinIO without set endpoint got error MissingRegion #4617
Merged pull requests:
- Add distinct kernels (#960) (#4438) #4716 [arrow] (tustvold)
- Update parquet object_store 0.7 #4715 [parquet] (tustvold)
- Support Field ID in ArrowWriter (#4702) #4710 [parquet] (tustvold)
- Remove rank kernels #4703 [arrow] (tustvold)
- Support references in i256 arithmetic ops #4692 [arrow] (viirya)
- Cleanup DynComparator (#2654) #4687 [arrow] (tustvold)
- Separate metadata fetch from
ArrowReaderBuilderconstruction (#4674) #4676 [parquet] (tustvold) - cleanup some assert() with error propagation #4673 [parquet] (zeevm)
- Faster i256 Division (2-100x) (#4663) #4672 [arrow] (tustvold)
- Fix MSRV CI #4671 (tustvold)
- Fix equality of nested nullable FixedSizeBinary (#4637) #4670 [arrow] (tustvold)
- Use ArrayFormatter in cast kernel #4668 [arrow] (tustvold)
- Minor: Improve API docs for FlightSQL metadata builders #4667 [arrow] [arrow-flight] (alamb)
- Support
concat_batchesfor 0 columns #4662 [arrow] (Dandandan) - fix ownership of c stream error #4660 [arrow] (wjones127)
- Minor: Fix illustration for dict encoding #4657 [arrow] (JayjeetAtGithub)
- minor: move comment to the correct location #4655 [arrow] (jackwener)
- Update packed_simd and run miri tests on simd code #4654 [arrow] (jhorstmann)
- impl
From<Vec<T>>forBufferBuilderandMutableBuffer#4650 [arrow] (mbrobbel) - Filter record batch with 0 columns #4648 [arrow] (Dandandan)
- Account for child
Bucketsize in OrderPreservingInterner #4646 [arrow] (alamb) - Implement
Default,ExtendandFromIteratorforBufferBuilder#4638 [arrow] (mbrobbel) - fix(select): handle
NullArrayinnullif#4635 [arrow] (kawadakk) - Move
BufferBuildertoarrow-buffer#4630 [arrow] (mbrobbel) - allow zero sized empty fixed #4626 [arrow] (smiklos)
- fix: compute_dictionary_mapping use wrong offsetSize #4625 [arrow] (jackwener)
- impl
FromIteratorforMutableBuffer#4624 [arrow] (mbrobbel) - expand docs for FixedSizeListArray #4622 [arrow] (smiklos)
- fix(buffer): panic on end index overflow in
MutableBuffer::set_null_bits#4621 [arrow] (kawadakk) - impl
Defaultforarrow_buffer::buffer::MutableBuffer#4619 [arrow] (mbrobbel) - Minor: improve docs and add example for lexicographical_partition_ranges #4615 [arrow] (alamb)
- Cleanup sort #4613 [arrow] (tustvold)
- Add rank function (#4606) #4609 [arrow] (tustvold)
- Add more docs and examples for ListArray and OffsetsBuffer #4607 [arrow] (alamb)
- Simplify dictionary sort #4605 [arrow] (tustvold)
- Consolidate sort benchmarks #4604 [arrow] (tustvold)
- Don't Reorder Nulls in sort_to_indices (#4545) #4603 [arrow] (tustvold)
- fix(data): create child arrays of correct length when building a sparse union null array #4601 [arrow] (kawadakk)
- Use u32 metadata_len when parsing footer of parquet. #4599 [parquet] (Berrysoft)
- fix(data): map type ID to child index before indexing a union child array #4598 [arrow] (kawadakk)
- Remove deprecated arithmetic kernels (#4481) #4594 [arrow] (tustvold)
- Test Disabled Page Statistics (#4587) #4589 [parquet] (tustvold)
- Cleanup ArrayData::buffers #4583 [arrow] (tustvold)
- Use contains_nulls in ArrayData equality of byte arrays #4582 [arrow] (tustvold)
- Vectorized lexicographical_partition_ranges (~80% faster) #4575 [arrow] (tustvold)
- chore: add datatype new_list #4561 [arrow] (fansehep)
- API improvement:
-
45.0.002 Aug 2023Release notes
Open source →Breaking changes:
- Fix timezoned timestamp arithmetic #4546 [arrow] (alexandreyc)
Implemented enhancements:
- Use FormatOptions in Const Contexts #4580 [arrow]
- Human Readable Duration Display #4554 [arrow]
BooleanBuilder: Addvalidity_slicemethod for accessing validity bits #4535 [arrow]- Support
FixedSizedListArrayforlengthkernel #4517 [arrow] RowCoverter::convertthat targets an existingRows#4479 [arrow]
Fixed bugs:
- Panic
assertion failed: idx < self.lenwhen casting DictionaryArrays with nulls #4576 [arrow] - arrow-arith is_null is buggy with NullArray #4565 [arrow]
- Incorrect Interval to Duration Casting #4553 [arrow]
- Too large validity buffer pre-allocation in
FixedSizeListBuilder::new#4549 [arrow] - Like with wildcards fail to match fields with new lines. #4547 [arrow]
- Timestamp Interval Arithmetic Ignores Timezone #4457 [arrow]
Merged pull requests:
- refactor: simplify hour_dyn() with time_fraction_dyn() #4588 [arrow] (jackwener)
- Move from_iter_values to GenericByteArray #4586 [arrow] (tustvold)
- Mark GenericByteArray::new_unchecked unsafe #4584 [arrow] (tustvold)
- Configurable Duration Display #4581 [arrow] (tustvold)
- Fix take_bytes Null and Overflow Handling (#4576) #4579 [arrow] (tustvold)
- Move chrono-tz arithmetic tests to integration #4571 [arrow] (tustvold)
- Write Page Offset Index For All-Nan Pages #4567 [parquet] (MachaelLee)
- support NullArray un arith/boolean kernel #4566 [arrow] (smiklos)
- Remove Sync from arrow-flight example #4564 [arrow] [arrow-flight] (tustvold)
- Fix interval to duration casting (#4553) #4562 [arrow] (tustvold)
- docs: fix wrong parameter name #4559 [parquet] (SteveLauC)
- Fix FixedSizeListBuilder capacity (#4549) #4552 [arrow] (tustvold)
- docs: fix wrong inline code snippet in parquet document #4550 [parquet] (SteveLauC)
- fix multiline wildcard likes (fixes #4547) #4548 [arrow] (nl5887)
- Provide default
is_emptyimpl forarrow::array::ArrayBuilder#4543 [arrow] (mbrobbel) - Add RowConverter::append (#4479) #4541 [arrow] (tustvold)
- Clarify GenericColumnReader::read_records #4540 [parquet] (tustvold)
- Initial loongarch port #4538 [arrow] (xiangzhai)
- Update proc-macro2 requirement from =1.0.64 to =1.0.66 #4537 [arrow] [arrow-flight] (dependabot[bot])
- add a validity slice access for boolean array builders #4536 [arrow] (ChristianBeilschmidt)
- use new num version instead of explicit num-complex dependency #4532 [arrow] (mwlon)
- feat: Support
FixedSizedListArrayforlengthkernel #4520 [arrow] (Weijun-H)
-
44.0.018 Jul 2023Release notes
Open source →Breaking changes:
- Use Parser for cast kernel (#4512) #4513 [arrow] (tustvold)
- Add Datum based arithmetic kernels (#3999) #4465 [arrow] (tustvold)
Implemented enhancements:
- eq_dyn_binary_scalar should support FixedSizeBinary types #4491 [arrow]
- Port Tests from Deprecated Arithmetic Kernels #4480 [arrow]
- Implement RecordBatchReader for Boxed trait object #4474 [arrow]
- Support
Date-Datekernel #4383 [arrow] - Default FlightSqlService Implementations #4372 [arrow] [arrow-flight]
Fixed bugs:
- Parquet:
AsyncArrowWriterto a file corrupts the footer for large columns #4526 [parquet] - [object_store] Failure to send bytes to azure #4522
- Cannot cast string '2021-01-02' to value of Date64 type #4512 [arrow]
- Incorrect Interval Subtraction #4489 [arrow]
- Interval Negation Incorrect #4488 [arrow]
- Parquet: AsyncArrowWriter inner buffer is not correctly limited and causes OOM #4477 [parquet]
Merged pull requests:
- Fix AsyncArrowWriter flush for large buffer sizes (#4526) #4527 [parquet] (tustvold)
- Cleanup cast_primitive_to_list #4511 [arrow] (tustvold)
- Bump actions/upload-pages-artifact from 1 to 2 #4508 (dependabot[bot])
- Support Date - Date (#4383) #4504 [arrow] (tustvold)
- Bump actions/labeler from 4.2.0 to 4.3.0 #4501 (dependabot[bot])
- Update proc-macro2 requirement from =1.0.63 to =1.0.64 #4500 [arrow] [arrow-flight] (dependabot[bot])
- Add negate kernels (#4488) #4494 [arrow] (tustvold)
- Add Datum Arithmetic tests, Fix Interval Substraction (#4480) #4493 [arrow] (tustvold)
- support FixedSizeBinary types in eq_dyn_binary_scalar/neq_dyn_binary_scalar #4492 [arrow] (maxburke)
- Add default implementations to the FlightSqlService trait #4485 [arrow] [arrow-flight] (rossjones)
- add num-complex requirement #4482 [arrow] (mwlon)
- fix incorrect buffer size limiting in parquet async writer #4478 [parquet] (richox)
- feat: support RecordBatchReader on boxed trait objects #4475 [arrow] (wjones127)
- Improve in-place primitive sorts by 13-67% #4473 [arrow] (psvri)
- Add Scalar/Datum abstraction (#1047) #4393 [arrow] (tustvold)
-
43.0.003 Jul 2023Release notes
Open source →Breaking changes:
- Simplify ffi import/export #4447 [arrow] (Virgiel)
- Return Result from Parquet Row APIs #4428 [parquet] (zeevm)
- Remove Binary Dictionary Arithmetic Support #4407 [arrow] (tustvold)
Implemented enhancements:
- Request: a way to copy a
RowtoRows#4466 [arrow] - Reuse schema when importing from FFI #4444 [arrow]
- [FlightSQL] Allow implementations of
FlightSqlServiceto handle custom actions and commands #4439 - Support
NullBuilder#4429 [arrow]
Fixed bugs:
- Regression in in parquet
42.0.0: Bad parquet column indexes for All Null Columns, resulting inParquet error: StructArrayReader out of syncon read #4459 [parquet] - Regression in 42.0.0: Parsing fractional intervals without leading 0 is not supported #4424 [arrow]
Documentation updates:
Merged pull requests:
- Append Row to Rows (#4466) #4470 [arrow] (tustvold)
- feat(flight-sql): Allow implementations of FlightSqlService to handle custom actions and commands #4463 [arrow] [arrow-flight] (amartins23)
- Docs: Add clearer API doc links #4461 [parquet] [arrow] [arrow-flight] (alamb)
- Fix empty offset index for all null columns (#4459) #4460 [parquet] (tustvold)
- Bump peaceiris/actions-gh-pages from 3.9.2 to 3.9.3 #4455 (dependabot[bot])
- Convince the compiler to auto-vectorize the range check in parquet DictionaryBuffer #4453 [parquet] (jhorstmann)
- fix docs deployment #4452 [parquet] [arrow] (xxchan)
- Update indexmap requirement from 1.9 to 2.0 #4451 [arrow] (dependabot[bot])
- Update proc-macro2 requirement from =1.0.60 to =1.0.63 #4450 [arrow] [arrow-flight] (dependabot[bot])
- Bump actions/deploy-pages from 1 to 2 #4449 (dependabot[bot])
- Revise error message in From<Buffer> for ScalarBuffer #4446 [arrow] (viirya)
- minor: remove useless mut #4443 [parquet] [arrow] (jackwener)
- unify substring for binary&utf8 #4442 [arrow] (jackwener)
- Casting fixedsizelist to list/largelist #4433 [arrow] (jayzhan211)
- feat: support
NullBuilder#4430 [arrow] (izveigor) - Remove Float64 -> Float32 cast in IPC Reader #4427 [arrow] (ming08108)
- Parse intervals like
.5the same as0.5#4425 [arrow] (alamb) - feat: add strict mode to json reader #4421 [arrow] (blinkseb)
- Add DictionaryArray::occupancy #4415 [arrow] (tustvold)
-
42.0.020 Jun 2023Release notes
Open source →Breaking changes:
- Remove 64-bit to 32-bit Cast from IPC Reader #4412 [arrow] (ming08108)
- Truncate Min/Max values in the Column Index #4389 [parquet] (AdamGS)
- feat(flight): harmonize server metadata APIs #4384 [arrow] [arrow-flight] (roeap)
- Move record delimiting into ColumnReader (#4365) #4376 [parquet] (tustvold)
- Changed array_to_json_array to take &dyn Array #4370 [arrow] (dadepo)
- Make PrimitiveArray::with_timezone consuming #4366 [parquet] [arrow] (tustvold)
Implemented enhancements:
- Add doc example of constructing a MapArray #4385 [arrow]
- Support
millisecondandmicrosecondfunctions #4374 [arrow] - Changed array_to_json_array to take &dyn Array #4369 [arrow]
- compute::ord kernel for getting min and max of two scalar/array values #4347 [arrow]
- Release 41.0.0 of arrow/arrow-flight/parquet/parquet-derive #4346
- Refactor CAST tests to use new cast array syntax #4336 [arrow]
- pass bytes directly to parquet's KeyValue #4317
- PyArrow conversions could return TypeError if provided incorrect Python type #4312 [arrow]
- Have array_to_json_array support Map #4297 [arrow]
- FlightSQL: Add helpers to create
CommandGetXdbcTypeInforesponses (XdbcInfoValueand builders) #4257 [arrow] [arrow-flight] - Have array_to_json_array support FixedSizeList #4248 [arrow]
- Truncate ColumnIndex ByteArray Statistics #4126 [parquet]
- Arrow compute kernel regards selection vector #4095 [arrow]
Fixed bugs:
- Wrongly calculated data compressed length in IPC writer #4410 [arrow]
- Take Kernel Handles Nullable Indices Incorrectly #4404 [arrow]
- StructBuilder::new Doesn't Validate Builder DataTypes #4397 [arrow]
- Parquet error: Not all children array length are the same! when using RowSelection to read a parquet file #4396
- RecordReader::skip_records Is Incorrect for Repeated Columns #4368 [parquet]
- List-of-String Array panics in the presence of row filters #4365 [parquet]
- Fail to read block compressed gzip files with parquet-fromcsv #4173 [parquet]
Closed issues:
- Have a parquet file not able to be deduped via arrow-rs, complains about Decimal precision? #4356
- Question: Could we move
dict_id, dict_is_orderedinto DataType? #4325
Merged pull requests:
- Fix reading gzip file with multiple gzip headers in parquet-fromcsv. #4419 [parquet] (ghuls)
- Cleanup nullif kernel #4416 [arrow] (tustvold)
- Fix bug in IPC logic that determines if the buffer should be compressed or not #4411 [arrow] (lwpyr)
- Faster unpacking of Int32Type dictionary #4406 [arrow] (tustvold)
- Improve
takekernel performance on primitive arrays, fix bad null index handling (#4404) #4405 [arrow] (tustvold) - More take benchmarks #4403 [arrow] (tustvold)
- Add
BooleanBuffer::new_unsetandBooleanBuffer::new_setandBooleanArray::new_nullconstructors #4402 [arrow] (tustvold) - Add PrimitiveBuilder type constructors #4401 [arrow] (tustvold)
- StructBuilder Validate Child Data (#4397) #4400 [arrow] (tustvold)
- Faster UTF-8 truncation #4399 [parquet] (tustvold)
- Minor: Derive
Hashimpls forCastOptionsandFormatOptions#4395 [arrow] (alamb) - Fix typo in README #4394 [arrow] [arrow-flight] (okue)
- Improve parquet
WriterProperitesandReaderPropertiesdocs #4392 [parquet] (alamb) - Cleanup downcast macros #4391 [arrow] (tustvold)
- Update proc-macro2 requirement from =1.0.59 to =1.0.60 #4388 [arrow] [arrow-flight] (dependabot[bot])
- Consolidate ByteArray::from_iterator #4386 [arrow] (tustvold)
- Add MapArray constructors and doc example #4382 [arrow] (tustvold)
- Documentation Improvements #4381 [arrow] (tustvold)
- Add NullBuffer and BooleanBuffer From conversions #4380 [arrow] (tustvold)
- Add more examples of constructing Boolean, Primitive, String, and Decimal Arrays, and From impl for i256 #4379 [arrow] (alamb)
- Add ListArrayReader benchmarks #4378 [parquet] (tustvold)
- Update comfy-table requirement from 6.0 to 7.0 #4377 [arrow] (dependabot[bot])
- feat: Add
microsecondandmillisecondkernels #4375 [arrow] (izveigor) - Update hashbrown requirement from 0.13 to 0.14 #4373 [parquet] [arrow] (dependabot[bot])
- minor: use as_boolean to resolve TODO #4367 [arrow] (jackwener)
- Have array_to_json_array support MapArray #4364 [arrow] (dadepo)
- deprecate: as_decimal_array #4363 [arrow] (izveigor)
- Add support for FixedSizeList in array_to_json_array #4361 [arrow] (dadepo)
- refact: use as_primitive in cast.rs test #4360 [arrow] (Weijun-H)
- feat(flight): add xdbc type info helpers #4359 [arrow] [arrow-flight] (roeap)
- Minor: float16 to json #4358 [arrow] (izveigor)
- Raise TypeError on PyArrow import #4316 [arrow] (wjones127)
- Arrow Cast: Fixed Point Arithmetic for Interval Parsing #4291 [arrow] (mr-brobot)
-
41.0.006 Jun 2023Release notes
Open source →Breaking changes:
- Rename list contains kernels to in_list (#4289) #4342 [parquet] [arrow] (tustvold)
- Move BooleanBufferBuilder and NullBufferBuilder to arrow_buffer #4338 [arrow] (tustvold)
- Add separate row_count and level_count to PageMetadata (#4321) #4326 [parquet] (tustvold)
- Treat legacy TIMSETAMP_X converted types as UTC #4309 [parquet] (sergiimk)
- Simplify parquet PageIterator #4306 [parquet] (tustvold)
- Add Builder style APIs and docs for
FlightData,FlightInfo,FlightEndpoint,LocaationandTicket#4294 [arrow] [arrow-flight] (alamb) - Make GenericColumnWriter Send #4287 [parquet] (tustvold)
- feat: update flight-sql to latest specs #4250 [arrow] [arrow-flight] (roeap)
- feat(api!): make ArrowArrayStreamReader Send #4232 [arrow] (wjones127)
Implemented enhancements:
- Make SerializedRowGroupReader::new() Public #4330 [parquet]
- Speed up i256 division and remainder operations #4302 [arrow]
- export function parquet_to_array_schema_and_fields #4298 [parquet]
- FLightSQL: add helpers to create
CommandGetCatalogs,CommandGetSchemas, andCommandGetTablesrequests #4295 [arrow] [arrow-flight] - Make ColumnWriter Send #4286 [parquet]
- Add Builder for
FlightInfoto make it easier to create new requests #4281 [arrow] [arrow-flight] - Support Writing/Reading Decimal256 to/from Parquet #4264 [parquet]
- FlightSQL: Add helpers to create
CommandGetSqlInforesponses (SqlInfoValueand builders) #4256 [arrow] [arrow-flight] - Update flight-sql implementation to latest specs #4249 [arrow] [arrow-flight]
- Make ArrowArrayStreamReader Send #4222 [arrow]
- Support writing FixedSizeList to Parquet #4214 [parquet]
- Cast between
Intervals#4181 [arrow] - Splice Parquet Data #4155 [parquet]
- CSV Schema More Flexible Timestamp Inference #4131 [arrow]
Fixed bugs:
- Doc for arrow_flight::sql is missing enums that are Xdbc related #4339 [arrow] [arrow-flight]
- concat_batches panics with total_len <= bit_len assertion for records with lists #4324 [arrow]
- Incorrect PageMetadata Row Count returned for V1 DataPage #4321 [parquet]
- [parquet] Not following the spec for TIMESTAMP_MILLIS legacy converted types #4308 [parquet]
- ambiguous glob re-exports of contains_utf8 #4289 [parquet] [arrow]
- flight_sql_client --header "key: value" yields a value with a leading whitespace #4270 [arrow] [arrow-flight]
- Casting Timestamp to date is off by one day for dates before 1970-01-01 #4211 [arrow]
Merged pull requests:
- Don't infer 16-byte decimal as decimal256 #4349 [parquet] (tustvold)
- Fix MutableArrayData::extend_nulls (#1230) #4343 [arrow] (tustvold)
- Update FlightSQL metadata locations, names and docs #4341 [arrow] [arrow-flight] (alamb)
- chore: expose Xdbc related FlightSQL enums #4340 [arrow] [arrow-flight] (appletreeisyellow)
- Update pyo3 requirement from 0.18 to 0.19 #4335 [arrow] (dependabot[bot])
- Skip unnecessary null checks in MutableArrayData #4333 [arrow] (tustvold)
- feat: add read parquet by custom rowgroup examples #4332 [parquet] (sundy-li)
- Make SerializedRowGroupReader::new() public #4331 [parquet] (burmecia)
- Don't split record across pages (#3680) #4327 [parquet] (tustvold)
- fix date conversion if timestamp below unixtimestamp #4323 [arrow] (comphead)
- Short-circuit on exhausted page in skip_records #4320 [parquet] (tustvold)
- Handle trailing padding when skipping repetition levels (#3911) #4319 [parquet] (tustvold)
- Use
page_sizeconsistently, deprecatepagesizein parquet WriterProperties #4313 [parquet] (alamb) - Add roundtrip tests for Decimal256 and fix issues (#4264) #4311 [parquet] (tustvold)
- Expose page-level arrow reader API (#4298) #4307 [parquet] (tustvold)
- Speed up i256 division and remainder operations #4303 [arrow] (viirya)
- feat(flight): support int32_to_int32_list_map in sql infos #4300 [arrow] [arrow-flight] (roeap)
- feat(flight): add helpers to handle
CommandGetCatalogs,CommandGetSchemas, andCommandGetTablesrequests #4296 [arrow] [arrow-flight] (roeap) - Improve docs and tests for `SqlInfoList #4293 [arrow] [arrow-flight] (alamb)
- minor: fix arrow_row docs.rs links #4292 [arrow] (roeap)
- Update proc-macro2 requirement from =1.0.58 to =1.0.59 #4290 [arrow] [arrow-flight] (dependabot[bot])
- Improve
ArrowWritermemory usage: Buffer Pages in ArrowWriter instead of RecordBatch (#3871) #4280 [parquet] (tustvold) - Minor: Add more docstrings in arrow-flight #4279 [arrow] [arrow-flight] (alamb)
- Add
Debugimpls forArrowWriterandSerializedFileWriter#4278 [parquet] (alamb) - Expose
RecordBatchWritertoarrowcrate #4277 [arrow] (alexandreyc) - Update criterion requirement from 0.4 to 0.5 #4275 [parquet] [arrow] (dependabot[bot])
- Add parquet-concat #4274 [parquet] (tustvold)
- Convert FixedSizeListArray to GenericListArray #4273 [arrow] (tustvold)
- feat: support 'Decimal256' for parquet #4272 [parquet] (Weijun-H)
- Strip leading whitespace from flight_sql_client custom header values #4271 [arrow] [arrow-flight] (mkmik)
- Add Append Column API (#4155) #4269 [parquet] (tustvold)
- Derive Default for WriterProperties #4268 [parquet] (tustvold)
- Parquet Reader/writer for fixed-size list arrays #4267 [parquet] (dexterduck)
- feat(flight): add sql-info helpers #4266 [arrow] [arrow-flight] (roeap)
- Convert parquet metadata back to builders #4265 [parquet] (tustvold)
- Add constructors for FixedSize array types (#3879) #4263 [arrow] (tustvold)
- Extract IPC ArrayReader struct #4259 [arrow] (tustvold)
- Update object_store requirement from 0.5 to 0.6 #4258 [parquet] (dependabot[bot])
- Support Absolute Timestamps in CSV Schema Inference (#4131) #4217 [arrow] (tustvold)
- feat: cast between
Intervals#4182 [arrow] (izveigor)
-
40.0.022 May 2023Release notes
Open source →Breaking changes:
- Prefetch page index (#4090) #4216 [parquet] (tustvold)
- Add RecordBatchWriter trait and implement it for CSV, JSON, IPC and P… #4206 [parquet] [arrow] (alexandreyc)
- Remove powf_scalar kernel #4187 [arrow] (tustvold)
- Allow format specification in cast #4169 [arrow] (parthchandra)
Implemented enhancements:
- ObjectStore with_url Should Handle Path #4199
- Support
Interval+/-Interval#4178 [arrow] - [parquet] add compression info to
print_column_chunk_metadata()#4172 [parquet] - Allow cast to take in a format specification #4168 [arrow]
- Support extended pow arithmetic #4166 [arrow]
- Preload page index for async ParquetObjectReader #4090 [parquet]
Fixed bugs:
Merged pull requests:
- Arrow Arithmetic: Subtract timestamps #4244 [arrow] (mr-brobot)
- Update proc-macro2 requirement from =1.0.57 to =1.0.58 #4236 [arrow] [arrow-flight] (dependabot[bot])
- Fix Nightly Clippy Lints #4233 [arrow] (tustvold)
- Minor: use all primitive types in test_layouts #4229 [arrow] (izveigor)
- Add close method to RecordBatchWriter trait #4228 [parquet] [arrow] (alexandreyc)
- Update proc-macro2 requirement from =1.0.56 to =1.0.57 #4219 [arrow] [arrow-flight] (dependabot[bot])
- Feat docs #4215 [parquet] [arrow] (Folyd)
- feat: Support bitwise and boolean aggregate functions #4210 [arrow] (izveigor)
- Document how to sort a RecordBatch #4204 [arrow] (tustvold)
- Fix incorrect cast Timestamp with Timezone #4201 [arrow] (aprimadi)
- Add implementation of
RecordBatchReaderfor CSV reader #4195 [arrow] (alexandreyc) - Add Sliced ListArray test (#3748) #4186 [arrow] (tustvold)
- refactor: simplify can_cast_types code. #4185 [arrow] (jackwener)
- Minor: support new types in struct_builder.rs #4177 [arrow] (izveigor)
- feat: add compression info to print_column_chunk_metadata() #4176 [parquet] (SteveLauC)
-
39.0.009 May 2023Release notes
Open source →Breaking changes:
- Allow creating unbuffered streamreader #4165 [arrow] (ming08108)
- Cleanup ChunkReader (#4118) #4156 [parquet] (tustvold)
- Remove Type from NativeIndex #4146 [parquet] (tustvold)
- Don't Duplicate Offset Index on RowGroupMetadata #4142 [parquet] (tustvold)
- Return BooleanBuffer from BooleanBufferBuilder #4140 [parquet] [arrow] (tustvold)
- Cleanup CSV schema inference (#4129) (#4130) #4133 [parquet] [arrow] (tustvold)
- Remove deprecated parquet ArrowReader #4125 [parquet] (tustvold)
- refactor: construct
StructArrayw/FieldRef#4116 [parquet] [arrow] (crepererum) - Ignore Field Metadata in equals_datatype for Dictionary, RunEndEncoded, Map and Union #4111 [arrow] (izveigor)
- Add StructArray Constructors (#3879) #4064 [arrow] (tustvold)
Implemented enhancements:
- Release 39.0.0 of arrow/arrow-flight/parquet/parquet-derive (next release after 38.0.0) #4170 [arrow] [arrow-flight]
- Fixed point decimal multiplication for DictionaryArray #4135 [arrow]
- Remove Seek Requirement from CSV ReaderBuilder #4130 [parquet] [arrow]
- Inconsistent CSV Inference and Parsing DateTime Handling #4129 [parquet] [arrow]
- Support accessing ipc Reader/Writer inner by reference #4121
- Add Type Declarations for All Primitive Tensors and Buffer Builders #4112 [arrow]
- Support
Interval + TimestampandInterval + Datein addition toTimestamp + IntervalandInterval + Date#4094 [arrow] - Enable setting FlightDescriptor on FlightDataEncoderBuilder #3855 [arrow] [arrow-flight]
Fixed bugs:
- Parquet Page Index Reader Assumes Consecutive Offsets #4149 [parquet]
- Equality of nested data types #4110 [arrow]
Documentation updates:
- Improve Documentation of Parquet ChunkReader #4118
Closed issues:
Merged pull requests:
- Prep for 39.0.0 #4171 [arrow] [arrow-flight] (iajoiner)
- Support Compression in parquet-fromcsv #4160 [parquet] (suxiaogang223)
- feat: support bitwise shift left/right with scalars #4159 [arrow] (izveigor)
- Cleanup reading page index (#4149) (#4090) #4151 [parquet] (tustvold)
- feat: support
bitwiseshift left/right #4148 [arrow] (Weijun-H) - Don't hardcode port in FlightSQL tests #4145 [arrow] [arrow-flight] (tustvold)
- Better flight SQL example codes #4144 [arrow] [arrow-flight] (sundy-li)
- chore: clean the code by using
as_primitive#4143 [arrow] (Weijun-H) - docs: fix the wrong ln command in CONTRIBUTING.md #4139 (SteveLauC)
- Infer Float64 for JSON Numerics Beyond Bounds of i64 #4138 [arrow] (SteveLauC)
- Support fixed point multiplication for DictionaryArray of Decimals #4136 [arrow] (viirya)
- Make arrow_json::ReaderBuilder method names consistent #4128 [arrow] (tustvold)
- feat: add get_{ref, mut} to arrow_ipc Reader and Writer #4122 (sticnarf)
- feat: support
Interval+TimestampandInterval+Date#4117 [arrow] (Weijun-H) - Support NullArray in JSON Reader #4114 [arrow] (jiangzhx)
- Add Type Declarations for All Primitive Tensors and Buffer Builders #4113 [arrow] (izveigor)
- Update regex-syntax requirement from 0.6.27 to 0.7.1 #4107 [arrow] (dependabot[bot])
- feat: set FlightDescriptor on FlightDataEncoderBuilder #4101 [arrow] [arrow-flight] (Weijun-H)
- optimize cast for same decimal type and same scale #4088 [arrow] (liukun4515)
-
38.0.025 Apr 2023Release notes
Open source →Breaking changes:
- Remove DataType from PrimitiveArray constructors #4098 [arrow] (tustvold)
- Use Into<Arc<str>> for PrimitiveArray::with_timezone #4097 [arrow] (tustvold)
- Store StructArray entries in MapArray #4085 [parquet] [arrow] (tustvold)
- Add DictionaryArray Constructors (#3879) #4068 [arrow] [arrow-flight] (tustvold)
- Relax JSON schema inference generics #4063 [arrow] (tustvold)
- Remove ArrayData from Array (#3880) #4061 [arrow] (tustvold)
- Add CommandGetXdbcTypeInfo to Flight SQL Server #4055 [arrow] [arrow-flight] (c-thiel)
- Remove old JSON Reader and Decoder (#3610) #4052 [parquet] [arrow] (tustvold)
- Use BufRead for JSON Schema Inference #4041 [arrow] (WenyXu)
Implemented enhancements:
- Support dyn_compare_scalar for Decimal256 #4083 [arrow]
- Better JSON Reader Error Messages #4076 [arrow]
- Additional data type groups #4056 [arrow]
- Async JSON reader #4043 [arrow]
- Field::contains Should Recurse into DataType #4029 [arrow]
- Prevent UnionArray with Repeated Type IDs #3982 [parquet] [arrow]
- Support
Timestamp+/-Intervaltypes #3963 [arrow] - First-Class Array Abstractions #3880 [parquet] [arrow] [arrow-flight]
Fixed bugs:
- Update readme to remove reference to Jira #4091
- OffsetBuffer::new Rejects 0 Offsets #4066 [arrow]
- Parquet AsyncArrowWriter not shutting down inner async writer. #4058 [parquet]
- Flight SQL Server missing command type.googleapis.com/arrow.flight.protocol.sql.CommandGetXdbcTypeInfo #4054 [arrow] [arrow-flight]
- RawJsonReader Errors with Empty Schema #4053 [parquet] [arrow]
- RawJsonReader Integer Truncation #4049 [arrow]
- Sparse UnionArray Equality Incorrect Offset Handling #4044 [arrow]
Documentation updates:
Closed issues:
- Parquet reader of Int96 columns and coercion to timestamps #4075
- Serializing timestamp from int (json raw decoder) #4069 [arrow]
- Support casting to/from Interval and Duration #3998 [arrow]
Merged pull requests:
- Fix Docs Typos #4100 [parquet] (rnarkk)
- Update tonic-build requirement from =0.9.1 to =0.9.2 #4099 [arrow] [arrow-flight] (dependabot[bot])
- Increase minimum chrono version to 0.4.24 #4093 [arrow] (alamb)
- Simplify reference to GitHub issues #4092 (bkmgit)
- [Minor]: Add
Hashtrait to SortOptions. #4089 [arrow] (mustafasrepo) - Include byte offsets in parquet-layout #4086 [parquet] (tustvold)
- feat: Support dyn_compare_scalar for Decimal256 #4084 [arrow] (izveigor)
- Add ByteArray constructors (#3879) #4081 [arrow] (tustvold)
- Update prost-build requirement from =0.11.8 to =0.11.9 #4080 [arrow] [arrow-flight] (dependabot[bot])
- Improve JSON decoder errors (#4076) #4079 [arrow] (tustvold)
- Fix Timestamp Numeric Truncation in JSON Reader #4074 [arrow] (tustvold)
- Serialize numeric to tape (#4069) #4073 [arrow] (tustvold)
- feat: Prevent UnionArray with Repeated Type IDs #4070 [arrow] (Weijun-H)
- Add PrimitiveArray::try_new (#3879) #4067 [arrow] (tustvold)
- Add ListArray Constructors (#3879) #4065 [arrow] (tustvold)
- Shutdown parquet async writer #4059 [parquet] (kindly)
- feat: additional data type groups #4057 [arrow] (izveigor)
- Fix precision loss in Raw JSON decoder (#4049) #4051 [arrow] (tustvold)
- Use lexical_core in CSV and JSON parser (~25% faster) #4050 [arrow] (tustvold)
- Add offsets accessors to variable length arrays (#3879) #4048 [arrow] (tustvold)
- Document Async decoder usage (#4043) (#78) #4046 [arrow] (tustvold)
- Fix sparse union array equality (#4044) #4045 [arrow] (tustvold)
- feat: DataType::contains support nested type #4042 [arrow] (Weijun-H)
- feat: Support Timestamp +/- Interval types #4038 [arrow] (Weijun-H)
- Fix object_store CI #4037 (tustvold)
- feat: cast from/to interval and duration #4020 [arrow] (Weijun-H)
-
37.0.010 Apr 2023Release notes
Open source →Breaking changes:
- Fix timestamp handling in cast kernel (#1936) (#4033) #4034 [arrow] (tustvold)
- Update tonic 0.9.1 #4011 [arrow] [arrow-flight] (tustvold)
- Use FieldRef in DataType (#3955) #3983 [parquet] [arrow] (tustvold)
- Store Timezone as Arc<str> #3976 [parquet] [arrow] (tustvold)
- Panic instead of discarding nulls converting StructArray to RecordBatch - (#3951) #3953 [parquet] [arrow] (tustvold)
- Fix(flight_sql): PreparedStatement has no token for auth. #3948 [arrow] [arrow-flight] (youngsofun)
- Add Strongly Typed Array Slice (#3929) #3930 [parquet] [arrow] (tustvold)
- Add Zero-Copy Conversion between Vec and MutableBuffer #3920 [arrow] (tustvold)
Implemented enhancements:
- Support Decimals cast to Utf8/LargeUtf #3991 [arrow]
- Support Date32/Date64 minus Interval #3962 [arrow]
- Reduce Cloning of Field #3955 [parquet] [arrow] [arrow-flight]
- Support Deserializing Serde DataTypes to Arrow #3949 [arrow]
- Add multiply_fixed_point #3946 [arrow]
- Strongly Typed Array Slicing #3929 [parquet] [arrow]
- Make it easier to match FlightSQL messages #3874 [arrow] [arrow-flight]
- Support Casting Between Binary / LargeBinary and FixedSizeBinary #3826 [arrow]
Fixed bugs:
- Incorrect Overflow Casting String to Timestamp #4033
- f16::ZERO and f16::ONE are mixed up #4016 [arrow]
- Handle overflow precision when casting from integer to decimal #3995 [arrow]
- PrimitiveDictionaryBuilder.finish should use actual value type #3971 [arrow]
- RecordBatch From StructArray Silently Discards Nulls #3952 [parquet] [arrow]
- I256 Checked Subtraction Overflows for i256::MINUS_ONE #3942 [arrow]
- I256 Checked Multiply Overflows for i256::MIN #3941 [arrow]
Closed issues:
Merged pull requests:
- Prep for 37.0.0 #4031 [arrow] [arrow-flight] (iajoiner)
- Add RecordBatch::with_schema #4028 [arrow] (tustvold)
- Only require compatible batch schema in ArrowWriter #4027 [parquet] (tustvold)
- Add Fields::contains #4026 [arrow] (tustvold)
- Minor: add methods "is_positive" and "signum" to i256 #4024 [arrow] (izveigor)
- Deprecate Array::data (#3880) #4019 [arrow] (tustvold)
- feat: add tests for ArrowNativeTypeOp #4018 [arrow] (izveigor)
- fix: f16::ZERO and f16::ONE are mixed up #4017 [arrow] (izveigor)
- Minor: Float16Tensor #4013 [arrow] (izveigor)
- Add FlightSQL module docs and links to
arrow-flightcrates #4012 [arrow] [arrow-flight] (alamb) - Update proc-macro2 requirement from =1.0.54 to =1.0.56 #4008 [arrow] [arrow-flight] (dependabot[bot])
- Cleanup Primitive take #4006 [arrow] (tustvold)
- Deprecate combine_option_bitmap #4005 [arrow] (tustvold)
- Minor: add tests for BooleanBuffer #4004 [arrow] (izveigor)
- feat: support to read/write customized metadata in ipc files #4003 [arrow] (framlog)
- Cleanup more uses of Array::data (#3880) #4002 [parquet] [arrow] (tustvold)
- Remove js feature from README #4001 [arrow] (akazukin5151)
- feat: add the implementation BitXor to BooleanBuffer #3997 [arrow] (izveigor)
- Handle precision overflow when casting from integer to decimal #3996 [arrow] (viirya)
- Support CAST from Decimal datatype to String #3994 [arrow] (comphead)
- Add Field Constructors for Complex Fields #3992 [parquet] [arrow] [arrow-flight] (tustvold)
- fix: remove unused type parameters. #3986 [arrow] (youngsofun)
- Add UnionFields (#3955) #3981 [parquet] [arrow] (tustvold)
- Cleanup Fields Serde #3980 [arrow] (tustvold)
- Support Rust structures -->
RecordBatchby addingSerdesupport toRawDecoder(#3949) #3979 [arrow] (tustvold) - Convert string_to_timestamp_nanos to doctest #3978 [arrow] (tustvold)
- Fix documentation of string_to_timestamp_nanos #3977 [arrow] (byteink)
- add Date32/Date64 support to subtract_dyn #3974 [arrow] (SinanGncgl)
- PrimitiveDictionaryBuilder.finish should use actual value type #3972 [arrow] (viirya)
- Update proc-macro2 requirement from =1.0.53 to =1.0.54 #3968 [arrow] [arrow-flight] (dependabot[bot])
- Async writer tweaks #3967 [parquet] (tustvold)
- Fix reading ipc files with unordered projections #3966 [arrow] (framlog)
- Add Fields abstraction (#3955) #3965 [parquet] [arrow] [arrow-flight] (tustvold)
- feat: cast between
Binary/LargeBinaryandFixedSizeBinary#3961 [arrow] (Weijun-H) - feat: support async writer (#1269) #3957 [parquet] (ShiKaiWi)
- Add ListBuilder::append_value (#3949) #3954 [arrow] (tustvold)
- Improve array builder documentation (#3949) #3951 [arrow] (tustvold)
- Faster i256 parsing #3950 [arrow] (tustvold)
- Add multiply_fixed_point #3945 [arrow] (viirya)
- feat: enable metadata import/export through C data interface #3944 [arrow] (wjones127)
- Fix checked i256 arithmetic (#3942) (#3941) #3943 [arrow] (tustvold)
- Avoid memory copies in take_list #3940 [arrow] (tustvold)
- Faster decimal parsing (30-60%) #3939 [arrow] (spebern)
- Fix: FlightSqlClient panic when execute_update. #3938 [arrow] [arrow-flight] (youngsofun)
- Cleanup row count handling in JSON writer #3934 [arrow] (tustvold)
- Add typed buffers to UnionArray (#3880) #3933 [arrow] (tustvold)
- feat: add take for MapArray #3925 [arrow] (wjones127)
- Deprecate Array::data_ref (#3880) #3923 [arrow] (tustvold)
- Zero-copy conversion from Vec to PrimitiveArray #3917 [arrow] (tustvold)
- feat: Add Commands enum to decode prost messages to strong type #3887 [arrow] [arrow-flight] (stuartcarnie)
-
36.0.028 Mar 2023Release notes
Open source →Breaking changes:
- Use dyn Array in sort kernels #3931 [arrow] (tustvold)
- Enforce struct nullability in JSON raw reader (#3900) (#3904) #3906 [arrow] (tustvold)
- Return ScalarBuffer from PrimitiveArray::values (#3879) #3896 [arrow] (tustvold)
- Use BooleanBuffer in BooleanArray (#3879) #3895 [arrow] (tustvold)
- Seal ArrowPrimitiveType #3882 [arrow] (tustvold)
- Support compression levels #3847 [parquet] (spebern)
Implemented enhancements:
- Improve speed of parsing string to Times #3919 [arrow]
- feat: add comparison/sort support for Float16 #3914
- Pinned version in arrow-flight's build-dependencies are causing conflicts #3876
- Add compression options (levels) #3844 [parquet] [arrow]
- Use Unsigned Integer for Fixed Size DataType #3815
- Common trait for RecordBatch and StructArray #3764 [arrow]
- Allow precision loss on multiplying decimal arrays #3689 [arrow]
Fixed bugs:
- Raw JSON Reader Allows Non-Nullable Struct Children to Contain Nulls #3904
- Nullable field with nested not nullable map in json #3900
- parquet_derive doesn't support Vec<u8> #3864 [parquet]
- [REGRESSION] Parsing timestamps with lower case time separator #3863 [arrow]
- [REGRESSION] Parsing timestamps with leap seconds #3861 [arrow]
- [REGRESSION] Parsing timestamps with fractional seconds / microseconds / milliseconds / nanoseconds #3859 [arrow]
- CSV Reader Doesn't set Timezone #3841
- PyArrowConvert Leaks Memory #3683 [arrow]
Merged pull requests:
- Derive RunArray Clone #3932 [arrow] (tustvold)
- Move protoc generation to binary crate, unpin prost/tonic build (#3876) #3927 [arrow] [arrow-flight] (tustvold)
- Fix JSON Temporal Encoding of Multiple Batches #3924 [arrow] (doki23)
- Cleanup uses of Array::data_ref (#3880) #3918 [parquet] [arrow] (tustvold)
- Support microsecond and nanosecond in interval parsing #3916 [arrow] (alamb)
- feat: add comparison/sort support for Float16 #3915 [arrow] (izveigor)
- Add AsArray trait for more ergonomic downcasting #3912 [parquet] [arrow] (tustvold)
- Add OffsetBuffer::new #3910 [arrow] (tustvold)
- Add PrimitiveArray::new (#3879) #3909 [arrow] (tustvold)
- Support timezones in CSV reader (#3841) #3908 [arrow] (tustvold)
- Improve ScalarBuffer debug output #3907 [arrow] (tustvold)
- Update proc-macro2 requirement from =1.0.52 to =1.0.53 #3905 [arrow] [arrow-flight] (dependabot[bot])
- Re-export parquet compression level structs #3903 [parquet] (tustvold)
- Fix parsing timestamps of exactly 32 characters #3902 [arrow] (tustvold)
- Add iterators to BooleanBuffer and NullBuffer #3901 [arrow] (tustvold)
- Array equality for &dyn Array (#3880) #3899 [arrow] (tustvold)
- Add BooleanArray::new (#3879) #3898 [arrow] (tustvold)
- Revert structured ArrayData (#3877) #3894 (tustvold)
- Fix pyarrow memory leak (#3683) #3893 [arrow] (tustvold)
- Minor: add examples for
ListBuilderandGenericListBuilder#3891 [arrow] (alamb) - Update syn requirement from 1.0 to 2.0 #3890 (dependabot[bot])
- Use of
mul_checkedto avoid silent overflow in interval arithmetic #3886 [arrow] (Weijun-H) - Flesh out NullBuffer abstraction (#3880) #3885 [parquet] [arrow] (tustvold)
- Implement Bit Operations for i256 #3884 [arrow] (tustvold)
- Flatten arrow_buffer #3883 [arrow] (tustvold)
- Add Array::to_data and Array::nulls (#3880) #3881 [arrow] (tustvold)
- Added support for byte vectors and slices to parquet_derive (#3864) #3878 [parquet] (waymost)
- chore: remove LevelDecoder #3872 [parquet] (Weijun-H)
- Parse timestamps with leap seconds (#3861) #3862 [arrow] (tustvold)
- Faster time parsing (~93% faster) #3860 [arrow] (tustvold)
- Parse timestamps with arbitrary seconds fraction #3858 [arrow] (tustvold)
- Add BitIterator #3856 [arrow] (tustvold)
- Improve decimal parsing performance #3854 [arrow] (spebern)
- Update proc-macro2 requirement from =1.0.51 to =1.0.52 #3853 [arrow] [arrow-flight] (dependabot[bot])
- Update bitflags requirement from 1.2.1 to 2.0.0 #3852 [arrow] (dependabot[bot])
- Add offset pushdown to parquet #3848 [parquet] (tustvold)
- Add timezone support to JSON reader #3845 [arrow] (tustvold)
- Allow precision loss on multiplying decimal arrays #3690 [arrow] (viirya)
-
35.0.013 Mar 2023Release notes
Open source →Breaking changes:
- Add RunEndBuffer (#1799) #3817 [arrow] (tustvold)
- Restrict DictionaryArray to ArrowDictionaryKeyType #3813 [arrow] (tustvold)
- refactor: assorted
FlightSqlServiceClientimprovements #3788 [arrow] [arrow-flight] (crepererum) - minor: make Parquet CLI input args consistent #3786 [parquet] (XinyuZeng)
- Return Buffers from ArrayData::buffers instead of slice (#1799) #3783 [arrow] (tustvold)
- Use NullBuffer in ArrayData (#3775) #3778 [parquet] [arrow] (tustvold)
Implemented enhancements:
- Support timestamp/time and date types in json decoder #3834 [arrow]
- Support decoding decimals in new raw json decoder #3819 [arrow]
- Timezone Aware Timestamp Parsing #3794 [arrow]
- Preallocate buffers for FixedSizeBinary array creation #3792 [arrow]
- Make Parquet CLI args consistent #3785 [parquet]
- Creates PrimitiveDictionaryBuilder from provided keys and values builders #3776 [arrow]
- Use NullBuffer in ArrayData #3775 [parquet] [arrow]
- Support unary_dict_mut in arth #3710 [arrow]
- Support cast <> String to interval #3643 [arrow]
- Support Zero-Copy Conversion from Vec to/from MutableBuffer #3516 [arrow]
Fixed bugs:
- Timestamp Unit Casts are Unchecked #3833 [arrow]
- regexp_match skips first match when returning match #3803 [arrow]
- Cast to timestamp with time zone returns timestamp #3800 [arrow]
- Schema-level metadata is not encoded in Flight responses #3779 [arrow] [arrow-flight]
Closed issues:
- FlightSQL CLI client: simple test #3814 [arrow] [arrow-flight]
Merged pull requests:
- refactor: timestamp overflow check #3840 [arrow] (Weijun-H)
- Prep for 35.0.0 #3836 [parquet] [arrow] [arrow-flight] (iajoiner)
- Support timestamp/time and date json decoding #3835 [arrow] (spebern)
- Make dictionary preservation optional in row encoding #3831 [arrow] (tustvold)
- Move prettyprint to arrow-cast #3828 [arrow] [arrow-flight] (tustvold)
- Support decoding decimals in raw decoder #3820 [arrow] (spebern)
- Add ArrayDataLayout, port validation (#1799) #3818 [arrow] (tustvold)
- test: add test for FlightSQL CLI client #3816 [arrow] [arrow-flight] (crepererum)
- Add regexp_match docs #3812 [arrow] (tustvold)
- fix: Ensure Flight schema includes parent metadata #3811 [arrow] [arrow-flight] (stuartcarnie)
- fix: regexp_match skips first match #3807 [arrow] (Weijun-H)
- fix: change uft8 to timestamp with timezone #3806 [arrow] (Weijun-H)
- Support reading decimal arrays from json #3805 [arrow] (spebern)
- Add unary_dict_mut #3804 [arrow] (viirya)
- Faster timestamp parsing (~70-90% faster) #3801 [arrow] (tustvold)
- Add concat_elements_bytes #3798 [arrow] (tustvold)
- Timezone aware timestamp parsing (#3794) #3795 [arrow] (tustvold)
- Preallocate buffers for FixedSizeBinary array creation #3793 [arrow] (maxburke)
- feat: simple flight sql CLI client #3789 [arrow] [arrow-flight] (crepererum)
- Creates PrimitiveDictionaryBuilder from provided keys and values builders #3777 [arrow] (viirya)
- ArrayData Enumeration for Remaining Layouts #3769 [arrow] (tustvold)
- Update prost-build requirement from =0.11.7 to =0.11.8 #3767 [arrow] [arrow-flight] (dependabot[bot])
- Implement concat_elements_dyn kernel #3763 [arrow] (Weijun-H)
- Support for casting
Utf8andLargeUtf8-->Interval#3762 [arrow] (doki23) - into_inner() for CSV Writer #3759 [arrow] (Weijun-H)
- Zero-copy Vec conversion (#3516) (#1176) #3756 [arrow] (tustvold)
- ArrayData Enumeration for Primitive, Binary and UTF8 #3749 [arrow] (tustvold)
- Add
into_primitive_dict_buildertoDictionaryArray#3715 [arrow] (viirya)
-
34.0.027 Feb 2023Release notes
Open source →Breaking changes:
- Infer 2020-03-19 00:00:00 as timestamp not Date64 in CSV (#3744) #3746 [arrow] (tustvold)
- Implement fallible streams for
FlightClient::do_put#3464 [arrow] [arrow-flight] (alamb)
Implemented enhancements:
- Support casting string to timestamp with microsecond resolution #3751
- Add datatime/interval/duration into comparison kernels #3729 [arrow]
- ! (not) operator overload for SortOptions #3726 [arrow]
- parquet: convert Bytes to ByteArray directly #3719 [parquet]
- Implement simple RecordBatchReader #3704
- Is possible to implement GenericListArray::from_iter ? #3702
take_runimprovements #3701 [arrow]- Support
as_mut_anyin Array trait #3655 Array-->Displayformatter that supports more options and is configurable #3638 [parquet] [arrow]- arrow-csv: support decimal256 #3474 [arrow]
Fixed bugs:
- CSV reader infers Date64 type for fields like "2020-03-19 00:00:00" that it can't parse to Date64 #3744 [arrow]
Merged pull requests:
- Update to 34.0.0 and update changelog #3757 [parquet] [arrow] [arrow-flight] (iajoiner)
- Update MIRI for split crates (#2594) #3754 (tustvold)
- Update prost-build requirement from =0.11.6 to =0.11.7 #3753 [arrow] [arrow-flight] (dependabot[bot])
- Enable casting of string to timestamp with microsecond resolution #3752 [arrow] (gruuya)
- Use Typed Buffers in Arrays (#1811) (#1176) #3743 [arrow] (tustvold)
- Cleanup arithmetic kernel type constraints #3739 [arrow] (tustvold)
- Make dictionary kernels optional for comparison benchmark #3738 [arrow] (tustvold)
- Support String Coercion in Raw JSON Reader #3736 [arrow] (rguerreiromsft)
- replace for loop by try_for_each #3734 [arrow] (suxiaogang223)
- feat: implement generic record batch reader #3733 (wjones127)
- [minor] fix doc test fail #3732 [arrow] (Ted-Jiang)
- Add datetime/interval/duration into dyn scalar comparison #3730 [arrow] (viirya)
- Using Borrow<Value> on infer_json_schema_from_iterator #3728 [arrow] (rguerreiromsft)
- Not operator overload for SortOptions #3727 [arrow] (berkaysynnada)
- fix: encoding batch with no columns #3724 [arrow] [arrow-flight] (wangrunji0408)
- feat: impl
Ord/PartialOrdforSortOptions#3723 [arrow] (crepererum) - Add From<Bytes> for ByteArray #3720 [parquet] (tustvold)
- Deprecate old JSON reader (#3610) #3718 [parquet] [arrow] (tustvold)
- Add pretty format with options #3717 [arrow] (tustvold)
- Remove unreachable decimal take #3716 [arrow] (tustvold)
- Feat: arrow csv decimal256 #3711 [arrow] (suxiaogang223)
- perf:
take_runimprovements #3705 [arrow] (askoa) - Add raw MapArrayReader #3703 [arrow] (tustvold)
- feat: Sort kernel for
RunArray#3695 [arrow] (askoa) - perf: Remove sorting to yield sorted_rank #3693 [arrow] (askoa)
- fix: Handle sliced array in run array iterator #3681 [arrow] (askoa)
-
33.0.013 Feb 2023Release notes
Open source →Breaking changes:
- Use ArrayFormatter in Cast Kernel #3668 [arrow] (tustvold)
- Use dyn Array in cast kernels #3667 [arrow] (tustvold)
- Return references from FixedSizeListArray and MapArray #3652 [parquet] [arrow] (tustvold)
- Lazy array display (#3638) #3647 [parquet] [arrow] (tustvold)
- Use array_value_to_string in arrow-csv #3514 [arrow] (JayjeetAtGithub)
Implemented enhancements:
- Support UTF8 cast to Timestamp with timezone #3664
- Add modulus_dyn and modulus_scalar_dyn #3648 [arrow]
- A trait for append_value and append_null on ArrayBuilders #3644
- Improve error message "batches[0] schema is different with argument schema" #3628 [arrow]
- Specified version of helper function to cast binary to string #3623 [arrow]
- Casting generic binary to generic string #3606 [arrow]
- Use
array_value_to_stringinarrow-csv#3483 [arrow]
Fixed bugs:
- ArrowArray::try_from_raw Misleading Signature #3684 [arrow]
- PyArrowConvert Leaks Memory #3683 [arrow]
- Arrow-csv reader cannot produce RecordBatch even if the bytes are necessary #3674
- FFI Fails to Account For Offsets #3671 [arrow]
- Regression in CSV reader error handling #3656 [arrow]
- UnionArray Child and Value Fail to Account for non-contiguous Type IDs #3653 [arrow]
- Panic when accessing RecordBatch from pyarrow #3646 [arrow]
- Multiplication for decimals is incorrect #3645
- Inconsistent output between pretty print and CSV writer for Arrow #3513 [arrow]
Closed issues:
- Release 33.0.0 of arrow/arrow-flight/parquet/parquet-derive (next release after 32.0.0) #3682
- Release
32.0.0ofarrow/arrow-flight/parquet/parquet-derive(next release after31.0.0) #3584 [parquet] [arrow] [arrow-flight]
Merged pull requests:
- Move FFI to sub-crates #3687 [arrow] (tustvold)
- Update to 33.0.0 and update changelog #3686 [parquet] [arrow] [arrow-flight] (iajoiner)
- Cleanup FFI interface (#3684) (#3683) #3685 [arrow] (tustvold)
- fix: take_run benchmark parameter #3679 [arrow] (askoa)
- Minor: Add some examples to Date*Array and Time*Array #3678 [arrow] (alamb)
- Add CSV Decoder::capacity (#3674) #3677 [arrow] (tustvold)
- Add ArrayData::new_null and DataType::primitive_width #3676 [arrow] (tustvold)
- Fix FFI which fails to account for offsets #3675 [arrow] (viirya)
- Support UTF8 cast to Timestamp with timezone #3673 [arrow] (comphead)
- Fix Date64Array docs #3670 [arrow] (tustvold)
- Update proc-macro2 requirement from =1.0.50 to =1.0.51 #3669 [arrow] [arrow-flight] (dependabot[bot])
- Add timezone accessor for Timestamp*Array #3666 [arrow] (tustvold)
- Faster timezone cast #3665 [arrow] (tustvold)
- feat + fix: IPC support for run encoded array. #3662 [arrow] (askoa)
- Implement std::fmt::Write for StringBuilder (#3638) #3659 [arrow] (tustvold)
- Include line and field number in CSV UTF-8 error (#3656) #3657 [arrow] (tustvold)
- Handle non-contiguous type_ids in UnionArray (#3653) #3654 [arrow] (tustvold)
- Add modulus_dyn and modulus_scalar_dyn #3649 [arrow] (viirya)
- Improve error message with detailed schema #3637 [arrow] (Veeupup)
- Add limit to ArrowReaderBuilder to push limit down to parquet reader #3633 [parquet] (thinkharderdev)
- chore: delete wrong comment and refactor set_metadata in
Field#3630 [arrow] (chunshao90) - Fix typo in comment #3627 [parquet] (kjschiroo)
- Minor: Update doc strings about Page Index / Column Index #3625 [parquet] (alamb)
- Specified version of helper function to cast binary to string #3624 [arrow] (viirya)
- feat: take kernel for RunArray #3622 [arrow] (askoa)
- Remove BitSliceIterator specialization from try_for_each_valid_idx #3621 [arrow] (tustvold)
- Reduce PrimitiveArray::try_unary codegen #3619 [arrow] (tustvold)
- Reduce Dictionary Builder Codegen #3616 [arrow] (tustvold)
- Minor: Add test for dictionary encoding of batches #3608 [arrow-flight] (alamb)
- Casting generic binary to generic string #3607 [arrow] (viirya)
- Add ArrayAccessor, Iterator, Extend and benchmarks for RunArray #3603 [arrow] (askoa)
-
32.0.030 Jan 2023Release notes
Open source →Breaking changes:
- Allow
StringArrayconstruction withVec<Option<String>>#3602 [arrow] (sinistersnare) - Use native types in PageIndex (#3575) #3578 [parquet] (tustvold)
- Add external variant to ParquetError (#3285) #3574 [parquet] (tustvold)
- Return reference from ListArray::values #3561 [arrow] (tustvold)
- feat: Add
RunEndEncodedArray#3553 [parquet] [arrow] (askoa)
Implemented enhancements:
- There should be a
From<Vec<Option<String>>>impl forGenericStringArray<OffsetSize>#3599 [arrow] - FlightDataEncoder Optionally send Schema even when no record batches #3591 [arrow-flight]
- Use Native Types in PageIndex #3575 [parquet]
- Packing array into dictionary of generic byte array #3571 [arrow]
- Implement
Error::Sourcefor ArrowError and FlightError #3566 [arrow] [arrow-flight] - [FlightSQL] Allow access to underlying FlightClient #3551 [arrow-flight]
- Arrow CSV writer should not fail when cannot cast the value #3547 [arrow]
- Write Deprecated Min Max Statistics When ColumnOrder Signed #3526 [parquet]
- Improve Performance of JSON Reader #3441
- Support footer kv metadata for IPC file #3432
- Add
Externalvariant to ParquetError #3285 [parquet]
Fixed bugs:
- Nullif of NULL Predicate is not NULL #3589
- BooleanBufferBuilder Fails to Clear Set Bits On Truncate #3587 [arrow]
nullifincorrectly calculatesnull_count, sometimes panics with subtraction overflow error #3579 [arrow]- Meet warning when use pyarrow #3543 [arrow]
- Incorrect row group total_byte_size written to parquet file #3530 [parquet]
- Overflow when casting timestamps prior to the epoch #3512 [arrow]
Closed issues:
- Panic on Key Overflow in Dictionary Builders #3562 [parquet] [arrow]
- Bumping version gives compilation error (arrow-array) #3525
Merged pull requests:
- Add Push-Based CSV Decoder #3604 [arrow] (tustvold)
- Update to flatbuffers 23.1.21 #3597 [arrow] (tustvold)
- Faster BooleanBufferBuilder::append_n for true values #3596 [arrow] (tustvold)
- Support sending schemas for empty streams #3594 [arrow-flight] (alamb)
- Faster ListArray to StringArray conversion #3593 [arrow] (tustvold)
- Add conversion from StringArray to BinaryArray #3592 [arrow] (tustvold)
- Fix nullif null count (#3579) #3590 [arrow] (tustvold)
- Clear bits in BooleanBufferBuilder (#3587) #3588 [arrow] (tustvold)
- Iterate all dictionary key types in cast test #3585 [arrow] (viirya)
- Propagate EOF Error from AsyncRead #3576 [parquet] (Sach1nAgarwal)
- Show row_counts also for (FixedLen)ByteArray #3573 [parquet] (bmmeijers)
- Packing array into dictionary of generic byte array #3572 [arrow] (viirya)
- Remove unwrap on datetime cast for CSV writer #3570 [arrow] (comphead)
- Implement
std::error::Error::sourceforArrowErrorandFlightError#3567 [arrow] [arrow-flight] (alamb) - Improve GenericBytesBuilder offset overflow panic message (#139) #3564 [arrow] (tustvold)
- Implement Extend for ArrayBuilder (#1841) #3563 [arrow] (tustvold)
- Update pyarrow method call with kwargs #3560 [arrow] (Frankonly)
- Update pyo3 requirement from 0.17 to 0.18 #3557 [arrow] (viirya)
- Expose Inner FlightServiceClient on FlightSqlServiceClient (#3551) #3556 [arrow-flight] (tustvold)
- Fix final page row count in parquet-index binary #3554 [parquet] (tustvold)
- Parquet Avoid Reading 8 Byte Footer Twice from AsyncRead #3550 [parquet] (Sach1nAgarwal)
- Improve concat kernel capacity estimation #3546 [arrow] (tustvold)
- Update proc-macro2 requirement from =1.0.49 to =1.0.50 #3545 [arrow-flight] (dependabot[bot])
- Update pyarrow method call to avoid warning #3544 [arrow] (Frankonly)
- Enable casting between Utf8/LargeUtf8 and Binary/LargeBinary #3542 [arrow] (viirya)
- Use GHA concurrency groups (#3495) #3538 (tustvold)
- set sum of uncompressed column size as row group size for parquet files #3531 [parquet] (sidred)
- Minor: Add documentation about memory use for ArrayData #3529 [arrow] (alamb)
- Upgrade to clap 4.1 + fix test #3528 [parquet] (tustvold)
- Write backwards compatible row group statistics (#3526) #3527 [parquet] (tustvold)
- No panic on timestamp buffer overflow #3519 [arrow] (comphead)
- Support casting from binary to dictionary of binary #3482 [arrow] (viirya)
- Add Raw JSON Reader (~2.5x faster) #3479 [arrow] (tustvold)
- Allow
-
31.0.016 Jan 2023Release notes
Open source →Breaking changes:
- support RFC3339 style timestamps in
arrow-json#3449 [arrow] (JayjeetAtGithub) - Improve arrow flight batch splitting and naming #3444 [arrow-flight] (alamb)
- Parquet record API: timestamp as signed integer #3437 [parquet] (ByteBaker)
- Support decimal int32/64 for writer #3431 [parquet] (liukun4515)
Implemented enhancements:
- Support casting Date32 to timestamp #3504 [arrow]
- Support casting strings like
'2001-01-01'to timestamp #3492 [arrow] - CLI to "rewrite" parquet files #3476 [parquet]
- Add more dictionary value type support to
build_compare#3465 - Allow
concat_batchesto take non owned RecordBatch #3456 [arrow] - Release Arrow
30.0.1(maintenance release for30.0.0) #3455 - Add string comparisons (starts_with, ends_with, and contains) to kernel #3442 [arrow]
- make_builder Loses Timezone and Decimal Scale Information #3435 [arrow]
- Use RFC3339 style timestamps in arrow-json #3416 [arrow]
- ArrayData
get_slice_memory_sizeor similar #3407 [arrow] [arrow-flight]
Fixed bugs:
- Unable to read CSV with null boolean value #3521 [arrow]
- Make consistent behavior on zeros equality on floating point types #3509
- Sliced batch w/ bool column doesn't roundtrip through IPC #3496 [arrow] [arrow-flight]
- take kernel on List array introduces nulls instead of empty lists #3471 [arrow]
- Infinite Loop If Skipping More CSV Lines than Present #3469 [arrow]
Merged pull requests:
- Fix reading null booleans from CSV #3523 [arrow] (tustvold)
- minor fix: use the unified decimal type builder #3522 [parquet] (liukun4515)
- Update version to
31.0.0and add changelog #3518 [parquet] [arrow] [arrow-flight] (iajoiner) - Additional nullif re-export #3515 [arrow] (tustvold)
- Make consistent behavior on zeros equality on floating point types #3510 (viirya)
- Enable cast Date32 to Timestamp #3508 [arrow] (comphead)
- Update prost-build requirement from =0.11.5 to =0.11.6 #3507 [arrow-flight] (dependabot[bot])
- minor fix for the comments #3505 [arrow] (liukun4515)
- Fix DataTypeLayout for LargeList #3503 [arrow] (viirya)
- Add string comparisons (starts_with, ends_with, and contains) to kernel #3502 [arrow] (snmvaughan)
- Add a function to get memory size of array slice #3501 [arrow] (askoa)
- Fix IPCWriter for Sliced BooleanArray #3498 [arrow] (crepererum)
- Fix: Added support to cast string without time #3494 [arrow] (gaelwjl)
- Fix negative interval prettyprint #3491 [arrow] (Jefffrey)
- Fixes a broken link in the arrow lib.rs rustdoc #3487 [arrow] (AdamGS)
- Refactoring build_compare for decimal and using downcast_primitive #3484 (viirya)
- Add tests for record batch size splitting logic in FlightClient #3481 [arrow-flight] (alamb)
- change
concat_batchesparameter to non owned reference #3480 [arrow] (askoa) - feat: add
parquet-rewriteCLI #3477 [parquet] (crepererum) - Preserve empty list array elements in take kernel #3473 [arrow] (jonmmease)
- Add a test for stream writer for writing sliced array #3472 [arrow] (viirya)
- Fix CSV infinite loop and improve error messages #3470 [arrow] (tustvold)
- Add more dictionary value type support to
build_compare#3466 (viirya) - Add tests for
FlightClient::{list_flights, list_actions, do_action, get_schema}#3463 [arrow-flight] (alamb) - Minor: add ticket links to failing ipc integration tests #3461 (alamb)
- feat:
column_namebased index access forRecordBatchandStructArray#3458 [arrow] (askoa) - Support Decimal256 in FFI #3453 [arrow] (viirya)
- Remove multiversion dependency #3452 [arrow] (tustvold)
- Re-export nullif kernel #3451 [arrow] (tustvold)
- Meaningful error message for map builder with null keys #3450 [arrow] (Jefffrey)
- Parquet writer v2: clear buffer after page flush #3447 [parquet] (askoa)
- Verify ArrayData::data_type compatible in PrimitiveArray::from #3440 [arrow] (tustvold)
- Preserve DataType metadata in make_builder #3438 [arrow] (tustvold)
- Consolidate arrow ipc tests and increase coverage #3427 [arrow] (alamb)
- Generic bytes dictionary builder #3426 [arrow] (viirya)
- Minor: Improve docs for arrow-ipc, remove clippy ignore #3421 [arrow] (alamb)
- refactor: convert
*like_dyn,*like_utf8_scalar_dynand*like_dictfunctions to macros #3411 [arrow] (askoa) - Add parquet-index binary #3405 [parquet] (tustvold)
- Complete mid-level
FlightClient#3402 [arrow-flight] (alamb) - Implement
RecordBatch<-->FlightDataencode/decode + tests #3391 [arrow] [arrow-flight] (alamb) - Provide
into_builderfor bytearray #3326 [arrow] (viirya)
- support RFC3339 style timestamps in
-
30.0.108 Jan 2023Release notes
Open source →Implemented enhancements:
- Generic bytes dictionary builder #3425 [arrow]
- Derive Clone for the builders in object-store. #3419
- Mid-level
ArrowFlightClient #3371 [arrow-flight] - Improve performance of the CSV parser #3338 [arrow]
Fixed bugs:
nullifkernel no longer exported #3454 [arrow]- PrimitiveArray from ArrayData Unsound For IntervalArray #3439 [arrow]
- LZ4-compressed PQ files unreadable by Pandas and ClickHouse #3433 [parquet]
- Parquet Record API: Cannot convert date before Unix epoch to json #3430 [parquet]
- parquet-fromcsv with writer version v2 does not stop #3408 [parquet]
-
30.0.003 Jan 2023Release notes
Open source →Breaking changes:
- Infer Parquet JSON Logical and Converted Type as UTF-8 #3376 [parquet] (tustvold)
- Use custom Any instead of prost_types #3360 [arrow-flight] (tustvold)
- Use bytes in arrow-flight #3359 [arrow-flight] (tustvold)
Implemented enhancements:
- Add derived implementations of Clone and Debug for
ParquetObjectReader#3381 [parquet] - Speed up TrackedWrite #3366 [parquet]
- Is it possible for ArrowWriter to write key_value_metadata after write all records #3356 [parquet]
- Add UnionArray test to arrow-pyarrow integration test #3346
- Document / Deprecate arrow_flight::utils::flight_data_from_arrow_batch #3312 [arrow] [arrow-flight]
- [FlightSQL] Support HTTPs #3309 [arrow-flight]
- Support UnionArray in ffi #3304 [arrow]
- Add support for Azure Data Lake Storage Gen2 (aka: ADLS Gen2) in Object Store library #3283
- Support casting from String to Decimal #3280 [arrow]
- Allow ArrowCSV writer to control the display of NULL values #3268 [arrow]
Fixed bugs:
- FlightSQL example is broken #3386 [arrow-flight]
- CSV Reader Bounds Incorrectly Handles Header #3364 [arrow]
- Incorrect output string from
try_to_type#3350 - Decimal arithmetic computation fails to run because decimal type equality #3344 [arrow]
- Pretty print not implemented for Map #3322 [arrow]
- ILIKE Kernels Inconsistent Case Folding #3311 [arrow]
Documentation updates:
- minor: Improve arrow-flight docs #3372 [arrow] [arrow-flight] (alamb)
Merged pull requests:
- Version 30.0.0 release notes and changelog #3406 [parquet] [arrow] [arrow-flight] (alamb)
- Ends ParquetRecordBatchStream when polling on StreamState::Error #3404 [parquet] (viirya)
- fix clippy issues #3398 (Jimexist)
- Upgrade multiversion to 0.7.1 #3396 (viirya)
- Make FlightSQL Support HTTPs #3388 [arrow-flight] (viirya)
- Fix broken FlightSQL example #3387 [arrow-flight] (viirya)
- Update prost-build #3385 [arrow-flight] (tustvold)
- Split out arrow-arith (#2594) #3384 [arrow] (tustvold)
- Add derive for Clone and Debug for
ParquetObjectReader#3382 [parquet] (kszlim) - Initial Mid-level
FlightClient#3378 [arrow-flight] (alamb) - Document all features on docs.rs #3377 [arrow] [arrow-flight] (tustvold)
- Split out arrow-row (#2594) #3375 [arrow] (tustvold)
- Remove unnecessary flush calls on TrackedWrite #3374 [parquet] (viirya)
- Update proc-macro2 requirement from =1.0.47 to =1.0.49 #3369 [arrow-flight] (dependabot[bot])
- Add CSV build_buffered (#3338) #3368 [arrow] (tustvold)
- feat: add append_key_value_metadata #3367 [parquet] (jiacai2050)
- Add csv-core based reader (#3338) #3365 [arrow] (tustvold)
- Put BufWriter into TrackedWrite #3361 [parquet] (viirya)
- Add CSV reader benchmark (#3338) #3357 [arrow] (tustvold)
- Use ArrayData::ptr_eq in DictionaryTracker #3354 [arrow] (tustvold)
- Deprecate flight_data_from_arrow_batch #3353 [arrow] [arrow-flight] (Dandandan)
- Fix incorrect output string from try_to_type #3351 (viirya)
- Fix unary_dyn for decimal scalar arithmetic computation #3345 [arrow] (viirya)
- Add UnionArray test to arrow-pyarrow integration test #3343 (viirya)
- feat: configure null value in arrow csv writer #3342 [arrow] (askoa)
- Optimize bulk writing of all blocks of bloom filter #3340 [parquet] (viirya)
- Add MapArray to pretty print #3339 [arrow] (askoa)
- Update prost-build 0.11.4 #3334 [arrow-flight] (tustvold)
- Faster Parquet Bloom Writer #3333 (tustvold)
- Add bloom filter benchmark for parquet writer #3323 [parquet] (viirya)
- Add ASCII fast path for ILIKE scalar (90% faster) #3306 [arrow] (tustvold)
- Support UnionArray in ffi #3305 [arrow] (viirya)
- Support casting from String to Decimal #3281 [arrow] (viirya)
- add more integration test for parquet bloom filter round trip tests #3210 [parquet] (Jimexist)