apache / apache/datafusion-sqlparser-rs

INSERT from SELECT cannot be parsed with an ON CONFLICT clause

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

Parsing the following SQL
```sql
INSERT INTO foo
SELECT 1, 'data'
ON CONFLICT DO NOTHING
```
fails with
```
Expected: end of statement, found: CONFLICT at Line: 3, Column: 6
```
both for Generic and PostgreSQL dialects.

However, at least in PostgreSQL it seems to be a valid construct, equivalent to
```sql
INSERT INTO foo
(SELECT 1, 'data')
ON CONFLICT DO NOTHING
```
(this one is parsed by `sqlparser` correctly).

The same query without the "ON CONFLICT" clause can be successfully parsed too.

Guía de contribución

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

Línea de trabajo

Reproduzca la consulta INSERT ... SELECT ... ON CONFLICT proporcionada a través del analizador SQL, comprobando tanto los dialectos Generic y PostgreSQL como comparándola con la forma entre paréntesis. Siga el punto de entrada del análisis de la sentencia INSERT y confirme que se acepta la forma sin paréntesis, mientras los casos existentes siguen siendo válidos.

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

Evaluación

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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.