This is an automated email from the ASF dual-hosted git repository.

alamb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git


The following commit(s) were added to refs/heads/master by this push:
     new dacd35410 Prepare for release `21.0.0` -- update version and 
CHANGELOG.md (#2483)
dacd35410 is described below

commit dacd35410f3a9cee3d6103b9b0f71e8669e7a430
Author: Andrew Lamb <[email protected]>
AuthorDate: Thu Aug 18 16:35:23 2022 -0400

    Prepare for release `21.0.0` -- update version and CHANGELOG.md (#2483)
    
    * Update versions to 21.0.0
    
    * Archive old changelog
    
    * update
    
    * updates
    
    * Update
    
    * update
    
    * updates
    
    Co-authored-by: Raphael Taylor-Davies <[email protected]>
---
 CHANGELOG-old.md                             | 151 ++++++++++++++++++
 CHANGELOG.md                                 | 225 +++++++++++----------------
 arrow-flight/Cargo.toml                      |   4 +-
 arrow-flight/README.md                       |   2 +-
 arrow-pyarrow-integration-testing/Cargo.toml |   4 +-
 arrow/Cargo.toml                             |   2 +-
 arrow/README.md                              |   4 +-
 dev/release/README.md                        |   2 +-
 dev/release/update_change_log.sh             |   4 +-
 integration-testing/Cargo.toml               |   2 +-
 parquet/Cargo.toml                           |   6 +-
 parquet_derive/Cargo.toml                    |   4 +-
 parquet_derive/README.md                     |   4 +-
 parquet_derive_test/Cargo.toml               |   6 +-
 14 files changed, 265 insertions(+), 155 deletions(-)

diff --git a/CHANGELOG-old.md b/CHANGELOG-old.md
index 25be8961d..a71775387 100644
--- a/CHANGELOG-old.md
+++ b/CHANGELOG-old.md
@@ -20,6 +20,157 @@
 
 # Historical Changelog
 
+
+## [20.0.0](https://github.com/apache/arrow-rs/tree/20.0.0) (2022-08-05)
+
+[Full Changelog](https://github.com/apache/arrow-rs/compare/19.0.0...20.0.0)
+
+**Breaking changes:**
+
+- Add more const evaluation for `GenericBinaryArray` and `GenericListArray`: 
add `PREFIX` and data type constructor 
[\#2327](https://github.com/apache/arrow-rs/pull/2327) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
+- Make FFI support optional, change APIs to be `safe` \(\#2302\) 
[\#2303](https://github.com/apache/arrow-rs/pull/2303) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Remove `test_utils` from default features \(\#2298\) 
[\#2299](https://github.com/apache/arrow-rs/pull/2299) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Rename `DataType::Decimal` to `DataType::Decimal128` 
[\#2229](https://github.com/apache/arrow-rs/pull/2229) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Add `Decimal128Iter` and `Decimal256Iter` and do maximum precision/scale 
check [\#2140](https://github.com/apache/arrow-rs/pull/2140) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+
+**Implemented enhancements:**
+
+- Add the constant data type constructors for `ListArray` 
[\#2311](https://github.com/apache/arrow-rs/issues/2311) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Update `FlightSqlService` trait to pass session info along 
[\#2308](https://github.com/apache/arrow-rs/issues/2308) 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)]
+- Optimize `take_bits` for non-null indices 
[\#2306](https://github.com/apache/arrow-rs/issues/2306) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Make FFI support optional via Feature Flag `ffi` 
[\#2302](https://github.com/apache/arrow-rs/issues/2302) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Mark `ffi::ArrowArray::try_new` is safe 
[\#2301](https://github.com/apache/arrow-rs/issues/2301) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Remove test\_utils from default arrow-rs features 
[\#2298](https://github.com/apache/arrow-rs/issues/2298) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Remove `JsonEqual` trait 
[\#2296](https://github.com/apache/arrow-rs/issues/2296) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Move `with_precision_and_scale` to `Decimal` array traits 
[\#2291](https://github.com/apache/arrow-rs/issues/2291) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Improve readability and maybe performance of string --\> 
numeric/time/date/timetamp cast kernels 
[\#2285](https://github.com/apache/arrow-rs/issues/2285) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Add vectorized unpacking for 8, 16, and 64 bit integers 
[\#2276](https://github.com/apache/arrow-rs/issues/2276) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Use initial capacity for interner hashmap 
[\#2273](https://github.com/apache/arrow-rs/issues/2273) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+-  Impl FromIterator for Decimal256Array 
[\#2248](https://github.com/apache/arrow-rs/issues/2248) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Separate `ArrayReader::next_batch`with `ArrayReader::read_records` and 
`ArrayReader::consume_batch` 
[\#2236](https://github.com/apache/arrow-rs/issues/2236) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Rename `DataType::Decimal` to `DataType::Decimal128` 
[\#2228](https://github.com/apache/arrow-rs/issues/2228) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Automatically Grow Parquet BitWriter Buffer 
[\#2226](https://github.com/apache/arrow-rs/issues/2226) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Add `append_option` support to `Decimal128Builder` and `Decimal256Builder` 
[\#2224](https://github.com/apache/arrow-rs/issues/2224) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Split the `FixedSizeBinaryArray` and `FixedSizeListArray` from 
`array_binary.rs` and `array_list.rs` 
[\#2217](https://github.com/apache/arrow-rs/issues/2217) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Don't `Box` Values in `PrimitiveDictionaryBuilder` 
[\#2215](https://github.com/apache/arrow-rs/issues/2215) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Use BitChunks in equal\_bits 
[\#2186](https://github.com/apache/arrow-rs/issues/2186) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Implement `Hash` for `Schema` 
[\#2182](https://github.com/apache/arrow-rs/issues/2182) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- read decimal data type from parquet file with binary physical type 
[\#2159](https://github.com/apache/arrow-rs/issues/2159) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- The `GenericStringBuilder` should use `GenericBinaryBuilder` 
[\#2156](https://github.com/apache/arrow-rs/issues/2156) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Update Rust version to 1.62 
[\#2143](https://github.com/apache/arrow-rs/issues/2143) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)]
+- Check precision and scale against maximum value when constructing 
`Decimal128` and `Decimal256` 
[\#2139](https://github.com/apache/arrow-rs/issues/2139) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Use `ArrayAccessor` in `Decimal128Iter` and `Decimal256Iter` 
[\#2138](https://github.com/apache/arrow-rs/issues/2138) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Use `ArrayAccessor` and `FromIterator` in Cast Kernels 
[\#2137](https://github.com/apache/arrow-rs/issues/2137) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Add `TypedDictionaryArray` for more ergonomic interaction with 
`DictionaryArray` [\#2136](https://github.com/apache/arrow-rs/issues/2136) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Use `ArrayAccessor` in Comparison Kernels 
[\#2135](https://github.com/apache/arrow-rs/issues/2135) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Support `peek_next_page()` and s`kip_next_page` in 
`InMemoryColumnChunkReader` 
[\#2129](https://github.com/apache/arrow-rs/issues/2129) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Lazily materialize the null buffer builder for all array builders. 
[\#2125](https://github.com/apache/arrow-rs/issues/2125) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Do value validation for `Decimal256` 
[\#2112](https://github.com/apache/arrow-rs/issues/2112) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Support `skip_def_levels`  for `ColumnLevelDecoder` 
[\#2107](https://github.com/apache/arrow-rs/issues/2107) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Add integration test for scan rows  with selection 
[\#2106](https://github.com/apache/arrow-rs/issues/2106) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Support for casting from Utf8/String to `Time32` / `Time64` 
[\#2053](https://github.com/apache/arrow-rs/issues/2053) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Update prost and tonic related crates 
[\#2268](https://github.com/apache/arrow-rs/pull/2268) 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)] 
([carols10cents](https://github.com/carols10cents))
+
+**Fixed bugs:**
+
+- temporal conversion functions cannot work on negative input properly 
[\#2325](https://github.com/apache/arrow-rs/issues/2325) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- IPC writer should truncate string array with all empty string 
[\#2312](https://github.com/apache/arrow-rs/issues/2312) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Error order for comparing `Decimal128` or `Decimal256` 
[\#2256](https://github.com/apache/arrow-rs/issues/2256) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Fix maximum and minimum for decimal values for precision greater than 38 
[\#2246](https://github.com/apache/arrow-rs/issues/2246) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- `IntervalMonthDayNanoType::make_value()` does not match C implementation 
[\#2234](https://github.com/apache/arrow-rs/issues/2234) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- `FlightSqlService` trait does not allow `impl`s to do handshake 
[\#2210](https://github.com/apache/arrow-rs/issues/2210) 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)]
+- `EnabledStatistics::None` not working 
[\#2185](https://github.com/apache/arrow-rs/issues/2185) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Boolean ArrayData Equality Incorrect Slice Handling 
[\#2184](https://github.com/apache/arrow-rs/issues/2184) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Publicly export MapFieldNames 
[\#2118](https://github.com/apache/arrow-rs/issues/2118) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+
+**Documentation updates:**
+
+- Update instructions on How to join the slack \#arrow-rust channel -- or 
maybe try to switch to discord?? 
[\#2192](https://github.com/apache/arrow-rs/issues/2192)
+- \[Minor\] Improve arrow and parquet READMEs, document parquet feature flags 
[\#2324](https://github.com/apache/arrow-rs/pull/2324) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([alamb](https://github.com/alamb))
+
+**Performance improvements:**
+
+- Improve speed of writing string dictionaries to parquet by skipping a 
copy\(\#1764\)  [\#2322](https://github.com/apache/arrow-rs/pull/2322) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+
+**Closed issues:**
+
+- Fix wrong logic in calculate\_row\_count when skipping values 
[\#2328](https://github.com/apache/arrow-rs/issues/2328) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Support filter for parquet data type 
[\#2126](https://github.com/apache/arrow-rs/issues/2126) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Make skip value in ByteArrayDecoderDictionary avoid decoding 
[\#2088](https://github.com/apache/arrow-rs/issues/2088) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+
+**Merged pull requests:**
+
+- fix: Fix skip error in calculate\_row\_count. 
[\#2329](https://github.com/apache/arrow-rs/pull/2329) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
+- temporal conversion functions should work on negative input properly 
[\#2326](https://github.com/apache/arrow-rs/pull/2326) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Increase DeltaBitPackEncoder miniblock size to 64 for 64-bit integers  
\(\#2282\) [\#2319](https://github.com/apache/arrow-rs/pull/2319) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Remove JsonEqual [\#2317](https://github.com/apache/arrow-rs/pull/2317) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- fix: IPC writer should truncate string array with all empty string 
[\#2314](https://github.com/apache/arrow-rs/pull/2314) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([JasonLi-cn](https://github.com/JasonLi-cn))
+- Pass pull `Request<FlightDescriptor>` to `FlightSqlService` `impl`s  
[\#2309](https://github.com/apache/arrow-rs/pull/2309) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)] 
([avantgardnerio](https://github.com/avantgardnerio))
+- Speedup take\_boolean / take\_bits for non-null indices \(~4 - 5x speedup\) 
[\#2307](https://github.com/apache/arrow-rs/pull/2307) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([Dandandan](https://github.com/Dandandan))
+- Add typed dictionary \(\#2136\) 
[\#2297](https://github.com/apache/arrow-rs/pull/2297) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- \[Minor\] Improve types shown in cast error messages 
[\#2295](https://github.com/apache/arrow-rs/pull/2295) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([alamb](https://github.com/alamb))
+- Move `with_precision_and_scale` to `BasicDecimalArray` trait 
[\#2292](https://github.com/apache/arrow-rs/pull/2292) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Replace the `fn get_data_type` by `const DATA_TYPE` in BinaryArray and 
StringArray [\#2289](https://github.com/apache/arrow-rs/pull/2289) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
+- Clean up string casts and improve performance 
[\#2284](https://github.com/apache/arrow-rs/pull/2284) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([alamb](https://github.com/alamb))
+- \[Minor\] Add tests for temporal cast error paths 
[\#2283](https://github.com/apache/arrow-rs/pull/2283) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([alamb](https://github.com/alamb))
+- Add unpack8, unpack16, unpack64 \(\#2276\) ~10-50% faster 
[\#2278](https://github.com/apache/arrow-rs/pull/2278) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Fix bugs in the `from_list` function. 
[\#2277](https://github.com/apache/arrow-rs/pull/2277) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
+- fix: use signed comparator to compare decimal128 and decimal256 
[\#2275](https://github.com/apache/arrow-rs/pull/2275) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([liukun4515](https://github.com/liukun4515))
+- Use initial capacity for interner hashmap 
[\#2272](https://github.com/apache/arrow-rs/pull/2272) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Dandandan](https://github.com/Dandandan))
+- Remove fallibility from paruqet RleEncoder \(\#2226\) 
[\#2259](https://github.com/apache/arrow-rs/pull/2259) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Fix escaped like wildcards in `like_utf8` / `nlike_utf8` kernels 
[\#2258](https://github.com/apache/arrow-rs/pull/2258) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([daniel-martinez-maqueda-sap](https://github.com/daniel-martinez-maqueda-sap))
+- Add tests for reading nested decimal arrays from parquet 
[\#2254](https://github.com/apache/arrow-rs/pull/2254) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- feat: Implement string cast operations for Time32 and Time64 
[\#2251](https://github.com/apache/arrow-rs/pull/2251) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([stuartcarnie](https://github.com/stuartcarnie))
+- move `FixedSizeList` to `array_fixed_size_list.rs` 
[\#2250](https://github.com/apache/arrow-rs/pull/2250) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
+- Impl FromIterator for Decimal256Array 
[\#2247](https://github.com/apache/arrow-rs/pull/2247) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Fix max and min value for decimal precision greater than 38 
[\#2245](https://github.com/apache/arrow-rs/pull/2245) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Make `Schema::fields` and `Schema::metadata` `pub` \(public\) 
[\#2239](https://github.com/apache/arrow-rs/pull/2239) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([alamb](https://github.com/alamb))
+- \[Minor\] Improve Schema metadata mismatch error 
[\#2238](https://github.com/apache/arrow-rs/pull/2238) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([alamb](https://github.com/alamb))
+- Separate ArrayReader::next\_batch with read\_records and consume\_batch 
[\#2237](https://github.com/apache/arrow-rs/pull/2237) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
+- Update `IntervalMonthDayNanoType::make_value()` to conform to specifications 
[\#2235](https://github.com/apache/arrow-rs/pull/2235) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([avantgardnerio](https://github.com/avantgardnerio))
+- Disable value validation for Decimal256 case 
[\#2232](https://github.com/apache/arrow-rs/pull/2232) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Automatically grow parquet BitWriter \(\#2226\) \(~10% faster\) 
[\#2231](https://github.com/apache/arrow-rs/pull/2231) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Only trigger `arrow` CI on changes to arrow 
[\#2227](https://github.com/apache/arrow-rs/pull/2227) 
([alamb](https://github.com/alamb))
+- Add append\_option support to decimal builders 
[\#2225](https://github.com/apache/arrow-rs/pull/2225) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([bphillips-exos](https://github.com/bphillips-exos))
+- Optimized writing of byte array to parquet \(\#1764\) \(2x faster\) 
[\#2221](https://github.com/apache/arrow-rs/pull/2221) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Increase test coverage of ArrowWriter 
[\#2220](https://github.com/apache/arrow-rs/pull/2220) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Update instructions on how to join the Slack channel 
[\#2219](https://github.com/apache/arrow-rs/pull/2219) 
([HaoYang670](https://github.com/HaoYang670))
+- Move `FixedSizeBinaryArray` to `array_fixed_size_binary.rs` 
[\#2218](https://github.com/apache/arrow-rs/pull/2218) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
+- Avoid boxing in PrimitiveDictionaryBuilder 
[\#2216](https://github.com/apache/arrow-rs/pull/2216) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- remove redundant CI benchmark check, cleanups 
[\#2212](https://github.com/apache/arrow-rs/pull/2212) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([alamb](https://github.com/alamb))
+- Update `FlightSqlService` trait to proxy handshake 
[\#2211](https://github.com/apache/arrow-rs/pull/2211) 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)] 
([avantgardnerio](https://github.com/avantgardnerio))
+- parquet: export json api with `serde_json` feature name 
[\#2209](https://github.com/apache/arrow-rs/pull/2209) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([flisky](https://github.com/flisky))
+- Cleanup record skipping logic and tests \(\#2158\) 
[\#2199](https://github.com/apache/arrow-rs/pull/2199) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Use BitChunks in equal\_bits 
[\#2194](https://github.com/apache/arrow-rs/pull/2194) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Fix disabling parquet statistics \(\#2185\) 
[\#2191](https://github.com/apache/arrow-rs/pull/2191) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Change CI names to match crate names 
[\#2189](https://github.com/apache/arrow-rs/pull/2189) 
([alamb](https://github.com/alamb))
+- Fix offset handling in boolean\_equal \(\#2184\) 
[\#2187](https://github.com/apache/arrow-rs/pull/2187) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Implement `Hash` for `Schema` 
[\#2183](https://github.com/apache/arrow-rs/pull/2183) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([crepererum](https://github.com/crepererum))
+- Let the `StringBuilder` use `BinaryBuilder` 
[\#2181](https://github.com/apache/arrow-rs/pull/2181) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
+- Use ArrayAccessor and FromIterator in Cast Kernels 
[\#2169](https://github.com/apache/arrow-rs/pull/2169) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Split most arrow specific CI checks into their own workflows \(reduce common 
CI time to 21 minutes\) [\#2168](https://github.com/apache/arrow-rs/pull/2168) 
([alamb](https://github.com/alamb))
+- Remove another attempt to cache target directory in action.yaml 
[\#2167](https://github.com/apache/arrow-rs/pull/2167) 
([alamb](https://github.com/alamb))
+- Run actions on push to master, pull requests 
[\#2166](https://github.com/apache/arrow-rs/pull/2166) 
([alamb](https://github.com/alamb))
+- Break parquet\_derive and arrow\_flight tests into their own workflows 
[\#2165](https://github.com/apache/arrow-rs/pull/2165) 
([alamb](https://github.com/alamb))
+- \[minor\] use type aliases refine code. 
[\#2161](https://github.com/apache/arrow-rs/pull/2161) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
+- parquet reader: Support reading decimals from parquet `BYTE_ARRAY` type 
[\#2160](https://github.com/apache/arrow-rs/pull/2160) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([liukun4515](https://github.com/liukun4515))
+- Add integration test for scan rows with selection 
[\#2158](https://github.com/apache/arrow-rs/pull/2158) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
+- Use ArrayAccessor in Comparison Kernels 
[\#2157](https://github.com/apache/arrow-rs/pull/2157) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Implement `peek\_next\_page` and `skip\_next\_page` for `InMemoryColumnCh… 
[\#2155](https://github.com/apache/arrow-rs/pull/2155) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([thinkharderdev](https://github.com/thinkharderdev))
+- Avoid decoding unneeded values in ByteArrayDecoderDictionary 
[\#2154](https://github.com/apache/arrow-rs/pull/2154) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([thinkharderdev](https://github.com/thinkharderdev))
+- Only run integration tests when `arrow` changes 
[\#2152](https://github.com/apache/arrow-rs/pull/2152) 
([alamb](https://github.com/alamb))
+- Break out docs CI job to its own github action 
[\#2151](https://github.com/apache/arrow-rs/pull/2151) 
([alamb](https://github.com/alamb))
+- Do not pretend to cache rust build artifacts, speed up CI by ~20% 
[\#2150](https://github.com/apache/arrow-rs/pull/2150) 
([alamb](https://github.com/alamb))
+- Update rust version to 1.62 
[\#2144](https://github.com/apache/arrow-rs/pull/2144) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
+- Make MapFieldNames public \(\#2118\) 
[\#2134](https://github.com/apache/arrow-rs/pull/2134) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Add ArrayAccessor trait, remove duplication in array iterators \(\#1948\) 
[\#2133](https://github.com/apache/arrow-rs/pull/2133) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Lazily materialize the null buffer builder for all array builders. 
[\#2127](https://github.com/apache/arrow-rs/pull/2127) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
+- Faster parquet DictEncoder \(~20%\) 
[\#2123](https://github.com/apache/arrow-rs/pull/2123) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Add validation for Decimal256 
[\#2113](https://github.com/apache/arrow-rs/pull/2113) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Support skip\_def\_levels for ColumnLevelDecoder 
[\#2111](https://github.com/apache/arrow-rs/pull/2111) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
+- Donate `object_store` code from object\_store\_rs to arrow-rs 
[\#2081](https://github.com/apache/arrow-rs/pull/2081) 
([alamb](https://github.com/alamb))
+- Improve `validate_utf8` performance 
[\#2048](https://github.com/apache/arrow-rs/pull/2048) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tfeda](https://github.com/tfeda))
+
 ## [19.0.0](https://github.com/apache/arrow-rs/tree/19.0.0) (2022-07-22)
 
 [Full Changelog](https://github.com/apache/arrow-rs/compare/18.0.0...19.0.0)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 87f67015f..220842c76 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,155 +19,114 @@
 
 # Changelog
 
-## [20.0.0](https://github.com/apache/arrow-rs/tree/20.0.0) (2022-08-05)
+## [21.0.0](https://github.com/apache/arrow-rs/tree/21.0.0) (2022-08-18)
 
-[Full Changelog](https://github.com/apache/arrow-rs/compare/19.0.0...20.0.0)
+[Full Changelog](https://github.com/apache/arrow-rs/compare/20.0.0...21.0.0)
 
 **Breaking changes:**
 
-- Add more const evaluation for `GenericBinaryArray` and `GenericListArray`: 
add `PREFIX` and data type constructor 
[\#2327](https://github.com/apache/arrow-rs/pull/2327) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
-- Make FFI support optional, change APIs to be `safe` \(\#2302\) 
[\#2303](https://github.com/apache/arrow-rs/pull/2303) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
-- Remove `test_utils` from default features \(\#2298\) 
[\#2299](https://github.com/apache/arrow-rs/pull/2299) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
-- Rename `DataType::Decimal` to `DataType::Decimal128` 
[\#2229](https://github.com/apache/arrow-rs/pull/2229) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Add `Decimal128Iter` and `Decimal256Iter` and do maximum precision/scale 
check [\#2140](https://github.com/apache/arrow-rs/pull/2140) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Return structured `ColumnCloseResult` \(\#2465\) 
[\#2466](https://github.com/apache/arrow-rs/pull/2466) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Push `ChunkReader` into `SerializedPageReader` \(\#2463\) 
[\#2464](https://github.com/apache/arrow-rs/pull/2464) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Revise FromIterator for Decimal128Array to use Into instead of Borrow 
[\#2442](https://github.com/apache/arrow-rs/pull/2442) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Use Fixed-Length Array in BasicDecimal new and raw\_value 
[\#2405](https://github.com/apache/arrow-rs/pull/2405) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
+- Remove deprecated ParquetWriter 
[\#2380](https://github.com/apache/arrow-rs/pull/2380) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Remove deprecated SliceableCursor and InMemoryWriteableCursor 
[\#2378](https://github.com/apache/arrow-rs/pull/2378) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
 
 **Implemented enhancements:**
 
-- Add the constant data type constructors for `ListArray` 
[\#2311](https://github.com/apache/arrow-rs/issues/2311) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Update `FlightSqlService` trait to pass session info along 
[\#2308](https://github.com/apache/arrow-rs/issues/2308) 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)]
-- Optimize `take_bits` for non-null indices 
[\#2306](https://github.com/apache/arrow-rs/issues/2306) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Make FFI support optional via Feature Flag `ffi` 
[\#2302](https://github.com/apache/arrow-rs/issues/2302) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Mark `ffi::ArrowArray::try_new` is safe 
[\#2301](https://github.com/apache/arrow-rs/issues/2301) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Remove test\_utils from default arrow-rs features 
[\#2298](https://github.com/apache/arrow-rs/issues/2298) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Remove `JsonEqual` trait 
[\#2296](https://github.com/apache/arrow-rs/issues/2296) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Move `with_precision_and_scale` to `Decimal` array traits 
[\#2291](https://github.com/apache/arrow-rs/issues/2291) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Improve readability and maybe performance of string --\> 
numeric/time/date/timetamp cast kernels 
[\#2285](https://github.com/apache/arrow-rs/issues/2285) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Add vectorized unpacking for 8, 16, and 64 bit integers 
[\#2276](https://github.com/apache/arrow-rs/issues/2276) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
-- Use initial capacity for interner hashmap 
[\#2273](https://github.com/apache/arrow-rs/issues/2273) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
--  Impl FromIterator for Decimal256Array 
[\#2248](https://github.com/apache/arrow-rs/issues/2248) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Separate `ArrayReader::next_batch`with `ArrayReader::read_records` and 
`ArrayReader::consume_batch` 
[\#2236](https://github.com/apache/arrow-rs/issues/2236) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
-- Rename `DataType::Decimal` to `DataType::Decimal128` 
[\#2228](https://github.com/apache/arrow-rs/issues/2228) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Automatically Grow Parquet BitWriter Buffer 
[\#2226](https://github.com/apache/arrow-rs/issues/2226) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
-- Add `append_option` support to `Decimal128Builder` and `Decimal256Builder` 
[\#2224](https://github.com/apache/arrow-rs/issues/2224) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Split the `FixedSizeBinaryArray` and `FixedSizeListArray` from 
`array_binary.rs` and `array_list.rs` 
[\#2217](https://github.com/apache/arrow-rs/issues/2217) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Don't `Box` Values in `PrimitiveDictionaryBuilder` 
[\#2215](https://github.com/apache/arrow-rs/issues/2215) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Use BitChunks in equal\_bits 
[\#2186](https://github.com/apache/arrow-rs/issues/2186) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Implement `Hash` for `Schema` 
[\#2182](https://github.com/apache/arrow-rs/issues/2182) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- read decimal data type from parquet file with binary physical type 
[\#2159](https://github.com/apache/arrow-rs/issues/2159) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
-- The `GenericStringBuilder` should use `GenericBinaryBuilder` 
[\#2156](https://github.com/apache/arrow-rs/issues/2156) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Update Rust version to 1.62 
[\#2143](https://github.com/apache/arrow-rs/issues/2143) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)]
-- Check precision and scale against maximum value when constructing 
`Decimal128` and `Decimal256` 
[\#2139](https://github.com/apache/arrow-rs/issues/2139) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Use `ArrayAccessor` in `Decimal128Iter` and `Decimal256Iter` 
[\#2138](https://github.com/apache/arrow-rs/issues/2138) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Use `ArrayAccessor` and `FromIterator` in Cast Kernels 
[\#2137](https://github.com/apache/arrow-rs/issues/2137) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Add `TypedDictionaryArray` for more ergonomic interaction with 
`DictionaryArray` [\#2136](https://github.com/apache/arrow-rs/issues/2136) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Use `ArrayAccessor` in Comparison Kernels 
[\#2135](https://github.com/apache/arrow-rs/issues/2135) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Support `peek_next_page()` and s`kip_next_page` in 
`InMemoryColumnChunkReader` 
[\#2129](https://github.com/apache/arrow-rs/issues/2129) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
-- Lazily materialize the null buffer builder for all array builders. 
[\#2125](https://github.com/apache/arrow-rs/issues/2125) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Do value validation for `Decimal256` 
[\#2112](https://github.com/apache/arrow-rs/issues/2112) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Support `skip_def_levels`  for `ColumnLevelDecoder` 
[\#2107](https://github.com/apache/arrow-rs/issues/2107) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
-- Add integration test for scan rows  with selection 
[\#2106](https://github.com/apache/arrow-rs/issues/2106) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
-- Support for casting from Utf8/String to `Time32` / `Time64` 
[\#2053](https://github.com/apache/arrow-rs/issues/2053) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Update prost and tonic related crates 
[\#2268](https://github.com/apache/arrow-rs/pull/2268) 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)] 
([carols10cents](https://github.com/carols10cents))
+- add into\_inner method to ArrowWriter 
[\#2491](https://github.com/apache/arrow-rs/issues/2491) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Remove byteorder dependency 
[\#2472](https://github.com/apache/arrow-rs/issues/2472) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Return Structured ColumnCloseResult from GenericColumnWriter::close 
[\#2465](https://github.com/apache/arrow-rs/issues/2465) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Push `ChunkReader` into `SerializedPageReader` 
[\#2463](https://github.com/apache/arrow-rs/issues/2463) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Support SerializedPageReader::skip\_page without OffsetIndex 
[\#2459](https://github.com/apache/arrow-rs/issues/2459) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Support Time64/Time32 comparison 
[\#2457](https://github.com/apache/arrow-rs/issues/2457) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Revise FromIterator for Decimal128Array to use Into instead of Borrow 
[\#2441](https://github.com/apache/arrow-rs/issues/2441) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Support `RowFilter` within`ParquetRecordBatchReader` 
[\#2431](https://github.com/apache/arrow-rs/issues/2431) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Remove the field `StructBuilder::len` 
[\#2429](https://github.com/apache/arrow-rs/issues/2429) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Standardize creation and configuration of parquet --\> Arrow readers \( 
`ParquetRecordBatchReaderBuilder`\) 
[\#2427](https://github.com/apache/arrow-rs/issues/2427) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Use `OffsetIndex` to Prune IO in `ParquetRecordBatchStream` 
[\#2426](https://github.com/apache/arrow-rs/issues/2426) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Support `peek_next_page` and `skip_next_page` in `InMemoryPageReader` 
[\#2406](https://github.com/apache/arrow-rs/issues/2406) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Support casting from `Utf8`/`LargeUtf8` to `Binary`/`LargeBinary` 
[\#2402](https://github.com/apache/arrow-rs/issues/2402) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Support casting between `Decimal128` and `Decimal256` arrays 
[\#2375](https://github.com/apache/arrow-rs/issues/2375) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Combine multiple selections into the same batch size in `skip_records` 
[\#2358](https://github.com/apache/arrow-rs/issues/2358) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Add API to change timezone for timestamp array 
[\#2346](https://github.com/apache/arrow-rs/issues/2346) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Change the output of `read_buffer` Arrow IPC API to return `Result<_>` 
[\#2342](https://github.com/apache/arrow-rs/issues/2342) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Allow `skip_records` in `GenericColumnReader` to skip across row groups 
[\#2331](https://github.com/apache/arrow-rs/issues/2331) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Optimize the validation of `Decimal256` 
[\#2320](https://github.com/apache/arrow-rs/issues/2320) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Implement Skip for `DeltaBitPackDecoder` 
[\#2281](https://github.com/apache/arrow-rs/issues/2281) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Changes to `ParquetRecordBatchStream` to support row filtering in DataFusion 
[\#2270](https://github.com/apache/arrow-rs/issues/2270) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Add `ArrayReader::skip_records` API 
[\#2197](https://github.com/apache/arrow-rs/issues/2197) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
 
 **Fixed bugs:**
 
-- temporal conversion functions cannot work on negative input properly 
[\#2325](https://github.com/apache/arrow-rs/issues/2325) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- IPC writer should truncate string array with all empty string 
[\#2312](https://github.com/apache/arrow-rs/issues/2312) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Error order for comparing `Decimal128` or `Decimal256` 
[\#2256](https://github.com/apache/arrow-rs/issues/2256) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Fix maximum and minimum for decimal values for precision greater than 38 
[\#2246](https://github.com/apache/arrow-rs/issues/2246) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- `IntervalMonthDayNanoType::make_value()` does not match C implementation 
[\#2234](https://github.com/apache/arrow-rs/issues/2234) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- `FlightSqlService` trait does not allow `impl`s to do handshake 
[\#2210](https://github.com/apache/arrow-rs/issues/2210) 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)]
-- `EnabledStatistics::None` not working 
[\#2185](https://github.com/apache/arrow-rs/issues/2185) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
-- Boolean ArrayData Equality Incorrect Slice Handling 
[\#2184](https://github.com/apache/arrow-rs/issues/2184) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Publicly export MapFieldNames 
[\#2118](https://github.com/apache/arrow-rs/issues/2118) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-
-**Documentation updates:**
-
-- Update instructions on How to join the slack \#arrow-rust channel -- or 
maybe try to switch to discord?? 
[\#2192](https://github.com/apache/arrow-rs/issues/2192)
-- \[Minor\] Improve arrow and parquet READMEs, document parquet feature flags 
[\#2324](https://github.com/apache/arrow-rs/pull/2324) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([alamb](https://github.com/alamb))
-
-**Performance improvements:**
-
-- Improve speed of writing string dictionaries to parquet by skipping a 
copy\(\#1764\)  [\#2322](https://github.com/apache/arrow-rs/pull/2322) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Panic in SerializedPageReader without offset index 
[\#2503](https://github.com/apache/arrow-rs/issues/2503) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- MapArray columns don't handle null values correctly 
[\#2484](https://github.com/apache/arrow-rs/issues/2484) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- There is no compiler error when using an invalid Decimal type. 
[\#2440](https://github.com/apache/arrow-rs/issues/2440) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Flight SQL Server sends incorrect response for `DoPutUpdateResult` 
[\#2403](https://github.com/apache/arrow-rs/issues/2403) 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)]
+- `AsyncFileReader`No Longer Object-Safe 
[\#2372](https://github.com/apache/arrow-rs/issues/2372) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- StructBuilder Does not Verify Child Lengths 
[\#2252](https://github.com/apache/arrow-rs/issues/2252) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
 
 **Closed issues:**
 
-- Fix wrong logic in calculate\_row\_count when skipping values 
[\#2328](https://github.com/apache/arrow-rs/issues/2328) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
-- Support filter for parquet data type 
[\#2126](https://github.com/apache/arrow-rs/issues/2126) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
-- Make skip value in ByteArrayDecoderDictionary avoid decoding 
[\#2088](https://github.com/apache/arrow-rs/issues/2088) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Combine `DecimalArray` validation 
[\#2447](https://github.com/apache/arrow-rs/issues/2447) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
 
 **Merged pull requests:**
 
-- fix: Fix skip error in calculate\_row\_count. 
[\#2329](https://github.com/apache/arrow-rs/pull/2329) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
-- temporal conversion functions should work on negative input properly 
[\#2326](https://github.com/apache/arrow-rs/pull/2326) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Increase DeltaBitPackEncoder miniblock size to 64 for 64-bit integers  
\(\#2282\) [\#2319](https://github.com/apache/arrow-rs/pull/2319) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
-- Remove JsonEqual [\#2317](https://github.com/apache/arrow-rs/pull/2317) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- fix: IPC writer should truncate string array with all empty string 
[\#2314](https://github.com/apache/arrow-rs/pull/2314) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([JasonLi-cn](https://github.com/JasonLi-cn))
-- Pass pull `Request<FlightDescriptor>` to `FlightSqlService` `impl`s  
[\#2309](https://github.com/apache/arrow-rs/pull/2309) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)] 
([avantgardnerio](https://github.com/avantgardnerio))
-- Speedup take\_boolean / take\_bits for non-null indices \(~4 - 5x speedup\) 
[\#2307](https://github.com/apache/arrow-rs/pull/2307) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([Dandandan](https://github.com/Dandandan))
-- Add typed dictionary \(\#2136\) 
[\#2297](https://github.com/apache/arrow-rs/pull/2297) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
-- \[Minor\] Improve types shown in cast error messages 
[\#2295](https://github.com/apache/arrow-rs/pull/2295) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([alamb](https://github.com/alamb))
-- Move `with_precision_and_scale` to `BasicDecimalArray` trait 
[\#2292](https://github.com/apache/arrow-rs/pull/2292) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Replace the `fn get_data_type` by `const DATA_TYPE` in BinaryArray and 
StringArray [\#2289](https://github.com/apache/arrow-rs/pull/2289) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
-- Clean up string casts and improve performance 
[\#2284](https://github.com/apache/arrow-rs/pull/2284) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([alamb](https://github.com/alamb))
-- \[Minor\] Add tests for temporal cast error paths 
[\#2283](https://github.com/apache/arrow-rs/pull/2283) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([alamb](https://github.com/alamb))
-- Add unpack8, unpack16, unpack64 \(\#2276\) ~10-50% faster 
[\#2278](https://github.com/apache/arrow-rs/pull/2278) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
-- Fix bugs in the `from_list` function. 
[\#2277](https://github.com/apache/arrow-rs/pull/2277) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
-- fix: use signed comparator to compare decimal128 and decimal256 
[\#2275](https://github.com/apache/arrow-rs/pull/2275) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([liukun4515](https://github.com/liukun4515))
-- Use initial capacity for interner hashmap 
[\#2272](https://github.com/apache/arrow-rs/pull/2272) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Dandandan](https://github.com/Dandandan))
-- Remove fallibility from paruqet RleEncoder \(\#2226\) 
[\#2259](https://github.com/apache/arrow-rs/pull/2259) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
-- Fix escaped like wildcards in `like_utf8` / `nlike_utf8` kernels 
[\#2258](https://github.com/apache/arrow-rs/pull/2258) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([daniel-martinez-maqueda-sap](https://github.com/daniel-martinez-maqueda-sap))
-- Add tests for reading nested decimal arrays from parquet 
[\#2254](https://github.com/apache/arrow-rs/pull/2254) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
-- feat: Implement string cast operations for Time32 and Time64 
[\#2251](https://github.com/apache/arrow-rs/pull/2251) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([stuartcarnie](https://github.com/stuartcarnie))
-- move `FixedSizeList` to `array_fixed_size_list.rs` 
[\#2250](https://github.com/apache/arrow-rs/pull/2250) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
-- Impl FromIterator for Decimal256Array 
[\#2247](https://github.com/apache/arrow-rs/pull/2247) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Fix max and min value for decimal precision greater than 38 
[\#2245](https://github.com/apache/arrow-rs/pull/2245) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Make `Schema::fields` and `Schema::metadata` `pub` \(public\) 
[\#2239](https://github.com/apache/arrow-rs/pull/2239) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([alamb](https://github.com/alamb))
-- \[Minor\] Improve Schema metadata mismatch error 
[\#2238](https://github.com/apache/arrow-rs/pull/2238) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([alamb](https://github.com/alamb))
-- Separate ArrayReader::next\_batch with read\_records and consume\_batch 
[\#2237](https://github.com/apache/arrow-rs/pull/2237) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
-- Update `IntervalMonthDayNanoType::make_value()` to conform to specifications 
[\#2235](https://github.com/apache/arrow-rs/pull/2235) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([avantgardnerio](https://github.com/avantgardnerio))
-- Disable value validation for Decimal256 case 
[\#2232](https://github.com/apache/arrow-rs/pull/2232) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Automatically grow parquet BitWriter \(\#2226\) \(~10% faster\) 
[\#2231](https://github.com/apache/arrow-rs/pull/2231) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
-- Only trigger `arrow` CI on changes to arrow 
[\#2227](https://github.com/apache/arrow-rs/pull/2227) 
([alamb](https://github.com/alamb))
-- Add append\_option support to decimal builders 
[\#2225](https://github.com/apache/arrow-rs/pull/2225) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([bphillips-exos](https://github.com/bphillips-exos))
-- Optimized writing of byte array to parquet \(\#1764\) \(2x faster\) 
[\#2221](https://github.com/apache/arrow-rs/pull/2221) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
-- Increase test coverage of ArrowWriter 
[\#2220](https://github.com/apache/arrow-rs/pull/2220) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
-- Update instructions on how to join the Slack channel 
[\#2219](https://github.com/apache/arrow-rs/pull/2219) 
([HaoYang670](https://github.com/HaoYang670))
-- Move `FixedSizeBinaryArray` to `array_fixed_size_binary.rs` 
[\#2218](https://github.com/apache/arrow-rs/pull/2218) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
-- Avoid boxing in PrimitiveDictionaryBuilder 
[\#2216](https://github.com/apache/arrow-rs/pull/2216) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
-- remove redundant CI benchmark check, cleanups 
[\#2212](https://github.com/apache/arrow-rs/pull/2212) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([alamb](https://github.com/alamb))
-- Update `FlightSqlService` trait to proxy handshake 
[\#2211](https://github.com/apache/arrow-rs/pull/2211) 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)] 
([avantgardnerio](https://github.com/avantgardnerio))
-- parquet: export json api with `serde_json` feature name 
[\#2209](https://github.com/apache/arrow-rs/pull/2209) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([flisky](https://github.com/flisky))
-- Cleanup record skipping logic and tests \(\#2158\) 
[\#2199](https://github.com/apache/arrow-rs/pull/2199) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
-- Use BitChunks in equal\_bits 
[\#2194](https://github.com/apache/arrow-rs/pull/2194) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
-- Fix disabling parquet statistics \(\#2185\) 
[\#2191](https://github.com/apache/arrow-rs/pull/2191) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
-- Change CI names to match crate names 
[\#2189](https://github.com/apache/arrow-rs/pull/2189) 
([alamb](https://github.com/alamb))
-- Fix offset handling in boolean\_equal \(\#2184\) 
[\#2187](https://github.com/apache/arrow-rs/pull/2187) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
-- Implement `Hash` for `Schema` 
[\#2183](https://github.com/apache/arrow-rs/pull/2183) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([crepererum](https://github.com/crepererum))
-- Let the `StringBuilder` use `BinaryBuilder` 
[\#2181](https://github.com/apache/arrow-rs/pull/2181) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
-- Use ArrayAccessor and FromIterator in Cast Kernels 
[\#2169](https://github.com/apache/arrow-rs/pull/2169) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Split most arrow specific CI checks into their own workflows \(reduce common 
CI time to 21 minutes\) [\#2168](https://github.com/apache/arrow-rs/pull/2168) 
([alamb](https://github.com/alamb))
-- Remove another attempt to cache target directory in action.yaml 
[\#2167](https://github.com/apache/arrow-rs/pull/2167) 
([alamb](https://github.com/alamb))
-- Run actions on push to master, pull requests 
[\#2166](https://github.com/apache/arrow-rs/pull/2166) 
([alamb](https://github.com/alamb))
-- Break parquet\_derive and arrow\_flight tests into their own workflows 
[\#2165](https://github.com/apache/arrow-rs/pull/2165) 
([alamb](https://github.com/alamb))
-- \[minor\] use type aliases refine code. 
[\#2161](https://github.com/apache/arrow-rs/pull/2161) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
-- parquet reader: Support reading decimals from parquet `BYTE_ARRAY` type 
[\#2160](https://github.com/apache/arrow-rs/pull/2160) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([liukun4515](https://github.com/liukun4515))
-- Add integration test for scan rows with selection 
[\#2158](https://github.com/apache/arrow-rs/pull/2158) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
-- Use ArrayAccessor in Comparison Kernels 
[\#2157](https://github.com/apache/arrow-rs/pull/2157) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Implement `peek\_next\_page` and `skip\_next\_page` for `InMemoryColumnCh… 
[\#2155](https://github.com/apache/arrow-rs/pull/2155) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([thinkharderdev](https://github.com/thinkharderdev))
-- Avoid decoding unneeded values in ByteArrayDecoderDictionary 
[\#2154](https://github.com/apache/arrow-rs/pull/2154) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([thinkharderdev](https://github.com/thinkharderdev))
-- Only run integration tests when `arrow` changes 
[\#2152](https://github.com/apache/arrow-rs/pull/2152) 
([alamb](https://github.com/alamb))
-- Break out docs CI job to its own github action 
[\#2151](https://github.com/apache/arrow-rs/pull/2151) 
([alamb](https://github.com/alamb))
-- Do not pretend to cache rust build artifacts, speed up CI by ~20% 
[\#2150](https://github.com/apache/arrow-rs/pull/2150) 
([alamb](https://github.com/alamb))
-- Update rust version to 1.62 
[\#2144](https://github.com/apache/arrow-rs/pull/2144) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
-- Make MapFieldNames public \(\#2118\) 
[\#2134](https://github.com/apache/arrow-rs/pull/2134) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
-- Add ArrayAccessor trait, remove duplication in array iterators \(\#1948\) 
[\#2133](https://github.com/apache/arrow-rs/pull/2133) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
-- Lazily materialize the null buffer builder for all array builders. 
[\#2127](https://github.com/apache/arrow-rs/pull/2127) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
-- Faster parquet DictEncoder \(~20%\) 
[\#2123](https://github.com/apache/arrow-rs/pull/2123) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
-- Add validation for Decimal256 
[\#2113](https://github.com/apache/arrow-rs/pull/2113) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Support skip\_def\_levels for ColumnLevelDecoder 
[\#2111](https://github.com/apache/arrow-rs/pull/2111) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
-- Donate `object_store` code from object\_store\_rs to arrow-rs 
[\#2081](https://github.com/apache/arrow-rs/pull/2081) 
([alamb](https://github.com/alamb))
-- Improve `validate_utf8` performance 
[\#2048](https://github.com/apache/arrow-rs/pull/2048) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tfeda](https://github.com/tfeda))
+- Fix bug in page skipping 
[\#2504](https://github.com/apache/arrow-rs/pull/2504) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([thinkharderdev](https://github.com/thinkharderdev))
+- Fix `MapArrayReader` \(\#2484\) \(\#1699\) \(\#1561\) 
[\#2500](https://github.com/apache/arrow-rs/pull/2500) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Add API to Retrieve Finished Writer from Parquet Writer 
[\#2498](https://github.com/apache/arrow-rs/pull/2498) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([jiacai2050](https://github.com/jiacai2050))
+- Derive Copy,Clone for BasicDecimal 
[\#2495](https://github.com/apache/arrow-rs/pull/2495) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- remove byteorder dependency from parquet 
[\#2486](https://github.com/apache/arrow-rs/pull/2486) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([psvri](https://github.com/psvri))
+- parquet-read: add support to read parquet data from stdin 
[\#2482](https://github.com/apache/arrow-rs/pull/2482) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([nvartolomei](https://github.com/nvartolomei))
+- Remove Position trait \(\#1163\) 
[\#2479](https://github.com/apache/arrow-rs/pull/2479) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Add ChunkReader::get\_bytes 
[\#2478](https://github.com/apache/arrow-rs/pull/2478) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- RFC: Simplify decimal \(\#2440\) 
[\#2477](https://github.com/apache/arrow-rs/pull/2477) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Use Parquet OffsetIndex to prune IO with RowSelection 
[\#2473](https://github.com/apache/arrow-rs/pull/2473) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([thinkharderdev](https://github.com/thinkharderdev))
+- Remove unnecessary Option from Int96 
[\#2471](https://github.com/apache/arrow-rs/pull/2471) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- remove len field from StructBuilder 
[\#2468](https://github.com/apache/arrow-rs/pull/2468) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
+- Make Parquet reader filter APIs public \(\#1792\) 
[\#2467](https://github.com/apache/arrow-rs/pull/2467) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- enable ipc compression feature for integration test 
[\#2462](https://github.com/apache/arrow-rs/pull/2462) 
([liukun4515](https://github.com/liukun4515))
+- Simplify implementation of Schema 
[\#2461](https://github.com/apache/arrow-rs/pull/2461) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
+- Support skip\_page missing OffsetIndex Fallback in SerializedPageReader 
[\#2460](https://github.com/apache/arrow-rs/pull/2460) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
+- support time32/time64 comparison 
[\#2458](https://github.com/apache/arrow-rs/pull/2458) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([waitingkuo](https://github.com/waitingkuo))
+- Utf8array casting [\#2456](https://github.com/apache/arrow-rs/pull/2456) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
+- Remove outdated license text 
[\#2455](https://github.com/apache/arrow-rs/pull/2455) 
([alamb](https://github.com/alamb))
+- Support RowFilter within ParquetRecordBatchReader \(\#2431\) 
[\#2452](https://github.com/apache/arrow-rs/pull/2452) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- benchmark: decimal builder and vec to decimal array 
[\#2450](https://github.com/apache/arrow-rs/pull/2450) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([liukun4515](https://github.com/liukun4515))
+- Collocate Decimal Array Validation Logic 
[\#2446](https://github.com/apache/arrow-rs/pull/2446) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([liukun4515](https://github.com/liukun4515))
+- Minor: Move From trait for Decimal256 impl to decimal.rs 
[\#2443](https://github.com/apache/arrow-rs/pull/2443) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([liukun4515](https://github.com/liukun4515))
+- decimal benchmark: arrow reader decimal from parquet int32 and int64 
[\#2438](https://github.com/apache/arrow-rs/pull/2438) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([liukun4515](https://github.com/liukun4515))
+- MINOR: Simplify `split_second` function 
[\#2436](https://github.com/apache/arrow-rs/pull/2436) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Add ParquetRecordBatchReaderBuilder \(\#2427\) 
[\#2435](https://github.com/apache/arrow-rs/pull/2435) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- refactor: refine validation for decimal128 array 
[\#2428](https://github.com/apache/arrow-rs/pull/2428) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([liukun4515](https://github.com/liukun4515))
+- Benchmark of casting decimal arrays 
[\#2424](https://github.com/apache/arrow-rs/pull/2424) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Test non-annotated repeated fields \(\#2394\) 
[\#2422](https://github.com/apache/arrow-rs/pull/2422) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Fix \#2416 Automatic version updates for github actions with dependabot 
[\#2417](https://github.com/apache/arrow-rs/pull/2417) 
([iemejia](https://github.com/iemejia))
+- Add validation logic for StructBuilder::finish 
[\#2413](https://github.com/apache/arrow-rs/pull/2413) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
+- test: add test for reading decimal value from primitive array reader 
[\#2411](https://github.com/apache/arrow-rs/pull/2411) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([liukun4515](https://github.com/liukun4515))
+- Upgrade ahash to 0.8 [\#2410](https://github.com/apache/arrow-rs/pull/2410) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([Dandandan](https://github.com/Dandandan))
+- Support peek\_next\_page and skip\_next\_page in InMemoryPageReader 
[\#2407](https://github.com/apache/arrow-rs/pull/2407) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
+- Fix DoPutUpdateResult [\#2404](https://github.com/apache/arrow-rs/pull/2404) 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)] 
([avantgardnerio](https://github.com/avantgardnerio))
+- Implement Skip for DeltaBitPackDecoder 
[\#2393](https://github.com/apache/arrow-rs/pull/2393) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
+- fix: Don't instantiate the scalar composition code quadratically for 
dictionaries [\#2391](https://github.com/apache/arrow-rs/pull/2391) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([Marwes](https://github.com/Marwes))
+- MINOR: Remove unused trait and some cleanup 
[\#2389](https://github.com/apache/arrow-rs/pull/2389) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Decouple parquet fuzz tests from converter \(\#1661\) 
[\#2386](https://github.com/apache/arrow-rs/pull/2386) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Rewrite `Decimal` and `DecimalArray` using `const_generic` 
[\#2383](https://github.com/apache/arrow-rs/pull/2383) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
+- Simplify BitReader \(~5-10% faster\) 
[\#2381](https://github.com/apache/arrow-rs/pull/2381) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Fix parquet clippy lints \(\#1254\) 
[\#2377](https://github.com/apache/arrow-rs/pull/2377) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Cast between `Decimal128` and `Decimal256` arrays 
[\#2376](https://github.com/apache/arrow-rs/pull/2376) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- support compression for IPC with revamped feature flags 
[\#2369](https://github.com/apache/arrow-rs/pull/2369) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([alamb](https://github.com/alamb))
+- Implement AsyncFileReader for `Box<dyn AsyncFileReader>` 
[\#2368](https://github.com/apache/arrow-rs/pull/2368) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Remove get\_byte\_ranges where bound 
[\#2366](https://github.com/apache/arrow-rs/pull/2366) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- refactor: Make read\_num\_bytes a function instead of a macro 
[\#2364](https://github.com/apache/arrow-rs/pull/2364) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Marwes](https://github.com/Marwes))
+- refactor: Group metrics into page and column metrics structs 
[\#2363](https://github.com/apache/arrow-rs/pull/2363) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Marwes](https://github.com/Marwes))
+- Speed up `Decimal256` validation based on bytes comparison and add benchmark 
test [\#2360](https://github.com/apache/arrow-rs/pull/2360) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([liukun4515](https://github.com/liukun4515))
+- Combine multiple selections into the same batch size in skip\_records 
[\#2359](https://github.com/apache/arrow-rs/pull/2359) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
+- Add API to change timezone for timestamp array 
[\#2347](https://github.com/apache/arrow-rs/pull/2347) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Clean the code in `field.rs` and add more tests 
[\#2345](https://github.com/apache/arrow-rs/pull/2345) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
+- Add Parquet RowFilter API 
[\#2335](https://github.com/apache/arrow-rs/pull/2335) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Make skip\_records in complex\_object\_array can skip cross row groups 
[\#2332](https://github.com/apache/arrow-rs/pull/2332) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
+- Integrate Record Skipping into Column Reader Fuzz Test 
[\#2315](https://github.com/apache/arrow-rs/pull/2315) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
 
 
 
diff --git a/arrow-flight/Cargo.toml b/arrow-flight/Cargo.toml
index 92c6aac3d..226b52b66 100644
--- a/arrow-flight/Cargo.toml
+++ b/arrow-flight/Cargo.toml
@@ -18,7 +18,7 @@
 [package]
 name = "arrow-flight"
 description = "Apache Arrow Flight"
-version = "20.0.0"
+version = "21.0.0"
 edition = "2021"
 rust-version = "1.62"
 authors = ["Apache Arrow <[email protected]>"]
@@ -27,7 +27,7 @@ repository = "https://github.com/apache/arrow-rs";
 license = "Apache-2.0"
 
 [dependencies]
-arrow = { path = "../arrow", version = "20.0.0", default-features = false, 
features = ["ipc"] }
+arrow = { path = "../arrow", version = "21.0.0", default-features = false, 
features = ["ipc"] }
 base64 = { version = "0.13", default-features = false }
 tonic = { version = "0.8", default-features = false, features = ["transport", 
"codegen", "prost"] }
 bytes = { version = "1", default-features = false }
diff --git a/arrow-flight/README.md b/arrow-flight/README.md
index db9b75377..838f66bc3 100644
--- a/arrow-flight/README.md
+++ b/arrow-flight/README.md
@@ -27,7 +27,7 @@ Add this to your Cargo.toml:
 
 ```toml
 [dependencies]
-arrow-flight = "20.0.0"
+arrow-flight = "21.0.0"
 ```
 
 Apache Arrow Flight is a gRPC based protocol for exchanging Arrow data between 
processes. See the blog post [Introducing Apache Arrow Flight: A Framework for 
Fast Data 
Transport](https://arrow.apache.org/blog/2019/10/13/introducing-arrow-flight/) 
for more information.
diff --git a/arrow-pyarrow-integration-testing/Cargo.toml 
b/arrow-pyarrow-integration-testing/Cargo.toml
index 19117ba5f..eccfb0f3d 100644
--- a/arrow-pyarrow-integration-testing/Cargo.toml
+++ b/arrow-pyarrow-integration-testing/Cargo.toml
@@ -18,7 +18,7 @@
 [package]
 name = "arrow-pyarrow-integration-testing"
 description = ""
-version = "20.0.0"
+version = "21.0.0"
 homepage = "https://github.com/apache/arrow-rs";
 repository = "https://github.com/apache/arrow-rs";
 authors = ["Apache Arrow <[email protected]>"]
@@ -32,7 +32,7 @@ name = "arrow_pyarrow_integration_testing"
 crate-type = ["cdylib"]
 
 [dependencies]
-arrow = { path = "../arrow", version = "20.0.0", features = ["pyarrow"] }
+arrow = { path = "../arrow", version = "21.0.0", features = ["pyarrow"] }
 pyo3 = { version = "0.16", features = ["extension-module"] }
 
 [package.metadata.maturin]
diff --git a/arrow/Cargo.toml b/arrow/Cargo.toml
index bebaadcbc..c977272b2 100644
--- a/arrow/Cargo.toml
+++ b/arrow/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "arrow"
-version = "20.0.0"
+version = "21.0.0"
 description = "Rust implementation of Apache Arrow"
 homepage = "https://github.com/apache/arrow-rs";
 repository = "https://github.com/apache/arrow-rs";
diff --git a/arrow/README.md b/arrow/README.md
index 5e20a4253..d7501b2ae 100644
--- a/arrow/README.md
+++ b/arrow/README.md
@@ -35,7 +35,7 @@ This crate is tested with the latest stable version of Rust. 
We do not currently
 
 The arrow crate follows the [SemVer 
standard](https://doc.rust-lang.org/cargo/reference/semver.html) defined by 
Cargo and works well within the Rust crate ecosystem.
 
-However, for historical reasons, this crate uses versions with major numbers 
greater than `0.x` (e.g. `20.0.0`), unlike many other crates in the Rust 
ecosystem which spend extended time releasing versions `0.x` to signal planned 
ongoing API changes. Minor arrow releases contain only compatible changes, 
while major releases may contain breaking API changes.
+However, for historical reasons, this crate uses versions with major numbers 
greater than `0.x` (e.g. `21.0.0`), unlike many other crates in the Rust 
ecosystem which spend extended time releasing versions `0.x` to signal planned 
ongoing API changes. Minor arrow releases contain only compatible changes, 
while major releases may contain breaking API changes.
 
 ## Feature Flags
 
@@ -59,7 +59,7 @@ The [Apache Arrow 
Status](https://arrow.apache.org/docs/status.html) page lists
 
 ## Safety
 
-Arrow seeks to uphold the Rust Soundness Pledge as articulated eloquently 
[here](https://raphlinus.github.io/rust/2020/01/18/soundness-pledge.html). 
Specifically:
+Arrow seeks to uphold the Rust Soundness Pledge as articulated eloquently 
[here](https://raphlinus.github.io/rust/21.0.01/18/soundness-pledge.html). 
Specifically:
 
 > The intent of this crate is to be free of soundness bugs. The developers 
 > will do their best to avoid them, and welcome help in analyzing and fixing 
 > them
 
diff --git a/dev/release/README.md b/dev/release/README.md
index 4ffa85d2a..eadda7522 100644
--- a/dev/release/README.md
+++ b/dev/release/README.md
@@ -78,7 +78,7 @@ CHANGELOG_GITHUB_TOKEN=<TOKEN> 
./dev/release/update_change_log.sh
 git commit -a -m 'Create changelog'
 
 # update versions
-sed -i '' -e 's/14.0.0/20.0.0/g' `find . -name 'Cargo.toml' -or -name '*.md' | 
grep -v CHANGELOG.md`
+sed -i '' -e 's/14.0.0/21.0.0/g' `find . -name 'Cargo.toml' -or -name '*.md' | 
grep -v CHANGELOG.md`
 git commit -a -m 'Update version'
 ```
 
diff --git a/dev/release/update_change_log.sh b/dev/release/update_change_log.sh
index b2ca561e0..ad75b88ff 100755
--- a/dev/release/update_change_log.sh
+++ b/dev/release/update_change_log.sh
@@ -29,8 +29,8 @@
 
 set -e
 
-SINCE_TAG="19.0.0"
-FUTURE_RELEASE="20.0.0"
+SINCE_TAG="20.0.0"
+FUTURE_RELEASE="21.0.0"
 
 SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
 SOURCE_TOP_DIR="$(cd "${SOURCE_DIR}/../../" && pwd)"
diff --git a/integration-testing/Cargo.toml b/integration-testing/Cargo.toml
index c5d2e0b19..786f77bd2 100644
--- a/integration-testing/Cargo.toml
+++ b/integration-testing/Cargo.toml
@@ -18,7 +18,7 @@
 [package]
 name = "arrow-integration-testing"
 description = "Binaries used in the Arrow integration tests"
-version = "20.0.0"
+version = "21.0.0"
 homepage = "https://github.com/apache/arrow-rs";
 repository = "https://github.com/apache/arrow-rs";
 authors = ["Apache Arrow <[email protected]>"]
diff --git a/parquet/Cargo.toml b/parquet/Cargo.toml
index 453de092c..d9b849555 100644
--- a/parquet/Cargo.toml
+++ b/parquet/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "parquet"
-version = "20.0.0"
+version = "21.0.0"
 license = "Apache-2.0"
 description = "Apache Parquet implementation in Rust"
 homepage = "https://github.com/apache/arrow-rs";
@@ -42,7 +42,7 @@ zstd = { version = "0.11.1", optional = true, 
default-features = false }
 chrono = { version = "0.4", default-features = false, features = ["alloc"] }
 num = { version = "0.4", default-features = false }
 num-bigint = { version = "0.4", default-features = false }
-arrow = { path = "../arrow", version = "20.0.0", optional = true, 
default-features = false, features = ["ipc"] }
+arrow = { path = "../arrow", version = "21.0.0", optional = true, 
default-features = false, features = ["ipc"] }
 base64 = { version = "0.13", default-features = false, features = ["std"], 
optional = true }
 clap = { version = "3", default-features = false, features = ["std", "derive", 
"env"], optional = true }
 serde_json = { version = "1.0", default-features = false, features = ["std"], 
optional = true }
@@ -62,7 +62,7 @@ flate2 = { version = "1.0", default-features = false, 
features = ["rust_backend"
 lz4 = { version = "1.23", default-features = false }
 zstd = { version = "0.11", default-features = false }
 serde_json = { version = "1.0", features = ["std"], default-features = false }
-arrow = { path = "../arrow", version = "20.0.0", default-features = false, 
features = ["ipc", "test_utils", "prettyprint"] }
+arrow = { path = "../arrow", version = "21.0.0", default-features = false, 
features = ["ipc", "test_utils", "prettyprint"] }
 
 [package.metadata.docs.rs]
 all-features = true
diff --git a/parquet_derive/Cargo.toml b/parquet_derive/Cargo.toml
index 3f586de69..bdb3880b4 100644
--- a/parquet_derive/Cargo.toml
+++ b/parquet_derive/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "parquet_derive"
-version = "20.0.0"
+version = "21.0.0"
 license = "Apache-2.0"
 description = "Derive macros for the Rust implementation of Apache Parquet"
 homepage = "https://github.com/apache/arrow-rs";
@@ -35,4 +35,4 @@ proc-macro = true
 proc-macro2 = { version = "1.0", default-features = false }
 quote = { version = "1.0", default-features = false }
 syn = { version = "1.0", default-features = false }
-parquet = { path = "../parquet", version = "20.0.0" }
+parquet = { path = "../parquet", version = "21.0.0" }
diff --git a/parquet_derive/README.md b/parquet_derive/README.md
index 30d5e339f..726a9abd5 100644
--- a/parquet_derive/README.md
+++ b/parquet_derive/README.md
@@ -32,8 +32,8 @@ Add this to your Cargo.toml:
 
 ```toml
 [dependencies]
-parquet = "20.0.0"
-parquet_derive = "20.0.0"
+parquet = "21.0.0"
+parquet_derive = "21.0.0"
 ```
 
 and this to your crate root:
diff --git a/parquet_derive_test/Cargo.toml b/parquet_derive_test/Cargo.toml
index bf3e78b24..c449ee587 100644
--- a/parquet_derive_test/Cargo.toml
+++ b/parquet_derive_test/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "parquet_derive_test"
-version = "20.0.0"
+version = "21.0.0"
 license = "Apache-2.0"
 description = "Integration test package for parquet-derive"
 homepage = "https://github.com/apache/arrow-rs";
@@ -29,6 +29,6 @@ publish = false
 rust-version = "1.62"
 
 [dependencies]
-parquet = { path = "../parquet", version = "20.0.0", default-features = false }
-parquet_derive = { path = "../parquet_derive", version = "20.0.0", 
default-features = false }
+parquet = { path = "../parquet", version = "21.0.0", default-features = false }
+parquet_derive = { path = "../parquet_derive", version = "21.0.0", 
default-features = false }
 chrono = { version="0.4.19", default-features = false, features = [ "clock" ] }

Reply via email to