select multiple columns in a single `Expr`
- 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