Build fails against DataFusion 54.1.0 due to new `schema` field on `RecursiveQuery`
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 78/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Quiet
- Domain
- build-system
Research direction
Start in crates/core/src/expr/recursive_query.rs at the PyRecursiveQuery::new() initializer and inspect the workspace DataFusion dependency requirements. Run cargo check --workspace --all-targets with DataFusion 54.1.0; done means the constructor and dependency requirements support that release and the workspace builds and tests successfully.
Written by the indexing model from the issue text.
Description
Describe the bug
datafusion-python does not build against DataFusion 54.1.0. The workspace
dependencies are declared as version = "54", so Cargo is free to resolve them
to 54.1.0, but the crate no longer compiles when it does:
error[E0063]: missing field `schema` in initializer of `datafusion::logical_expr::RecursiveQuery`
--> crates/core/src/expr/recursive_query.rs:72:20
|
72 | query: RecursiveQuery {
| ^^^^^^^^^^^^^^ missing `schema`
DataFusion 54.1.0 added a schema: DFSchemaRef field to
datafusion_expr::logical_plan::RecursiveQuery and introduced
RecursiveQuery::try_new(), which computes that schema by reconciling the
static and recursive terms. Our PyRecursiveQuery::new() builds the struct
with a literal initializer, so the new field breaks it.
To Reproduce
With a Cargo.lock that resolves DataFusion to 54.1.0 (e.g. a fresh checkout
without the committed lock file, or after cargo update -p datafusion --precise 54.1.0):
cargo check --workspace --all-targets
Expected behavior
datafusion-python builds and tests against DataFusion 54.1.0.
Additional context
Because the existing version requirements are "54", this is not limited to
developers who explicitly opt in — any consumer resolving the dependency fresh
picks up 54.1.0 and hits the failure. The fix is to use
RecursiveQuery::try_new() and pin the workspace requirements to "54.1".
- Dominant language
- Python
- Stars
- 605
- Forks
- 176
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 8
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from apache/datafusion-python
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
apache/datafusion-python#1726 ·
-
Difficulty 2/5 Half a day Newbie friendliness 88/100
apache/datafusion-python#1691 ·
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 30/100
apache/datafusion-python#1737 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 76/100
apache/datafusion-python#1735 · 1 comment ·
-
bug good first issue
Difficulty 4/5 3-5 days Newbie friendliness 48/100
apache/datafusion-python#1728 ·
All issues in apache/datafusion-python
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100