NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #974 most downloaded on crates.io
String kernels for arrow arrays
Last release 21 days ago
15 Sep 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 56 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
62 releases · first in 2022
One column per quarter.
Minor: Add version to deprecation notice for ParquetMetaDataReader::decode_footer \#7639 [parquet] (etseidl)
strong_count method to Buffer #7568 [arrow]flight-sql-experimental to flight-sql #7498 [arrow] [arrow-flight]filter_bytes by precalculating capacity #7465 [arrow]55.1.0 (May 2025) #7393 [parquet]Fixed bugs:
encoding_stats not present in Parquet generated by parquet-rewrite #7616 [parquet]footer_signing_key_metadata is not included, encryption alghoritm is always written in footer #7599 [parquet]new_null_array panics when constructing a struct of a dictionary #7571Dictionary(u8, FixedSizeBinary(_)) using datafusion. #7545 [parquet]pretty_format function when displaying DurationSecondsArray with i64::MIN / i64::MAX #7533 [arrow]read_record_batch func of the RecordBatchDecoder does not respect the skip_validation property #7508 [arrow]arrow-55.1.0 breaks filter_record_batch #7500arrow-rs can't be read with pyarrow #7489 [parquet]Documentation updates:
ExtensionType::supports_data_type docs #7682 [arrow] (mbrobbel)ParquetMetaDataReader::decode_footer #7639 [parquet] (etseidl)WriterPropertiesBuilder #7558 [parquet] (etseidl)Decimal128Array #7525 [arrow] (burmecia)WriterProperties #7491 [parquet] (alamb)Closed issues:
coalesce and concat for views #7615 [arrow]parquet-rewrite #7552 [parquet]Merged pull requests:
NullArray in MutableArrayData #7726 [arrow] (comphead)interleave_views (4-7x faster) #7695 [arrow] (Dandandan)build_extend and build_extend_nulls #7671 [arrow] (brancz)lazy_static dependency #7669 [arrow] (Expyron)RecordBatch::schema_metadata_mut and Field::metadata_mut #7664 [arrow] (emilk)BatchCoalescer::push_filtered_batch and docs #7652 [arrow] (alamb)pretty_format_batches_with_schema function #7642 [arrow] (lewiszlw)GetDbSchemas and GetTables schemas to fully match the protocol #7638 [arrow] [arrow-flight] (sgrebnov)ParquetMetaDataReader #7635 [parquet] (etseidl)StructArray::try_new #7634 [arrow] (xudong963)coalesce kernel tests #7626 [arrow] (alamb)coalesce and concat performance for views… #7625 [arrow] (Dandandan)coalesce and concat performance for views (#7614)" #7623 [arrow] (Dandandan)coalesce and concat performance for views #7614 [arrow] (Dandandan)coalesce kernel andBatchCoalescer for statefully combining selected b…atches: #7597 [arrow] (alamb)take_kernel benchmark #7592 [arrow] (alamb)Dict(_, FixedSizeBinary(_)) #7585 [parquet] (albertlockett)parquet-rewrite #7576 [parquet] (JigaoLuo)row_group_is_[max/min]_value_exact to StatisticsConverter #7574 [parquet] (CookiePieWw)WriterPropertiesBuilder::set_column_index_truncate_length #7553 [parquet] (etseidl)Result name collision in parquet_derive #7548 (jspaezp)filter_record_batch panics with empty struct array #7539 [arrow] (thorfour)build_array_reader into a struct #7521 [parquet] (alamb)ParquetRecordBatchReader::next control logic #7512 [parquet] (alamb)skip_validation property is enabled #7509 [arrow] (nilskch)ReadPlan to encapsulate the calculation of what parquet rows to decode #7502 [parquet] (alamb)Field docs, add missing Field::set_* methods #7497 [arrow] (alamb)unsafe usage #7493 [arrow] (Dandandan)do_put when stream is empty or 1st stream element is an Err #7492 [arrow] [arrow-flight] (superserious-dev)StreamDecoder::schema #7488 [arrow] (lidavidm)RunArrays #7487 [arrow] (brancz)parquet-variant crate, update parquet-testing pin #7485 (alamb)arrow_reader_clickbench benchmark #7470 [parquet] (alamb)filter_bytes ~-20-40%, filter_native low selectivity (~-37%) #7463 [arrow] (Dandandan)refactor!: do not default the struct array length to 0 in Struct::try\_new \#7247 [arrow] (westonpace)
Breaking changes:
Implemented enhancements:
usize from OffsetSizeTrait #7474 [arrow]Eq and Default for ScalarBuffer #7411 [arrow]Fixed bugs:
logical_nulls() returns Some() && null_count == 0 #7435snappy: corrupt input (empty) #7388 [parquet]Documentation updates:
Closed issues:
Eq and Default for OffsetBuffer #7417 [arrow]Merged pull requests:
arrow_reader benchmarks for {u}int{8,16} columns #7484 [parquet] (alamb)rustdoc::unportable_markdown was removed #7483 [arrow] [arrow-flight] (crepererum)Duration type to parquet #7482 [parquet] (Liyixin95)Dictionary(_, FixedSizeBinary(_)) to Parquet #7446 [parquet] (albertlockett)FooterTail public #7440 [parquet] (masonh22)StructArray::try_new to account for array.logical_nulls() returning Some() and null_count == 0 #7436 [arrow] (phillipleblanc)Eq and Default for OffsetBuffer #7418 [arrow] (kylebarron)Default for Buffer & ScalarBuffer #7413 [arrow] (emilk)Eq for ScalarBuffer when T: Eq #7412 [arrow] (emilk)RecordBatch::with_schema_unchecked with RecordBatch::new_unchecked #7405 [arrow] (tustvold)with_schema_unchecked method for RecordBatch #7402 [arrow] (comphead)ArrowReaderOptions #7400 (kylebarron)MINOR: fix incorrect method name in deprecate node \#7306 [arrow] (waynexia)
Breaking changes:
u64 (support files larger than 4GB in WASM) #7371 [parquet] (kylebarron)AsyncFileReader::get_metadata_with_options, add options to AsyncFileReader::get_metadata #7342 [parquet] (corwinjoy)object_store to 0.12.0 #7328 [parquet] (mbrobbel)pyo3 to 0.24 #7324 [arrow] (mbrobbel)FlightErrror::tonic to reduce size (fixes nightly clippy) #7277 [arrow] [arrow-flight] (alamb)date_part to extract only the requested part (not the overall interval) #7189 [arrow] (delamarch3)25.2.10 #7134 [arrow] (tisonkun)Implemented enhancements:
concat #7357 [arrow]encoding_stats in Parquet Writing #7341 [parquet]Fixed bugs:
ParquetMetaDataReader and add test of suffix metadata reads with encryption #7372 [parquet] (etseidl)Documentation updates:
ArrayData::offset #7385 [arrow] (alamb)AsyncFileReader::get_metadata #7380 [parquet] (alamb)pretty_format_columns_with_options pub #7346 [arrow] (alamb)Merged pull requests:
ArrowReaderMetadata::load_async #7369 [parquet] (etseidl)sysinfo to dev-dependencies #7353 [parquet] (mbrobbel)object-store label from .asf.yaml #7339 (mbrobbel)ParquetRecordBatchStream::reader to ParquetRecordBatchStream::reader_factory #7319 [parquet] (alamb)concat performance, and add append_array for some array builder implementations #7309 [arrow] (rluvaton)append_buffer for NullBufferBuilder #7308 [arrow] (rluvaton)Round trip encoding of list of fixed list fails when offset is not zero \#7315
Fixed bugs:
Merged pull requests:
Using column chunk offset index in InMemoryRowGroup::fetch \#7300
Implemented enhancements:
InMemoryRowGroup::fetch #7300ParquetMetadata #7254 [parquet]with_skip_validation flag to IPC StreamReader, FileReader and FileDecoder #7120 [arrow] (alamb)Fixed bugs:
half v2.5.0 cannot be built because it requires rustc 1.81 or newer, while the currently active rustc version is 1.77.2 #7291Documentation updates:
Merged pull requests:
test_decimal_list again #7282 [parquet] (alamb)force_validate feature flag when creating an arrays #7241 [arrow] (rluvaton)bloom_filter_position description #7223 [parquet] (romanz)make_builder into mod.rs #7218 (lewiszlw)field_builders in StructBuilder #7217 [arrow] (lewiszlw)downcast_integer_array macro helper #7211 [arrow] (rluvaton)interleave and concat kernels #7144 [arrow] (kawadakk)Date to a time zone-specific timestamp #7141 [arrow] (friendlymatthew)partition #7131 [arrow] (asubiotto)flatbuffers::size_prefixed_root, fix validation error in arrow-flight #7109 [arrow] [arrow-flight] (bkietz)Use chrono >= 0.4.34, < 0.4.40 to avoid breaking \#7210
Minor: Fix deprecated note to point to the correct const \#7067 [arrow]
Implemented enhancements:
Fixed bugs:
cast_with_options #7043 [arrow]Documentation updates:
NullBufferBuilder::allocated_size #7089 [arrow] (alamb)ListArray documentation for slices #7039 [arrow] (alamb)Merged pull requests:
OffsetBufferBuilder in arrow crate #7077 [arrow] (alamb)from_iter for ScalarBuffer #7066 [arrow] (0ax1)ListArray panics in cast_with_options #7065 [arrow] (irenjj)create_*_array methods into RecordBatchDecoder #7029 [arrow] (alamb)Improve Buffer documentation, deprecate Buffer::from_bytes add From and From impls \#6939 [parquet] [arrow] [arrow-flight] (alamb)
Implemented enhancements:
NullBufferBuilder #7002 [arrow]NullBufferBuilder in the arrow crate #6975 [arrow]arrow-string function should support binary input as well #6923 [arrow]BooleanBufferBuilder for non nullable columns #6973 [arrow]arrow::compute::concat should merge dictionary type when concatenating list of dictionaries #6888 [arrow]Fixed bugs:
ListArrays is broken #7034PrimitiveDictionaryBuilder with specific value data type and capacity #7011 [arrow]Dictionary(_, Decimal128) and Dictionary(_, Decimal256) #6987 [parquet] (korowa)Buffer::from_bytes takes unexported Bytes #6754 [parquet] [arrow] [arrow-flight]Documentation updates:
*like, starts_with, ends_with, contains #7003 [arrow] (alamb)ParquetRecordBatchStreamBuilder docs / examples #6948 [parquet] (alamb)ParquetRecordBatchStream buffering #6947 [parquet] (alamb)zip kernel docs, add examples #6928 [arrow] (alamb)Buffer::from_bytes #6920 [arrow] (kylebarron)Merged pull requests:
concat for sliced ListArrays #7037 [arrow] (alamb)is_valid and truncate methods to NullBufferBuilder #7013 [arrow] (Chen-Yuan-Lai)PrimitiveDictionaryBuilder::new_from_builders #7012 [arrow] (rluvaton)ArrayReader #7006 [arrow] (alamb)parquet::schema::types::from_thrift_helper #6990 [parquet] (etseidl)mmaped IPC file #6986 [arrow] (alamb)arrow-ipc documentation #6983 [arrow] (alamb)simdutf8 feature to make simdutf8 optional, consolidate check_valid_utf8 #6979 [parquet] (alamb)arrow crate #6976 [arrow] (alamb)ArrayDataBuilder: validate and align #6966 [arrow] (alamb)peek_next_page_offset to SerializedPageReader #6945 [parquet] (XiangpengHao)Buffer documentation, deprecate Buffer::from_bytes add From<Bytes> and From<bytes::Bytes> impls #6939 [parquet] [arrow] [arrow-flight] (alamb)ByteViewArrayDecoderPlain #6930 [parquet] (XiangpengHao)Binary arrays in starts_with, ends_with and contains #6926 [arrow] (rluvaton)rank and add tests for sorting lists of booleans #6912 [arrow] (rluvaton)can_rank to the rank file #6910 [arrow] (rluvaton)concat kernel will merge dictionary values for list of dictionaries #6893 [arrow] (rluvaton)extend_dictionary in dictionary builder for improved performance #6875 [arrow] (rluvaton)regexp_match #6849 [arrow] (tlm365)StringView / BinaryView in interleave kernel #6779 [arrow] (onursatici)RecordBatch normalization (flattening) #6758 [arrow] (ngli-me)Remove some very old deprecated functions \#6774 [parquet] [arrow] (alamb)
Breaking changes:
None when Parquet page indexes are not present in file #6639 [parquet] (etseidl)ParquetError::NeedMoreData mark ParquetError as non_exhaustive #6630 [parquet] (etseidl)Implemented enhancements:
Field in a list #6784 [parquet] [arrow] [arrow-flight]parquet::record::make_row is not exposed to users, leaving no option to users to manually create Row objects #6761 [parquet]from_num_days_from_ce_opt calls in timestamp_s_to_datetime if we don't need #6746 [arrow]Fixed bugs:
Buffer::bit_slice loses length with byte-aligned offsets #6895 [arrow]Documentation updates:
Format::with_header in arrow-csv #6856 [arrow] (kylebarron)SchemaDescriptor #6841 [parquet] (alamb)Closed issues:
Merged pull requests:
arrow_to_parquet_schema #6889 [parquet] (etseidl)WriterProperties #6884 [parquet] (etseidl)dict_id #6873 [parquet] [arrow] [arrow-flight] (brancz)ArrowToParquetSchemaConverter, deprecate arrow_to_parquet_schema #6840 [parquet] (alamb)ColumnProperties::statistics_enabled property #6798 [parquet] (etseidl)Array::shrink_to_fit(&mut self) #6790 [arrow] (emilk)item #6785 [parquet] [arrow] [arrow-flight] (gruuya)bit_util::ceil #6766 [arrow] (miroim)timestamp_s_to_datetime to date and time to avoid unnecessary computation #6755 [arrow] (jayzhan211)Box<dyn AsyncArrowWriter> and Box<dyn AsyncArrowReader> #6748 [parquet] (ethe)StringArrayType #6743 [arrow] (tlm365)values field #6730 [parquet] (etseidl)Take empty struct array would get array with length 0 \#7225
Nothing published for this version
Update PR template section about API breaking changes \#6723 (findepi)
filter_run_end_array #6569 [arrow]Documentation updates:
Performance improvements:
Closed issues:
% percent and containing escape characters #6702 [arrow]Merged pull requests:
StringViewArray to DecimalArray #6720 [arrow] (tlm365)filter_bytes #6699 [arrow] (Dandandan)PartialEq of GenericByteViewArray compares by logical value #6689 [arrow] (tlm365)Utf8View for bit_length kernel #6671 [arrow] (austin362667)nullif kernel #6658 [arrow] (alamb)append_n for BooleanBuilder #6646 [arrow] (delamarch3)take_bits to optimize take_boolean / take_primitive / take_byte_view: up to -25% #6622 [arrow] (Dandandan)ParquetObjectReader::with_runtime #6612 [parquet] [arrow] (itsjunetime)C# arrow flight integration test #6611 [arrow] (alamb)Implement arrow\_json encoder for Decimal128 & Decimal256 DataTypes \#6605 [arrow]
Implemented enhancements:
make_builder within struct_builder.rs #6589 [arrow]AsyncArrowWriter API to get the total size of a written parquet file #6530 [parquet]append_many for Dictionary builders #6529 [arrow]GRPC_STATUS with tonic 0.12.1 #6515 [arrow] [arrow-flight]raw-entry feature of Hashbrown #6498 [parquet] [arrow] [arrow-flight]SerializedFileReader::new_with_options #6491 [parquet]53.1.0 (October 2024) #6340 [arrow]Fixed bugs:
c_char = u8 #6571 [arrow]master #6568 [arrow] [arrow-flight]Documentation updates:
Closed issues:
Merged pull requests:
RecordBatch.get_array_memory_size() #6607 [arrow] (2010YOUY01)make_builders for stru… #6593 [arrow] (kszlim)unsafe improvements #6551 [arrow] (ssbr)AsyncArrowWriter::finish #6543 [parquet] (etseidl)ColumnChunkMetadataBuilder clear APIs #6523 [parquet] (alamb)SerializedFileReader::new_with_options #6506 [parquet] (etseidl)MetadataFetch and AsyncFileReader docs #6505 [parquet] (alamb)Add breaking change from \#6043 to CHANGELOG \#6354 (mbrobbel)
Implemented enhancements:
ByteView #6478 [arrow]ParquetMetaData #6465 [parquet]ArrayData.align_buffers should support Struct data type / child data #6461 [arrow]RowSelection #6428 [parquet]regexp_is_match_utf8 and regexp_is_match_utf8_scalar for StringViewArray #6370 [arrow]as_union to AsArray #6351StringBuilder #6347 [arrow]flight_sql_client #6331 [arrow] [arrow-flight]pad_nulls for FixedLenByteArrayBuffer #6297 [parquet] (etseidl)Fixed bugs:
map with non-nullable value schema doesn't error if values are actually null #6391list operation returns objects in wrong order #6375compute::binary_mut returns Err(PrimitiveArray<T>) only with certain arrays #6374 [arrow]as_any and next_batch are never used in parquet crate #6143 [parquet]Documentation updates:
ChunkedReader docs #6477 [parquet] (alamb)GenericStringBuilder documentation #6372 [arrow] (alamb)Closed issues:
binary/unary are not as fast as they could be #6364 [arrow]Merged pull requests:
size_hint for BitIterator to return the exact remaining size #6495 [arrow] (Beihao-Zhou)StatisticsConverter to control interpretation of missing null counts in Parquet statistics #6485 [parquet] (etseidl)ByteView #6479 [arrow] (alamb)MetadataLoader #6474 [parquet] (etseidl)ParquetMetaDataBuilder #6466 [parquet] (alamb)ArrayData.align_buffers align child data buffers recursively #6462 [arrow] (EnricoMi)parquet::file::metadata::reader #6457 [parquet] (etseidl)casting #6456 [arrow] (goldmedal)ParquetMetaDataReader #6451 [parquet] (etseidl)ParquetMetadaReader #6450 [parquet] (etseidl)IpcSchemaEncoder, deprecate ipc schema functions, Fix IPC not respecting not preserving dict ID #6444 [parquet] [arrow] [arrow-flight] (brancz)SortOptions #6441 [arrow] (alamb)as_any and next_batch are never used #6432 [parquet] (etseidl)ParquetMetaDataReader #6431 [parquet] (etseidl)take_iter from iterator to its items #6403 [arrow] (dariocurr)set_bits fuzz test #6394 [arrow] (alamb)From<ScalarBuffer<T>> for Buffer #6389 [arrow] (mbrobbel)union_extract kernel #6387 [arrow] (gstvg)ARROW_VERSION const #6379 [arrow] (samuelcolvin)regexp_is_match and regexp_is_match_scalar function, deprecate regexp_is_match_utf8 and regexp_is_match_utf8_scalar #6376 [arrow] (tlm365)MetadataLoader on invalid data #6367 [parquet] (samuelcolvin)From<Vec<T>> for Buffer #6355 [arrow] (mbrobbel)CHANGELOG #6354 (mbrobbel)parquet Statistics - deprecate has_* APIs and add _opt functions that return Option \#6216 [parquet] (Michael-J-Ward)
Breaking changes:
has_* APIs and add _opt functions that return Option<T> #6216 [parquet] (Michael-J-Ward)ipc::reader::FileReader for for consistent buffering #6132 [arrow] (V0ldek)impl<T: AsRef<[u8]>> From<T> for Buffer that easily accidentally copies data #6043 [arrow] (XiangpengHao)Implemented enhancements:
PartialEq and Eq for parquet::arrow::ProjectionMask #6329 [parquet]pyarrow.RecordBatch to arrow::RecordBatch #6318 [arrow]union method to RowSelection #6307 [parquet]UTC adjusted time arrow array to parquet #6277 [parquet]date_part for Duration #6245 [arrow]parquet_opendal in related projects #6235BYTE_STREAM_SPLIT encoded Parquet FIXED_LEN_BYTE_ARRAY data #6203 [parquet]AsyncFileWriter for a type that implements obj_store::MultipartUpload for AsyncArrowWriter #6200 [parquet]StringView and BinaryView statistics in StatisticsConverter #6164 [parquet]BinaryView --> Utf8 and LargeUtf8 #6162 [arrow]filter kernel specially for FixedSizeByteArray #6153 [arrow]LevelHistogram throughout Parquet metadata #6134 [parquet]Interval #6113 [arrow]Into<Arc<dyn Array>> for ArrayData #6104arrow::ipc::writer::StreamWriter #6099 [arrow]StringViewArray #6094 [arrow]Statistics::has_min_max_set and ValueStatistics::has_min_max_set and use Option instead #6093 [parquet]52.2.0 (August 2024) #5998 [parquet] [arrow]Fixed bugs:
ColumnIndex written in parquet #6310 [parquet]Field from FFI_ArrowSchema with no name #6251 [arrow]0 and not specified #6215 [parquet]is_optional codes and comment #6191 [parquet]Documentation updates:
RowFilter and ArrowPredicate docs #6301 [parquet] (alamb)MutableArrayData #6272 [arrow] (alamb)StringViewBuilder and BinaryViewBuilder #6240 [arrow] (alamb)DateType::Date64 docs #6223 [arrow] (alamb)ArrayAccessor #6141 [arrow] (alamb)Closed issues:
take workflow to use oktokit #6242SchemaBuilder dependency from StructArray constructors #6138 [arrow]Merged pull requests:
RecordBatches in pyarrow integration (use RecordBatchOptions when converting a pyarrow RecordBatch) #6320 [arrow] (Michael-J-Ward)union method to RowSelection #6308 [parquet] (sdd)try_from_le_slice #6295 [parquet] (samuelcolvin)pub use ByteView in arrow and improve documentation #6275 [arrow] (alamb)Statistics::distinct_count_opt and deprecate Statistics::distinct_count #6259 [parquet] (alamb)FallibleRequestStream and FallibleTonicResponseStream to a module #6258 [arrow] [arrow-flight] (alamb)unary() for array conversion in Parquet array readers, speed up Decimal128, Decimal256 and Float16 #6252 [parquet] [arrow] (etseidl)Like/ILike between Array and Scalar for StringViewArray #6231 [arrow] (xinlifoobar)FixedLengthBinary decoding #6220 [parquet] (etseidl)data_gen #6205 [arrow] (kyle-mccarthy)BYTE_STREAM_SPLIT encoded Parquet FIXED_LEN_BYTE_ARRAY data #6204 [parquet] (etseidl)ParquetMetadataWriter to its own module, update documentation #6202 [parquet] (alamb)ThriftMetadataWriter for writing Parquet metadata #6197 [parquet] (adriangb)is_optional comments #6192 [parquet] (jp0317)bool_and #6189 [arrow] (simonvandel)StatisticsConverter can not panic #6187 [parquet] (alamb)FixedSizeBinaryArray #6186 [arrow] (chloro-pn)StringView and BinaryView statistics in StatisticsConverter #6181 [parquet] (Kev1n8)FixedSizeByteArray #6178 [arrow] (chloro-pn)StringView and BinaryView in CDataInterface #6171 [arrow] (a10y)take kernel for BinaryViewArray and StringViewArray #6168 [arrow] (a10y)BYTE_STREAM_SPLIT for INT32, INT64, and FIXED_LEN_BYTE_ARRAY primitive types #6159 [parquet] (etseidl)LIKE regex performance up to 12x #6145 [arrow] (samuelcolvin)min_boolean and bool_and #6144 [arrow] (simonvandel)RowIter, add unsafe Rows::row_unchecked #6142 [arrow] (XiangpengHao)StructArray constructors #6139 [arrow] (Rafferty97)StringViewBuilder #6136 [arrow] (XiangpengHao)LevelHistogram in PageIndex #6135 [parquet] (etseidl)LIKE performance for "contains" style queries #6128 [arrow] (samuelcolvin)BooleanArray::new_from_packed and BooleanArray::new_from_u8 #6127 [arrow] (chloro-pn)(i)starts_with and (i)ends_with performance #6118 [arrow] (samuelcolvin)ParquetMetaData #6105 [parquet] (etseidl)object_store::buffered::BufWriter #6013 [parquet] (Xuanwo)Faster min/max for string/binary view arrays \#6088 [arrow]
Implemented enhancements:
ByteViews for small strings #6034 [parquet] [arrow]deduplicate / intern functionality for StringView #5910 [arrow]FlightSqlServiceClient::new_from_inner #6003 [arrow] [arrow-flight] (lewiszlw)StringViewArray and BinaryViewArray parquet decoder: #6004 [parquet] (XiangpengHao)Arrays #6046 [parquet] (efredine)Fixed bugs:
ParquetMetadata::memory_size if no min/max set #6091 [parquet]Some(&[]) through parquet #6086 [parquet]ColumnIndex for null columns is written even when statistics are disabled #6010 [parquet]Documentation updates:
Closed issues:
Merged pull requests:
GenericByteView construction #6102 [parquet] [arrow] (XiangpengHao)bool_or using max_boolean #6100 [arrow] (simonvandel)max_boolean by operating on u64 chunks #6098 [arrow] (simonvandel)ParquetMetadata::memory_size: check has_min_max_set before invoking min()/max() #6092 [parquet] (Fischer0522)GenericBinaryView (StringView and BinaryView) #6089 [arrow] (XiangpengHao)file::metadata and format in docs #6049 [parquet] (alamb)StatisticsConverter for arrow reader #6046 [parquet] (efredine)hashbrown version in arrow-array, remove from arrow-row #6035 [arrow] (mbrobbel)ByteViewArray from parquet by removing an implicit copy #6031 [parquet] (XiangpengHao)parquet crate. #6024 [parquet] (veluca93)ColumnIndex for null columns when not writing page statistics #6011 [parquet] (etseidl)StringViewArray and BinaryViewArray parquet decoder: implement delta byte array and delta length byte array encoding #6004 [parquet] (XiangpengHao)FlightSqlServiceClient::new_from_inner #6003 [arrow] [arrow-flight] (lewiszlw)Schema::all_fields to flattened_fields #6001 [parquet] [arrow] [arrow-flight] (lewiszlw)DataType #5997 [arrow] (alamb)DataType::try_form(&str) #5994 [arrow] (samuelcolvin)Document process for PRs with breaking changes \#5953 (alamb)
Implemented enhancements:
eq comparison for StructArray #5960 [arrow]min_bytes and max_bytes to PageIndex #5949 [parquet]52.0.1 #5906 [arrow]compare_op for GenericBinaryView #5897 [arrow]cast kernel support for StringViewArray and BinaryViewArray \<--\> DictionaryArray` #5861 [arrow]IntervalMonthDayNanoArray to parquet via Arrow Writer #5849 [parquet]IntervalDayTimeArray , IntervalMonthDayNanoArray and IntervalYearMonthArray #5847 [parquet]RowSelection::from_consecutive_ranges public #5846 [parquet]Schema::try_merge should be able to merge List of any data type with List of Null data type #5843 [arrow]fields out of parquet Row #5841 [parquet]TimeUnit and IntervalUnit Copy #5839 [arrow]Fixed bugs:
object_store #5864 [parquet]Documentation updates:
unary_mut and binary_mut #5798 [arrow] (alamb)Closed issues:
Merged pull requests:
like benchmark for StringView #5936 [arrow] (alamb)egexp --> regexp #5935 [arrow] (alamb)IntervalMonthDayNano and IntervalDayTime and update docs #5928 [arrow] (alamb)new_null_array for view types #5894 [arrow] (XiangpengHao)StringView/BinaryView to DictionaryArray #5872 [arrow] (XiangpengHao)DictionaryArray to StringViewArray #5871 [arrow] (XiangpengHao)FixedSizeList in concat #5862 [arrow] (judahrand)Copy for TimeUnit and IntervalUnit #5840 [arrow] (mbrobbel)Remove deprecated JSON writer \#5651 [arrow] (tustvold)
Breaking changes:
DoPutPreparedStatementResult #5817 [arrow] [arrow-flight] (erratic-pattern)IntervalMonthDayNano or IntervalDayTime (#3125) (#5654) #5769 [parquet] [arrow] (tustvold)0.10.0 #5675 [parquet] (tustvold)UnionArray constructors #5623 [arrow] [arrow-flight] (mbrobbel)Implemented enhancements:
Binary and LargeBinary as HEX with JSON Writer #5783 [arrow]parquet-derive should be included in repository README. #5751RunArray #5631 [arrow]FixedSizeBinary as HEX with JSON Writer #5620 [arrow]StreamReader is not zero-copy #5584 [arrow]ArrowReaderMetadata from externalized metadata #5582 [parquet]filter in filter_leaves API propagate error #5574 [arrow]List in compare_op #5572parse_decimal #5549 [arrow]take kernel support for StringViewArray and BinaryViewArray #5511 [arrow]filter kernel support for StringViewArray and BinaryViewArray #5510 [arrow]StringViewArray and BinaryViewArray #5509 [arrow]StringViewArray and BinaryViewArray #5507 [arrow] [arrow-flight]StringViewArray and BinaryViewArray #5506 [parquet] [arrow]Fixed bugs:
Archery test With other arrow is broken #5742 [arrow]DoPutPreparedStatementResult with Any which is differs from Go implementation #5731 [arrow] [arrow-flight]ListArray to FixedSizeList #5642 [arrow]parquet / Build wasm32 (pull_request) CI check failing on main #5565 [parquet] [arrow]Documentation updates:
ArrowReaderBuilder::with_row_selection docs #5824 [parquet] (alamb)EnabledStatistics #5812 [parquet] (alamb)Closed issues:
binary_mut kernel requires both args to be the same type (which is inconsistent with binary) #5818 [arrow]Merged pull requests:
FIXED_LEN_BYTE_ARRAY for uuid logical parquet type #5821 [parquet] (mbrobbel)Binary and LargeBinary types as hex when writing JSON #5785 [arrow] (hiltontj)parse_metadata, decode_metadata and decode_footer #5781 [parquet] (alamb)FixedSizedList<T>[1] to T #5779 [arrow] (sadboy)GenericListBuilder test typo #5724 [arrow] (Kikkon)StringView/BinaryView --> StringArray/BinaryArray. #5704 [arrow] (RinChanNOWWW)StringArray/BinaryArray --> StringView / BinaryView #5686 [arrow] (RinChanNOWWW)ListView & LargeListView basic construction and validation #5664 [arrow] (Kikkon)FixedSizeList #5646 [arrow] (hiltontj)ListArray to FixedSizeList #5643 [arrow] (jonahgao)BinaryViewArray test coverage #5635 [arrow] (alamb)StringViewArray and BinaryViewArray #5634 [arrow] (alamb)filter kernel for byte view arrays. #5624 [arrow] (RinChanNOWWW)StringView and BinaryView in parquet (part 1) #5618 [parquet] [arrow] (alamb)take kernel for byte view array. #5602 [arrow] (RinChanNOWWW)StringViewArray and BinaryViewArray #5601 [arrow] [arrow-flight] (XiangpengHao)GenericStringBuilder #5597 [arrow] (alamb)UnionArray::into_parts #5585 [arrow] (mbrobbel)try_filter_leaves to propagate error from filter closure #5575 [arrow] (viirya)v2.0.9 in parquet #5567 [parquet] (Jefffrey)From<ScalarBuffer<T>> for Vec<T> #5518 [arrow] (mbrobbel)Deprecate array\_to\_json\_array \#5515 [arrow] (tustvold)
Breaking changes:
Implemented enhancements:
ArrowWriter #5484 [parquet]RecordBatch::schema() to return &SchemaRef vs SchemaRef) #5463 [parquet] [arrow] [arrow-flight]Display implementation for FlightError #5438 [arrow] [arrow-flight]FixedSizeList and LargeList #5372 [arrow]FixedSizeList #5339 [arrow]ParquetRecordBatchStreamBuilder::new() panics instead of erroring out when opening a corrupted file #5315 [parquet]ARROW_SCHEMA_META_KEY added by the ArrowWriter #5296 [parquet]Time32/Time64 type in temporal kernels #5261 [arrow]Fixed bugs:
The data type type List .. has no natural order when using arrow::compute::lexsort_to_indices with list and more than one column #5454 [arrow]Buffer::from_iter #5412 [arrow]RecordBatch drops schema metadata #5327 [arrow]concat::tests::test_string_dictionary_merge failure fails on Mac / has different results in different platforms #5255 [arrow]Documentation updates:
GenericByteViewArray #5512 [arrow] (alamb)Performance improvements:
Closed issues:
StringViewArray implementation and layout and basic construction + tests #5469 [parquet] [arrow]DataType::Utf8View and DataType::BinaryView #5468 [parquet] [arrow]Merged pull requests:
FlightDataEncoder, add documentation for arrow_flight::encode::Dictionary #5488 [arrow] [arrow-flight] (thinkharderdev)Field::new_list_field #5464 [arrow] (alamb)Display and Source implementation for error types #5439 [arrow] [arrow-flight] (BugenZhao)take_bytes #5395 [arrow] (viirya)FixedSizeList and LargeList dtypes #5373 [arrow] (universalmind303)take_record_batch. #5333 [arrow] (RinChanNOWWW)Fix deprecated note for Buffer::from_raw_parts \#5190 [arrow] (mbrobbel)
Breaking changes:
zip compute function to operator on Scalar values via Datum #5086 [arrow] (Nathan-Fenner)Implemented enhancements:
quote and escape in Csv WriterBuilder #5146 [arrow]bytes::Bytes into arrow_buffer::Buffer without copy #5104 [arrow]48.0.1 arrow patch release #5050 [parquet] [arrow]zip compute kernel to take Scalar / Datum #5011 [arrow]Fixed bugs:
Z in timezone is ignored #5182 [arrow]Utf8 to decimal failure #5127 [arrow]Performance improvements:
Closed issues:
Merged pull requests:
try_new when casting between structs to propagate error #5226 [arrow] (viirya)entries to MapBuilder to return both key and value array builders #5218 [arrow] (viirya)From<OffsetBuffer<T>> for ScalarBuffer<T> #5203 [arrow] (mbrobbel)From<BufferBuilder<T>> for Buffer #5202 [arrow] (mbrobbel)From<BufferBuilder<T>> for ScalarBuffer<T> #5201 [arrow] (mbrobbel)BooleanArray::into_parts method #5191 [arrow] (mbrobbel)Buffer::from_raw_parts #5190 [arrow] (mbrobbel)LargeListBuilder to make_builder #5171 [arrow] (viirya)as casts in parquet #5168 [parquet] (psvri)is_null datatype shortcut method #5157 [arrow] (comphead)MetadataLoader public #5137 [parquet] (AdamGS)ArrayBuilder for Box<dyn ArrayBuilder> #5109 [arrow] (viirya)chore: Update docs to refer to non deprecated function \(partition\) \#5027 [arrow] (alamb)
Breaking changes:
Implemented enhancements:
RecordBatch::remove_column() and Schema::remove_field() #4952 [arrow]arrow_json: support binary deserialization #4945 [arrow]ParquetRecordWriter proc macro in parquet_derive, but ParquetRecordReader is missing #4772 [parquet]Fixed bugs:
Documentation updates:
Merged pull requests:
Field::remove(), Schema::remove(), and RecordBatch::remove_column() APIs #4959 [arrow] (Folyd)RecordReader trait and proc macro to implement it for a struct #4773 [parquet] (Joseph-Rance)Nothing published for this version
Evaluate null\_regex for string type in csv \(now such values will be parsed as Null rather than ""\) \#4942 [arrow] (haohuaijin)
Breaking changes:
Null rather than "") #4942 [arrow] (haohuaijin)Implemented enhancements:
Null datatype #4901 [arrow]csv::WriterBuilder #4735 [arrow]Fixed bugs:
None in csv? #4939 [arrow]Utf8 for empty columns #4903 [arrow]NullArray::is_null() returns false incorrectly #4835 [arrow]infer_json_schema_from_seekable #4814 [arrow]Closed issues:
Merged pull requests:
FileWriter schema getter #4940 [arrow] (haixuanTao)SubstraitPlan structure in arrow_flight::sql (#4932) #4933 [arrow] [arrow-flight] (amartins23)FlightDataEncoder API, add examples #4916 [arrow] [arrow-flight] (alamb)FlightDataEncoder to always resend batch dictionaries #4896 [arrow] [arrow-flight] (alexwilcoxson-rel)Array::is_null #4838 [arrow] (alamb)cast_string_to_decimal #4830 [arrow] (jonahgao)More chrono deprecations \#4822 [arrow] (tustvold)
Breaking changes:
RowConverter (#4811) #4819 [arrow] [arrow-flight] (tustvold)std::io::Error to IoError and add IpcError variant #4726 [arrow] [arrow-flight] (alexandreyc)Implemented enhancements:
DynScalar abstraction (something that makes it easy to create scalar Datums) #4781 [arrow]Datum is not exported as part of arrow (it is only exported in arrow_array) #4780 [arrow]Scalar is not exported as part of arrow (it is only exported in arrow_array) #4779 [arrow]Fixed bugs:
concat_batches errors with "schema mismatch" error when only metadata differs #4799 [arrow]cmp kernels with DictionaryArrays: Option::unwrap() on a None value' #4788 [arrow]*ListArray in 46.0.0 #4746 [arrow]Box<dyn RecordBatchReader + Send> #4751 [arrow] (wjones127)Closed issues:
Merged pull requests:
Scalar #4793 [arrow] (alamb)Remove deprecated limit kernel \#4597 [arrow] (tustvold)
Breaking changes:
batches_to_flight_data forces clone #4656 [arrow]Array Logical Nullability #4691 [parquet] [arrow] (tustvold)Implemented enhancements:
concat_batches for 0 columns #4661 [arrow]filter_record_batch should support filtering record batch without columns #4647 [arrow]lexicographical_partition_ranges #4614 [arrow]DataType::List correctly #4544 [arrow]Fixed bugs:
RowInterner::size() much too low for high cardinality dictionary columns #4645 [arrow]List(FixedSizeBinary) array equality check may return wrong result #4637 [arrow]arrow::compute::nullif panics if NullArray is provided #4634 [arrow]MutableBuffer::set_null_bits can be bypassed #4620 [arrow]compressed_size, file offset. #4610 [parquet]new_null_array generates an invalid union array #4600 [arrow]arrow::compute::concat panics for dense union arrays with non-trivial type IDs #4578 [arrow]Closed issues:
Merged pull requests:
ArrowReaderBuilder construction (#4674) #4676 [parquet] (tustvold)concat_batches for 0 columns #4662 [arrow] (Dandandan)From<Vec<T>> for BufferBuilder and MutableBuffer #4650 [arrow] (mbrobbel)Bucket size in OrderPreservingInterner #4646 [arrow] (alamb)Default,Extend and FromIterator for BufferBuilder #4638 [arrow] (mbrobbel)NullArray in nullif #4635 [arrow] (kawadakk)BufferBuilder to arrow-buffer #4630 [arrow] (mbrobbel)FromIterator for MutableBuffer #4624 [arrow] (mbrobbel)MutableBuffer::set_null_bits #4621 [arrow] (kawadakk)Default for arrow_buffer::buffer::MutableBuffer #4619 [arrow] (mbrobbel)Fix timezoned timestamp arithmetic \#4546 [arrow] (alexandreyc)
Breaking changes:
Implemented enhancements:
BooleanBuilder: Add validity_slice method for accessing validity bits #4535 [arrow]FixedSizedListArray for length kernel #4517 [arrow]RowCoverter::convert that targets an existing Rows #4479 [arrow]Fixed bugs:
assertion failed: idx < self.len when casting DictionaryArrays with nulls #4576 [arrow]FixedSizeListBuilder::new #4549 [arrow]Merged pull requests:
is_empty impl for arrow::array::ArrayBuilder #4543 [arrow] (mbrobbel)FixedSizedListArray for length kernel #4520 [arrow] (Weijun-H)Port Tests from Deprecated Arithmetic Kernels \#4480 [arrow]
Breaking changes:
Implemented enhancements:
Date - Date kernel #4383 [arrow]Fixed bugs:
AsyncArrowWriter to a file corrupts the footer for large columns #4526 [parquet]Merged pull requests:
Simplify ffi import/export \#4447 [arrow] (Virgiel)
Breaking changes:
Implemented enhancements:
Row to Rows #4466 [arrow]FlightSqlService to handle custom actions and commands #4439NullBuilder #4429 [arrow]Fixed bugs:
42.0.0 : Bad parquet column indexes for All Null Columns, resulting in Parquet error: StructArrayReader out of sync on read #4459 [parquet]Documentation updates:
Merged pull requests:
NullBuilder #4430 [arrow] (izveigor).5 the same as 0.5 #4425 [arrow] (alamb)deprecate: as\_decimal\_array \#4363 [arrow] (izveigor)
Breaking changes:
Implemented enhancements:
millisecond and microsecond functions #4374 [arrow]CommandGetXdbcTypeInfo responses (XdbcInfoValue and builders) #4257 [arrow] [arrow-flight]Fixed bugs:
Closed issues:
dict_id, dict_is_ordered into DataType? #4325Merged pull requests:
take kernel performance on primitive arrays, fix bad null index handling (#4404) #4405 [arrow] (tustvold)BooleanBuffer::new_unset and BooleanBuffer::new_set and BooleanArray::new_null constructors #4402 [arrow] (tustvold)Hash impls for CastOptions and FormatOptions #4395 [arrow] (alamb)WriterProperites and ReaderProperties docs #4392 [parquet] (alamb)microsecond and millisecond kernels #4375 [arrow] (izveigor)Use page_size consistently, deprecate pagesize in parquet WriterProperties \#4313 [parquet] (alamb)
Breaking changes:
FlightData, FlightInfo, FlightEndpoint, Locaation and Ticket #4294 [arrow] [arrow-flight] (alamb)Implemented enhancements:
CommandGetCatalogs, CommandGetSchemas, and CommandGetTables requests #4295 [arrow] [arrow-flight]FlightInfo to make it easier to create new requests #4281 [arrow] [arrow-flight]CommandGetSqlInfo responses (SqlInfoValue and builders) #4256 [arrow] [arrow-flight]Intervals #4181 [arrow]Fixed bugs:
Merged pull requests:
page_size consistently, deprecate pagesize in parquet WriterProperties #4313 [parquet] (alamb)CommandGetCatalogs, CommandGetSchemas, and CommandGetTables requests #4296 [arrow] [arrow-flight] (roeap)ArrowWriter memory usage: Buffer Pages in ArrowWriter instead of RecordBatch (#3871) #4280 [parquet] (tustvold)Debug impls for ArrowWriter and SerializedFileWriter #4278 [parquet] (alamb)RecordBatchWriter to arrow crate #4277 [arrow] (alexandreyc)Intervals #4182 [arrow] (izveigor)Prefetch page index \(\#4090\) \#4216 [parquet] (tustvold)
Breaking changes:
Implemented enhancements:
Interval +/- Interval #4178 [arrow]print_column_chunk_metadata() #4172 [parquet]Fixed bugs:
Merged pull requests:
RecordBatchReader for CSV reader #4195 [arrow] (alexandreyc)Remove deprecated parquet ArrowReader \#4125 [parquet] (tustvold)
Breaking changes:
StructArray w/ FieldRef #4116 [parquet] [arrow] (crepererum)Implemented enhancements:
Interval + Timestamp and Interval + Date in addition to Timestamp + Interval and Interval + Date #4094 [arrow]Fixed bugs:
Documentation updates:
Closed issues:
Merged pull requests:
bitwise shift left/right #4148 [arrow] (Weijun-H)as_primitive #4143 [arrow] (Weijun-H)Interval + Timestamp and Interval + Date #4117 [arrow] (Weijun-H)Remove DataType from PrimitiveArray constructors \#4098 [arrow] (tustvold)
Breaking changes:
Implemented enhancements:
Timestamp +/- Interval types #3963 [arrow]Fixed bugs:
Documentation updates:
Closed issues:
Merged pull requests:
Hash trait to SortOptions. #4089 [arrow] (mustafasrepo)Deprecate Array::data \(\#3880\) \#4019 [arrow] (tustvold)
Breaking changes:
Implemented enhancements:
Fixed bugs:
Closed issues:
Merged pull requests:
arrow-flight crates #4012 [arrow] [arrow-flight] (alamb)RecordBatch by adding Serde support to RawDecoder (#3949) #3979 [arrow] (tustvold)Binary/LargeBinary and FixedSizeBinary #3961 [arrow] (Weijun-H)Use dyn Array in sort kernels \#3931 [arrow] (tustvold)
Breaking changes:
Implemented enhancements:
Fixed bugs:
Merged pull requests:
ListBuilder and GenericListBuilder #3891 [arrow] (alamb)mul_checked to avoid silent overflow in interval arithmetic #3886 [arrow] (Weijun-H)Add RunEndBuffer \(\#1799\) \#3817 [arrow] (tustvold)
Breaking changes:
FlightSqlServiceClient improvements #3788 [arrow] [arrow-flight] (crepererum)Implemented enhancements:
Fixed bugs:
Closed issues:
Merged pull requests:
Utf8 and LargeUtf8 --> Interval #3762 [arrow] (doki23)into_primitive_dict_builder to DictionaryArray #3715 [arrow] (viirya)Deprecate old JSON reader \(\#3610\) \#3718 [parquet] [arrow] (tustvold)
Breaking changes:
FlightClient::do_put #3464 [arrow] [arrow-flight] (alamb)Implemented enhancements:
take_run improvements #3701 [arrow]as_mut_any in Array trait #3655Array --> Display formatter that supports more options and is configurable #3638 [parquet] [arrow]Fixed bugs:
Merged pull requests:
Ord/PartialOrd for SortOptions #3723 [arrow] (crepererum)take_run improvements #3705 [arrow] (askoa)RunArray #3695 [arrow] (askoa)Use ArrayFormatter in Cast Kernel \#3668 [arrow] (tustvold)
Breaking changes:
Implemented enhancements:
array_value_to_string in arrow-csv #3483 [arrow]Fixed bugs:
Closed issues:
32.0.0 of arrow/arrow-flight/parquet/parquet-derive (next release after 31.0.0) #3584 [parquet] [arrow] [arrow-flight]Merged pull requests:
Field #3630 [arrow] (chunshao90)Write Deprecated Min Max Statistics When ColumnOrder Signed \#3526 [parquet]
Breaking changes:
StringArray construction with Vec<Option<String>> #3602 [arrow] (sinistersnare)RunEndEncodedArray #3553 [parquet] [arrow] (askoa)Implemented enhancements:
From<Vec<Option<String>>> impl for GenericStringArray<OffsetSize> #3599 [arrow]Error::Source for ArrowError and FlightError #3566 [arrow] [arrow-flight]External variant to ParquetError #3285 [parquet]Fixed bugs:
nullif incorrectly calculates null_count, sometimes panics with subtraction overflow error #3579 [arrow]Closed issues:
Merged pull requests:
std::error::Error::source for ArrowError and FlightError #3567 [arrow] [arrow-flight] (alamb)support RFC3339 style timestamps in arrow-json \#3449 [arrow] (JayjeetAtGithub)
Breaking changes:
arrow-json #3449 [arrow] (JayjeetAtGithub)Implemented enhancements:
'2001-01-01' to timestamp #3492 [arrow]build_compare #3465concat_batches to take non owned RecordBatch #3456 [arrow]30.0.1 (maintenance release for 30.0.0) #3455get_slice_memory_size or similar #3407 [arrow] [arrow-flight]Fixed bugs:
Merged pull requests:
31.0.0 and add changelog #3518 [parquet] [arrow] [arrow-flight] (iajoiner)concat_batches parameter to non owned reference #3480 [arrow] (askoa)parquet-rewrite CLI #3477 [parquet] (crepererum)build_compare #3466 (viirya)FlightClient::{list_flights, list_actions, do_action, get_schema} #3463 [arrow-flight] (alamb)column_name based index access for RecordBatch and StructArray #3458 [arrow] (askoa)*like_dyn, *like_utf8_scalar_dyn and *like_dict functions to macros #3411 [arrow] (askoa)FlightClient #3402 [arrow-flight] (alamb)RecordBatch <--> FlightData encode/decode + tests #3391 [arrow] [arrow-flight] (alamb)into_builder for bytearray #3326 [arrow] (viirya)Generic bytes dictionary builder \#3425 [arrow]
Implemented enhancements:
ArrowFlight Client #3371 [arrow-flight]Fixed bugs:
nullif kernel no longer exported #3454 [arrow]Document / Deprecate arrow\_flight::flight\_data\_from\_arrow\_batch \#3312 [arrow] [arrow-flight]
Breaking changes:
Implemented enhancements:
ParquetObjectReader #3381 [parquet]Fixed bugs:
try_to_type #3350Documentation updates:
Merged pull requests:
ParquetObjectReader #3382 [parquet] (kszlim)FlightClient #3378 [arrow-flight] (alamb)Deprecate limit kernel \#3200 [arrow] (tustvold)
Breaking changes:
Field::new and Field::new_with_dict to take existing String as well as &str #3288 [arrow] (alamb)&Option<T> to Option<&T> #3249 [parquet] [arrow] (Jimexist)*_dict_scalar kernels behind *_dyn kernels #3202 [arrow] (viirya)Implemented enhancements:
Fixed bugs:
compile-time-rng kills reproducible builds #3271 [parquet]nullif panics on empty array #3261 [arrow]can_cast_types returns true #3221 [arrow]arrow-cast crate #3219 [arrow]Documentation updates:
Merged pull requests:
ilike_scalar and nilike_scalar #3303 [arrow] (askoa)arrow-cast to arrow #3222 [arrow] (viirya)FixedSizeBinary in Row format #3182 [arrow] (tustvold)Your coding agent can read these notes before it upgrades. Set up the MCP server →