Skip to content

Upgrade to Arrow/Parquet 58 and DataFusion 54.1 - #137

Merged
jiayuasu merged 1 commit into
apache:mainfrom
HarukiMoriarty:upgrade-arrow-59
Aug 14, 2026
Merged

Upgrade to Arrow/Parquet 58 and DataFusion 54.1#137
jiayuasu merged 1 commit into
apache:mainfrom
HarukiMoriarty:upgrade-arrow-59

Conversation

@HarukiMoriarty

@HarukiMoriarty HarukiMoriarty commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Hi Sedona maintainers, thanks in advance for taking a look at this one.

What

Moves the workspace up to Arrow/Parquet 58, DataFusion 54.1, and object_store 0.13.2.

Dependency Before After
arrow, parquet, arrow-csv 56 58
datafusion 50.2 54.1
object_store 0.12.4 0.13.2
arrow-array, arrow-schema 56 (direct deps) removed, use arrow re-exports

The direct arrow-array / arrow-schema deps are dropped since they pinned the Arrow version in three separate places and the arrow crate already re-exports both.

API changes these releases required

  • parquet: get_column_writers was deprecated in 57 in favour of ArrowRowGroupWriterFactory. The factory borrows a live SerializedFileWriter, so the writer is now built before the row-group stream and moved into the blocking writer task, and row groups are enumerate()d for the index the factory needs. That accounts for most of the churn in parquet.rs — the data path itself is unchanged.
  • parquet: set_max_row_group_sizeset_max_row_group_row_count(Some(n)), same semantics.
  • object_store: put / get moved onto the ObjectStoreExt trait.

Output unchanged

Arrow 58 added native GEOMETRY / GEOGRAPHY logical types, so I checked this explicitly: geometry fields carry no ARROW:extension:name metadata, and a generated zone.parquet still writes z_boundary as plain optional binary.

@HarukiMoriarty
HarukiMoriarty marked this pull request as draft August 14, 2026 16:51
@HarukiMoriarty HarukiMoriarty changed the title Upgrade Arrow dependencies to 59 Upgrade to Arrow/Parquet 58 and DataFusion 54.1 Aug 14, 2026
Dependency changes:
- arrow, parquet, arrow-csv: 56 -> 58
- datafusion: 50.2 -> 54.1
- object_store: 0.12.4 -> 0.13.2
- drop the direct arrow-array/arrow-schema deps in favour of the arrow
  crate's re-exports, so the Arrow version is declared in one place

DataFusion 54.1 depends on Arrow 58, so targeting 58 rather than 59 keeps
a single Arrow version in the dependency graph.

API updates required by those releases:
- parquet: get_column_writers (deprecated in 57) -> ArrowRowGroupWriterFactory.
  The factory borrows a live SerializedFileWriter, so the writer is now
  built up front and moved into the blocking writer task, and row groups
  are enumerated to supply the row group index the factory requires.
- parquet: set_max_row_group_size -> set_max_row_group_row_count.
- object_store: put/get moved to the ObjectStoreExt trait.

Parquet output is unchanged. Geometry columns carry no Arrow extension
metadata, so Arrow 58's native GEOMETRY logical type is not engaged and
WKB is still written as plain BYTE_ARRAY.

Signed-off-by: Nemo Yu <zyu379@wisc.edu>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@HarukiMoriarty
HarukiMoriarty marked this pull request as ready for review August 14, 2026 17:22

@jiayuasu jiayuasu left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@jiayuasu
jiayuasu merged commit 2b5a125 into apache:main Aug 14, 2026
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants