apache / apache/datafusion

Support date types in `percentile_cont` aggregate function

Aperta
#18,601 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
enhancement
Lingua principale
Rust
Stelle
9.3k
Fork
2.4k
Merge medio
3g 11h
PR unite (30g)
360

Descrizione

### Is your feature request related to a problem or challenge?

https://github.com/apache/datafusion/pull/17988 has added support for `percentile_cont`, and this function can support more date-related data types.

Data is generated with https://github.com/clflushopt/tpchgen-rs/tree/main/tpchgen-cli
```
DataFusion CLI v51.0.0
> select percentile_cont(0.01) within group (order by l_shipdate)
from '/Users/yongting/data/tpch_sf1/lineitem.parquet';
Error during planning: Failed to coerce arguments to satisfy a call to 'percentile_cont' function: coercion from Date32, Float64 to the signature OneOf([Exact([Int8, Float64]), Exact([Int16, Float64]), Exact([Int32, Float64]), Exact([Int64, Float64]), Exact([UInt8, Float64]), Exact([UInt16, Float64]), Exact([UInt32, Float64]), Exact([UInt64, Float64]), Exact([Float32, Float64]), Exact([Float64, Float64])]) failed No function matches the given name and argument types 'percentile_cont(Date32, Float64)'. You might need to add explicit type casts.
Candidate functions:
percentile_cont(expr: Int8, percentile: Float64)
percentile_cont(expr: Int16, percentile: Float64)
percentile_cont(expr: Int32, percentile: Float64)
percentile_cont(expr: Int64, percentile: Float64)
percentile_cont(expr: UInt8, percentile: Float64)
percentile_cont(expr: UInt16, percentile: Float64)
percentile_cont(expr: UInt32, percentile: Float64)
percentile_cont(expr: UInt64, percentile: Float64)
percentile_cont(expr: Float32, percentile: Float64)
percentile_cont(expr: Float64, percentile: Float64)
```

### Describe the solution you'd like

_No response_

### Describe alternatives you've considered

_No response_

### Additional context

_No response_

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia dall’implementazione della funzione di aggregazione percentile_cont e dalla firma dei tipi del relativo argomento o dalla gestione della coercizione. Riproduci la query mostrata di DataFusion CLI con i dati TPCH lineitem, quindi aggiungi la copertura per Date32 e per i tipi relativi alle date supportati dall’implementazione. Il lavoro è completo quando percentile_cont accetta l’input di data indicato e restituisce il risultato percentile previsto.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
rust, sql
Ambito
databases
Tipo di issue
Funzionalità
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
48/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.