Build fails against DataFusion 54.1.0 due to new `schema` field on `RecursiveQuery`

Offen Anfängerfreundlich
#1,644 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
78/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Ruhig
Tech-Stack
python, rust
Bereich
build-system

Rechercherichtung

Beginne in crates/core/src/expr/recursive_query.rs beim Initialisierer PyRecursiveQuery::new() und prüfe die Anforderungen der DataFusion-Abhängigkeit des Workspace. Führe cargo check --workspace --all-targets mit DataFusion 54.1.0 aus; fertig ist die Aufgabe, wenn der Konstruktor und die Abhängigkeitsanforderungen dieses Release unterstützen und der Workspace erfolgreich baut und die Tests erfolgreich durchlaufen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

bug

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".

Vorherrschende Sprache
Python
Sterne
605
Forks
176
Ø Merge
1 T. 23 Std.
Gemergte PRs (30 T.)
8

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus apache/datafusion-python

Alle Issues in apache/datafusion-python

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.