chore(deps): upgrade to DataFusion 52#1997
Conversation
|
The audit failure (RUSTSEC-2026-0001 for rkyv) is unrelated to this PR - it's being addressed in #1994. Will rebase once that lands. |
Fix for Python Bindings CI FailureThe initial PR failed the Root cause: Fix (commit 33d5608):
The core iceberg-rust crates were already compatible with DataFusion 52 - only the Python bindings needed this update. |
33d5608 to
6e77511
Compare
6a154d0 to
f4cf8da
Compare
|
Please let me know if you run into difficulties with this PR also regarding the FFI change. I think that my approach in apache/datafusion-python#1337 will help resolve the missing elements here. |
ae7b70e to
723e3a6
Compare
|
Is there any progress now? |
723e3a6 to
a19062d
Compare
I rebased and got CI cleaned up. DF 52 Python wheels should be landing in the next day or so - https://lists.apache.org/thread/76v9pmqh7cflgjwx4wnqsmdzw00v62bl. To limit an additional follow up, I am waiting to include that and will open the PR. |
|
Let me know if you need any help with this PR. |
Thanks Tim - it's been a hot minute since I worked on Iceberg and got myself into a CI pickle. I think we should be good after this most recent push. I'll let you know if I run into any trouble. |
19690bf to
3309d6c
Compare
| - uses: PyO3/maturin-action@v1 | ||
| with: | ||
| working-directory: "bindings/python" | ||
| maturin-version: "v1.12.2" |
There was a problem hiding this comment.
#2166 should also resolve the CI issue. I would lean towards that solution. Otherwise, we should pin all the PyO3/maturin-action@v1 usages
There was a problem hiding this comment.
Thanks! I agree and like this better!
There was a problem hiding this comment.
#2166 is merged now, could you rebase and undo the current change?
Cargo.toml
Outdated
| datafusion = "51.0" | ||
| datafusion-cli = "51.0" | ||
| datafusion-sqllogictest = "51.0" | ||
| datafusion = "52.0" |
There was a problem hiding this comment.
52.1.0 is already out 😄 should we use that instead?
There was a problem hiding this comment.
Yes absolutely thanks for the catch
| assert ( | ||
| datafusion.__version__ >= "45" | ||
| ) # iceberg table provider only works for datafusion >= 45 | ||
| if Version(datafusion.__version__) < Version("52.0.0"): |
There was a problem hiding this comment.
Not related to this pr, but is it possible to extract the version from workspace Cargo.toml?
There was a problem hiding this comment.
yes - I can do this on a follow up PR
3309d6c to
196c528
Compare
| datafusion-pruning@51.0.0 X | ||
| datafusion-session@51.0.0 X | ||
| datafusion-sql@51.0.0 X | ||
| datafusion@52.0.0 X |
There was a problem hiding this comment.
We forgot to update this?
| name = "pyiceberg-core" | ||
| readme = "project-description.md" | ||
| requires-python = ">=3.10,<4" | ||
| requires-python = ">=3.10,<3.13" |
There was a problem hiding this comment.
Why this change? cc @kevinjqliu Is this reasonable?
Which issue does this PR close?
Validates and adopts DataFusion 52
What changes are included in this PR?
__datafusion_table_provider__(session)integrationDataFusion 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