apache / apache/datafusion-sqlparser-rs

Bug: `SELECT * FROM ( SELECT * FROM APPLICATIONS.SALESFORCE.ACCOUNT) outer` fails to parse in snowflake

Aperta
#1,457 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Rust
Stelle
3.5k
Fork
772
Merge medio
4g 9h
PR unite (30g)
17

Descrizione

I hit a bug where the SQL statement
```sql
SELECT * FROM ( SELECT * FROM APPLICATIONS.SALESFORCE.ACCOUNT) outer
```

failed to parse. This is because `OUTER` is part of the reserved keyword list for table aliases. https://github.com/apache/datafusion-sqlparser-rs/blob/8ccb87a8355858ccb06ffc20484657cd7980d78c/src/keywords.rs#L843-L900

Currently this list is a global but it seems like it should be dialect specific. I'm happy to work on this, but I wanted to know if the project had any opinions on how this list should be maintained at the dialect level.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia riproducendo la query Snowflake e leggendo l'intervallo collegato in src/keywords.rs, in particolare il modo in cui OUTER viene classificato. Esamina quindi la gestione dei dialetti del parser per determinare come debba essere mantenuto l'elenco delle parole chiave riservate. Il lavoro è completato quando la query segnalata viene analizzata correttamente senza regressioni nella gestione delle parole chiave negli altri dialetti.

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

Valutazione

Stack tecnologico
rust, sql
Ambito
compilers
Tipo di issue
Bug
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.