apache / apache/datafusion

Optimizer adds redundant projections on casts with confusing alias

Offen
#3,786 8 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug optimizer
Vorherrschende Sprache
Rust
Sterne
9.3k
Forks
2.4k
Ø Merge
3 T. 11 Std.
Gemergte PRs (30 T.)
360

Beschreibung

**Describe the bug**

https://github.com/apache/arrow-datafusion/pull/3764 fixed one regression but introduced another.

I do not understand why this additional projection is being added.

## Before

```
Inner Join: store_sales.ss_sold_date_sk = date_dim.d_date_sk
```

## After

```
Projection: CAST(date_dim.d_moy AS Int64) AS CAST(date_dim.d_moy AS Int64)date_dim.d_moy, store_sales.ss_customer_sk, date_dim.d_year
Inner Join: store_sales.ss_sold_date_sk = date_dim.d_date_sk
```

**To Reproduce**
No repro available yet

**Expected behavior**

**Additional context**

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit der Prüfung des Apache DataFusion pull request 3764 und des darauf folgenden Verhaltens des Optimizers. Reproduziere nach Möglichkeit den gemeldeten Cast- und Alias-Plan und vergleiche anschließend die Pläne vor und nach der Änderung in diesem Issue. Die Aufgabe ist abgeschlossen, wenn die redundante Projektion erklärt oder entfernt wird, ohne das Join-Verhalten zu ändern.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rust
Bereich
data-engineering
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

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