apache / apache/datafusion-sqlparser-rs

SQL is parsed incorrectly when `trailing_commas` is not set

Aperta
#1,064 4 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

When parser not set `trailing_commas=true` in `ParserOptions` or use `BigQueryDialect`, the following SQL will be wrongly parse instead of throw an error.

```sql
SELECT foo, bar, FROM baz

-- Will be wrongly parse instead of throw an error.

SELECT foo, bar, FROM AS baz
```

In theory it should throw a error

relevant code

```rust
#[test]
fn parse_range_select() {
let statements = Parser::parse_sql(&GenericDialect {}, "SELECT foo, bar, FROM baz").unwrap();
println!("{}", statements[0]);
}
```

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia con la chiamata a Parser::parse_sql nell'esempio parse_range_select e verifica come GenericDialect gestisce gli elenchi SELECT quando trailing_commas non è impostato. Aggiungi un test di regressione che copra le query mostrate, rifiutando la sintassi non valida con virgola finale, mantenendo al contempo il supporto per il comportamento configurato di trailing_commas.

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

Valutazione

Stack tecnologico
rust
Ambito
compilers
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.