[WIP] chore(deps): validate DataFusion 52 compatibility#1997
Draft
ethan-tyler wants to merge 7 commits intoapache:mainfrom
Draft
[WIP] chore(deps): validate DataFusion 52 compatibility#1997ethan-tyler wants to merge 7 commits intoapache:mainfrom
ethan-tyler wants to merge 7 commits intoapache:mainfrom
Conversation
Author
|
The audit failure (RUSTSEC-2026-0001 for rkyv) is unrelated to this PR - it's being addressed in #1994. Will rebase once that lands. |
Author
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
41 tasks
6a154d0 to
f4cf8da
Compare
Member
|
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
ae7b70e to
723e3a6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.