chore(deps): upgrade to DataFusion 52 by ethan-tyler · Pull Request #1997 · apache/iceberg-rust

@ethan-tyler ethan-tyler changed the title [WIP] chore(deps): validate DataFusion 52 compatibility chore(deps): upgrade to DataFusion 52

Feb 23, 2026

kevinjqliu

blackmwk

blackmwk

kevinjqliu

Signed-off-by: Ethan Urbanski <ethan@urbanskitech.com>

@ethan-tyler

xanderbailey

kevinjqliu

blackmwk pushed a commit that referenced this pull request

Feb 26, 2026
## Which issue does this PR close?

- Closes #.

## What changes are included in this PR?

While reviewing #1997, i noticed a couple of improvements we can make

1. `make install` should install the local editable `pyiceberg-core` so
that i can do `make install && make test`
2. CI should fail on warnings 
3. test should not read local env files (we made a similar fix in
pyiceberg apache/iceberg-python#3006).
Otherwise, tests were reading `~/.pyiceberg.yaml` and polluting the runs

## Are these changes tested?

Yes. 

For (2), see that [it fails in
CI](https://github.com/apache/iceberg-rust/actions/runs/22410058261/job/64880767855?pr=2178)
before removing the use of deprecated `register_table_provider`
Signed-off-by: Ethan Urbanski <ethan@urbanskitech.com>

@ethan-tyler

kevinjqliu

xanderbailey pushed a commit to xanderbailey/iceberg-rust that referenced this pull request

Feb 28, 2026
## Which issue does this PR close?

Validates and adopts DataFusion 52

## What changes are included in this PR?
- Upgrade DataFusion integration from 51.x to 52.x
- Keep the DataFusion Python dependency dynamic within major version 52 
- Update the Python FFI table provider bridge for DataFusion 52 API/ABI
expectations:
  - session-aware `__datafusion_table_provider__(session)` integration
- DF52 compatible FFI table provider construction with task context and
logical codec handling
- Update sqllogictest physical plan expectations for DataFusion 52
planner output changes
- Refresh lockfiles impacted by the upgrade

###  DataFusion FFI API change

DataFusion 52 expanded table provider FFI construction to include task
context and optional logical codec parameters.

Updated the Rust/Python bridge accordingly allowing filter/logical
expression serialization remains compatible across the FFI boundary.

## Are these changes tested?
Yes

---------

Signed-off-by: Ethan Urbanski <ethan@urbanskitech.com>