-
Notifications
You must be signed in to change notification settings - Fork 395
[WIP] chore(deps): validate DataFusion 52 compatibility #1997
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
[WIP] chore(deps): validate DataFusion 52 compatibility #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. |
- Update DataFusion from 51.0 to 52.0 (pre-release ref 9a9ff8d) - Update Arrow/Parquet from 57.0 to 57.1 # Conflicts: # Cargo.toml
- Update DataFusion from 51.0 to 52.0 (pre-release ref 9a9ff8d) - Update Arrow/Parquet from 57.0 to 57.1
DataFusion 52 requires two additional arguments to FFI_TableProvider::new: - task_ctx_provider: provides task execution context for filter serialization - logical_codec: optional codec for serializing logical expressions (None uses default) Added datafusion and datafusion-execution dependencies to create the required TaskContextProvider from a SessionContext.
DataFusion 52 Rust FFI is incompatible with datafusion-python 50.x from PyPI. These tests will be re-enabled when DataFusion 52 Python bindings are released.
9eaef29 to
91d6604
Compare
Which issue does this PR close?
Validation for DataFusion 52 release (apache/datafusion#18566). No iceberg-rust issue.
What changes are included in this PR?
branch-52release branch)FFI_TableProvider::newcall for DataFusion 52 API changesBreaking API Change in DataFusion FFI
DataFusion 52 changed
FFI_TableProvider::newto require two additional arguments:The new arguments:
task_ctx_provider: Provides task execution context for filter expression serialization across FFI boundarylogical_codec: Optional codec for serializing logical expressions (Noneuses default)Known Limitations
Python DataFusion Table Provider Tests Skipped
The
test_datafusion_table_provider.pytests are skipped in this PR due to an FFI version mismatch:datafusion-ffidatafusion(PyPI)The DataFusion FFI ABI is not stable across major versions. The Python bindings for DataFusion 52 are not yet released on PyPI. These tests will be re-enabled when:
pyproject.tomlis updated to usedatafusion==52.*Are these changes tested?
Locally verified:
CI will run the full test suite.