apache / apache/datafusion-comet
CometIcebergNativeScanExec: propagate outputOrdering from originalPlan instead of hardcoding Nil
- Lingua principale
- Scala
- Stelle
- 1.3k
- Fork
- 375
- Merge medio
- 2g 10h
- PR unite (30g)
- 231
Descrizione
### What is the problem the feature request solves?
CometIcebergNativeScanExec.scala hardcodes outputOrdering to Nil:
```
override lazy val outputOrdering: Seq[SortOrder] = Nil
```
Ref https://github.com/apache/iceberg/issues/16430
We can update it to :
```
override lazy val outputOrdering: Seq[SortOrder] =
if (originalPlan != null) originalPlan.outputOrdering else Nil
```
originalPlan is the wrapped BatchScanExec. Once Iceberg implements SupportsReportOrdering, BatchScanExec.outputOrdering returns the correct sort order and Comet inherits it
This wil eliminate CometSortExec above Iceberg native scans for sort-merge joins .
### Describe the potential solution
_No response_
### Additional context
_No response_
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia da CometIcebergNativeScanExec.scala e verifica come originalPlan avvolge Iceberg BatchScanExec. Verifica come viene esposto BatchScanExec.outputOrdering, quindi aggiorna il comportamento di ordinamento della scan in modo che conservi quel valore quando originalPlan esiste e rimanga Nil altrimenti. Il lavoro è completato quando le scan native Iceberg possono riportare l'ordinamento originale senza un CometSortExec non necessario.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- scala
- Ambito
- performance
- Tipo di issue
- Funzionalità
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Tranquilla
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 72/100