apache / apache/datafusion-sqlparser-rs

`Parser::parse_query` doesn't detect wildcard syntax errors

Abierto
#404 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Rust
Estrellas
3.5k
Forks
772
Merge medio
4 d 9 h
PR fusionados (30 d)
17

Descripción

For some reason `Parser::parse_query` thinks the following are valid queries (whereas `Parser::parse_sql` correctly detects them as syntax errors):

```
SELECT * as foo FROM bar;
SELECT * foo FROM bar;
SELECT * 5 FROM bar;
```

Code to reproduce:

```rust
use sqlparser::{dialect::AnsiDialect, parser::Parser, tokenizer::Tokenizer};

fn main() {
let dialect = AnsiDialect {};
let bogus_query = "SELECT * as foo";

// Parser::parse_sql fails as expected with:
// ParserError("Expected end of statement, found: as")
assert!(Parser::parse_sql(&dialect, bogus_query).is_err());

// Parser::parse_query however does not detect the syntax error
let tokens = Tokenizer::new(&dialect, bogus_query).tokenize().unwrap();
let mut parser = Parser::new(tokens, &dialect);
assert!(parser.parse_query().is_ok());
}
```

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Start at Parser::parse_query and compare its behavior with Parser::parse_sql using the supplied Rust reproduction and Tokenizer setup. Trace how the three malformed SELECT queries are handled, then add regression coverage so parse_query rejects each wildcard syntax error while valid queries continue to parse.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
rust
Área
compilers, databases
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
68/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.