[WIP] chore(deps): validate DataFusion 52 compatibility#1997
[WIP] chore(deps): validate DataFusion 52 compatibility#1997ethan-tyler wants to merge 17 commits intoapache:mainfrom
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? |
- Update DataFusion from 51.0 to 52.0 (pre-release ref 9a9ff8d) - Update Arrow/Parquet from 57.0 to 57.1
- 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.
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. |
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.