Support date types in `percentile_cont` aggregate function
- 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