Apache Arrow Go 18.5.0 Release
Published
12 Dec 2025
By
The Apache Arrow PMC (pmc)
The Apache Arrow team is pleased to announce the v18.5.0 release of Apache Arrow Go. This minor release covers 38 commits from 17 distinct contributors.
Contributors
$ git shortlog -sn v18.4.1..v18.5.0
11 Matt Topol
5 Alex
5 pixelherodev
2 Mandukhai Alimaa
2 Rick Morgans
2 Sutou Kouhei
1 Ahmed Mezghani
1 Bryce Mecum
1 Dhruvit Maniya
1 Erez Rokah
1 Jacob Romero
1 James Guthrie
1 Orson Peters
1 Pierre Lacave
1 Ruihao Chen
1 Travis Patterson
1 andyfan
Highlights
- Bumped substrait-go dependency to v7 #526
Arrow
- Support customizing
ValueStroutput for Timestamp types #510 - Series of fixes for the cdata integration including fixing some memory leaks #513 #603
- Optimizations for comparisons and Take kernels #574 #556 #563 #573 #557
- New temporal rounding methods added to compute #572
- Fix concatenating out of order REE slices #587
Parquet
- Fix nullable elements for FixedSizeList values #585
- Add a build tag
pqarrow_read_onlyfor optimized builds that don't need to write #569 - Better tracking of Total bytes and Total Compressed bytes #548
- Dramatic performance gains for writing Parquet files (~70%-90% reduced memory, up to 10x faster in some cases) #595
Changelog
What's Changed
- fix(parquet/pqarrow): Fix null_count column stats by @MasslessParticle in #489
- chore: Use apache/arrow-dotnet for integration test by @kou in #495
- feat(parquet): utilize memory allocator in
serializedPageReaderby @joechenrh in #485 - chore: Automate GitHub Releases creation and site redirect by @kou in #497
- use xnor for boolean equals function by @Dhruvit96 in #505
- chore(ci): fix verify_rc finding latest go by @zeroshade in #512
- feat: Add support for specifying
TimestampValueStroutput layout by @erezrokah in #510 - fix(arrow/cdata): Avoid calling unsafe.Slice on zero-length pointers by @orlp in #513
- fix(arrow/compute): fix scalar comparison panic by @zeroshade in #518
- fix(arrow/array): fix panic in dictionary builders by @zeroshade in #517
- fix(parquet/pqarrow): unsupported dictionary types in pqarrow by @zeroshade in #520
- chore(parquet/metadata): use constant time compare for signature verify by @zeroshade in #528
- build(deps): update substrait to v7 by @zeroshade in #526
- fix(parquet): fix adaptive bloom filter duplicate hash counting, comparison logic, and GC safety by @Mandukhai-Alimaa in #527
- refactor(arrow): last increment of the Record -> RecordBatch migration by @Mandukhai-Alimaa in #522
- fix: update iceberg substrait URN by @zeroshade in #541
- optimization: comparison: when DataType is static, skip reflection by @pixelherodev in #542
- fix(parquet/pqarrow): decoding Parquet with Arrow dict in schema by @freakyzoidberg in #551
- feat: support conversion of chunked arrays by @ahmed-mez in #553
- format: regenerate internal/flatbuf from arrow repo and newer flatc by @pixelherodev in #555
- Batch of small optimizations by @pixelherodev in #556
- perf: optimize compute.Take for fewer memory allocations by @hamilton-earthscope in #557
- optimization: compare: avoid initializing config when it's not needed by @pixelherodev in #563
- optimization: schema: use slices.Sort instead of sort.Slice by @pixelherodev in #564
- doc(parquet): document arrow parquet mappings by @amoeba in #561
- fix: Metadata.Equal comparison with keys in different order by @zeroshade in #571
- perf(compute): optimize Take kernel for list types by @hamilton-earthscope in #573
- build: add pqarrow_read_only build tags to avoid building write related code by @jacobromero in #569
- [Go] [Parquet] pqarrow file-writer & row-group-writer tracking total & total compressed bytes by @DuanWeiFan in #548
- [Go][Parquet] Fix FixedSizeList nullable elements read as NULL by @rmorgans in #585
- [Go][Parquet] Refactor: extract visitListLike helper for list-like types by @rmorgans in #586
- feat(compute): Take kernel for Map type by @hamilton-earthscope in #574
- fix: correctly initialize SchemaField.ColIndex by @JamesGuthrie in #591
- fix(arrow/array): fix concat for out of order REE slices by @zeroshade in #587
- new(arrow/compute): temporal rounding methods by @hamilton-earthscope in #572
- chore(arrow): Bump package version to 18.5.0 by @zeroshade in #594
- perf(parquet): minor tweaks for iceberg write improvement by @hamilton-earthscope in #595
- fix(arrow/cdata): fix leaks identified by leak-sanitizer by @zeroshade in #603
New Contributors
- @Dhruvit96 made their first contribution in #505
- @erezrokah made their first contribution in #510
- @orlp made their first contribution in #513
- @pixelherodev made their first contribution in #542
- @freakyzoidberg made their first contribution in #551
- @ahmed-mez made their first contribution in #553
- @hamilton-earthscope made their first contribution in #557
- @jacobromero made their first contribution in #569
- @DuanWeiFan made their first contribution in #548
- @rmorgans made their first contribution in #585
- @JamesGuthrie made their first contribution in #591
Full Changelog: https://github.com/apache/arrow-go/compare/v18.4.1...v18.5.0