apache / apache/datafusion

select multiple columns in a single `Expr`

Aperta
#10,102 22 commenti 1 reazione 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?

I want to create a udf that can select multiple functions at once, such as a `COLUMNS()` function.

`select COLUMNS('number\d+') from my_table`.

Currently this is not possible due to the fact that udfs can only ever output a single `Expr`.

### Describe the solution you'd like

Since it would be quite a massive overhaul to refactor all of the planning and udf logic to return `Vec`, I propose adding a new variant to `Expr`.

`Expr::Columns(Vec)`.

This seems like the least invasive way to support selecting multiple columns in a single expr.

### Describe alternatives you've considered

I'm open for alternatives, but I am not aware of any.

### Additional context

Polars has this variant in their `Expr`

https://github.com/pola-rs/polars/blob/9fec2ecb6d4295969e1d155b386ee82db08745a1/crates/polars-plan/src/dsl/expr.rs#L72

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia tracciando la logica di Expr, UDF e pianificazione a cui si fa riferimento nell’issue, e confronta la proposta Expr::Columns(Vec) con la variante Expr di Polars collegata. Definisci come un’espressione possa selezionare più colonne senza effettuare il refactoring di ogni planner e di ogni percorso di ritorno di UDF; il lavoro è completo quando la query COLUMNS() richiesta può essere rappresentata e pianificata.

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

Valutazione

Stack tecnologico
rust, sql
Ambito
databases
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.