andygrove opened a new issue, #1644:
URL: https://github.com/apache/datafusion-python/issues/1644
**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`):
```sh
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"`.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]