apache / apache/datafusion-sqlparser-rs
SQL is parsed incorrectly when `trailing_commas` is not set
- Vorherrschende Sprache
- Rust
- Sterne
- 3.5k
- Forks
- 772
- Ø Merge
- 4 T. 9 Std.
- Gemergte PRs (30 T.)
- 17
Beschreibung
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]);
}
```
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginnen Sie mit dem Aufruf von Parser::parse_sql im Beispiel parse_range_select und untersuchen Sie, wie GenericDialect SELECT-Listen behandelt, wenn trailing_commas nicht gesetzt ist. Fügen Sie einen Regressionstest hinzu, der die gezeigten Abfragen abdeckt, wobei ungültige Syntax mit nachgestellten Kommas abgelehnt wird, während das konfigurierte Verhalten von trailing_commas weiterhin unterstützt wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- rust
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100