Additional `IN` / `NOT IN` simplifications
- Lingua principale
- Rust
- Stelle
- 9.3k
- Fork
- 2.4k
- Merge medio
- 3g 11h
- PR unite (30g)
- 360
Descrizione
In the following on PR, I think we can move inlist related simplifier logic to `inlist_simplifier`.
Steps in inlist_simplifier
1. early stage simplification like `expr IN () --> false`, `null IN/NOT IN`
2. convert long OR chain or AND chain to InList expressions like what `or_in_list_simplifier` does
3. shorten InList expressions like what `inlist_simplifier` in this PR does
4. convert final inlist to OR chain or AND chain if len < 3. Move inlist related simplifier out from `expr_simplifier`
In this way, when the logic grows more complex, we can easily find out related conversion about specific Expr
_Originally posted by @jayzhan211 in https://github.com/apache/arrow-datafusion/issues/8949#issuecomment-1906115890_
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia leggendo la logica esistente di expr_simplifier, inlist_simplifier e or_in_list_simplifier per tracciare come vengono gestite le espressioni IN e NOT IN. Il refactoring è completato quando i passaggi elencati di semplificazione iniziale, conversione delle catene, accorciamento ed espansione finale sono organizzati tramite inlist_simplifier, senza che rimanga logica specifica di inlist in expr_simplifier.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust, sql
- Ambito
- databases
- Tipo di issue
- Refactoring
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 38/100