Build fails against DataFusion 54.1.0 due to new `schema` field on `RecursiveQuery`
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 78/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Calme
- Domaine
- build-system
Piste de recherche
Commencez dans crates/core/src/expr/recursive_query.rs, au niveau de l’initialiseur PyRecursiveQuery::new(), et examinez les exigences de dépendance de DataFusion du workspace. Exécutez cargo check --workspace --all-targets avec DataFusion 54.1.0 ; c’est terminé lorsque le constructeur et les exigences de dépendance prennent en charge cette version et que le workspace se compile et que les tests s’exécutent avec succès.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
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".
- Langage dominant
- Python
- Étoiles
- 605
- Forks
- 176
- Merge moyen
- 1 j 23 h
- PR mergées (30 j)
- 8
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de apache/datafusion-python
-
documentation
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
apache/datafusion-python#1726 ·
-
Difficulté 2/5 Une demi-journée Accessibilité débutants 88/100
apache/datafusion-python#1691 ·
-
enhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 30/100
apache/datafusion-python#1737 ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 76/100
apache/datafusion-python#1735 · 1 commentaire ·
-
bug good first issue
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
apache/datafusion-python#1728 ·
Toutes les issues de apache/datafusion-python
Issues similaires
-
documentation help wanted
Difficulté 2/5 1-3 heures Accessibilité débutants 90/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 90/100
simonw/sqlite-utils#872 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100