apache / apache/datafusion-sqlparser-rs

Cannot parse table alias or cte alias in Postgres dialect

Abierto
#1,069 4 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

Sorry for bothering you.
I'm using sqlparser = "0.40.0"
This is my code:
```rust
use sqlparser::dialect::PostgreSqlDialect;
use sqlparser::parser::{Parser, ParserError};

fn main() {
let dialect = PostgreSqlDialect {};

let sql1 = r#"
WITH existing AS (SELECT test_table.id FROM test_tables AS test_table WHERE (a = 12) AND (b = 34)),
inserted AS (INSERT INTO test_tables AS test_table (id, a, b, c) VALUES (DEFAULT, 56, 78, 90) ON CONFLICT (a, b)
DO UPDATE SET c = EXCLUDED.c WHERE (test_table.c != EXCLUDED.c)) SELECT c FROM existing"#;

let sql2 = "INSERT INTO test_tables AS test_table (id, a) VALUES (DEFAULT, 123) ON CONFLICT DO NOTHING RETURNING id";

let ast1 = Parser::parse_sql(&dialect, sql1);
match ast1 {
Ok(_) => {

}
Err(e) => {
println!("fail ast1: {}", e);
}
}
let ast2 = Parser::parse_sql(&dialect, sql2);
match ast2 {
Ok(_) => {
}
Err(e) => {
println!("fail ast2: {}", e);
}
}
}
```
error output:
```bash
fail ast1: sql parser error: Expected SELECT, VALUES, or a subquery in the query body, found: AS at Line: 3, Column 43
fail ast2: sql parser error: Expected SELECT, VALUES, or a subquery in the query body, found: AS at Line: 1, Column 25
```

Thank you!

Guía de contribución

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

Línea de trabajo

Comienza con las llamadas a PostgreSqlDialect y Parser::parse_sql en el reproductor, ejecutando tanto sql1 como sql2 para confirmar los errores de análisis de alias. Rastrea cómo las sentencias INSERT y los cuerpos de consulta CTE manejan los alias; el trabajo estará terminado cuando ambas sentencias PostgreSQL se analicen correctamente sin los errores indicados.

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

Evaluación

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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.