Skip to content

chore(datafusion): upgrade to DataFusion 54.0.0#2777

Closed
kszucs wants to merge 2 commits into
apache:mainfrom
kszucs:chore/upgrade-datafusion-54
Closed

chore(datafusion): upgrade to DataFusion 54.0.0#2777
kszucs wants to merge 2 commits into
apache:mainfrom
kszucs:chore/upgrade-datafusion-54

Conversation

@kszucs

@kszucs kszucs commented Jul 6, 2026

Copy link
Copy Markdown
Member

Which issue does this PR close?

  • Closes #.

What changes are included in this PR?

  • Bump datafusion, datafusion-cli, datafusion-ffi, and datafusion-sqllogictest from 53.x to 54.0.0.
  • Bump home to =0.5.12 to satisfy rustyline's transitive requirement pulled in by datafusion-cli 54.
  • Remove the now-redundant as_any() impls and call sites: DataFusion 54 drops the as_any() method requirement from ExecutionPlan, TableProvider, CatalogProvider, CatalogProviderList, SchemaProvider, and PhysicalExpr in favor of native Rust trait upcasting.
  • Update Expr::Cast date-type checks in expr_to_predicate.rs to use cast.field.data_type() instead of the removed cast.data_type field.
  • Regenerate crates/integrations/datafusion/public-api.txt to drop the removed as_any() entries.

Are these changes tested?

Covered by the existing iceberg-datafusion and iceberg-playground unit/integration test suites, which all pass against DataFusion 54. Also verified with cargo build --workspace --all-targets, cargo clippy --workspace --all-targets --all-features, and cargo test --workspace.

kszucs added 2 commits July 6, 2026 22:20
Bumps datafusion, datafusion-cli, datafusion-ffi, and datafusion-sqllogictest
from 53.x to 54.0.0, and home to =0.5.12 to satisfy rustyline's transitive
requirement pulled in by datafusion-cli.

DataFusion 54 removes the as_any() method requirement from ExecutionPlan,
TableProvider, CatalogProvider, CatalogProviderList, SchemaProvider, and
PhysicalExpr in favor of native Rust trait upcasting, so the now-redundant
as_any impls and call sites are removed. Expr::Cast also replaced its
data_type field with a field: FieldRef, so downstream date-type checks are
updated to use field.data_type().
Fixes lint failure from the DataFusion 54 upgrade commit.
@kszucs kszucs changed the title chore(datafusion): Upgrade to DataFusion 54.0.0 chore(datafusion): upgrade to DataFusion 54.0.0 Jul 6, 2026
@kszucs kszucs marked this pull request as ready for review July 6, 2026 20:35
@mbutrovich

mbutrovich commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Thanks @kszucs! I'll compare to #2648 which already has a couple of reviews. I think @xanderbailey just needs to upmerge main and fix the false failure.

@kszucs

kszucs commented Jul 7, 2026

Copy link
Copy Markdown
Member Author

Ohh sorry, didn't see the other PR. Feel free to close this one if not relevant anymore.

@mbutrovich

Copy link
Copy Markdown
Collaborator

Ohh sorry, didn't see the other PR. Feel free to close this one if not relevant anymore.

No worries, thanks for the enthusiasm! If for some reason @xanderbailey can't get around to it, we can review this one. They seem mostly identical from a code standpoint, just Cargo.lock differences.

@CTTY

CTTY commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Closing as duplicate

@CTTY CTTY closed this Jul 7, 2026
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.

3 participants