apache / apache/datafusion-sqlparser-rs

Can't parse jsonb extractions in an on conflict in Postgres

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

The parser does not support the following:

```sql
INSERT INTO table_with_constraint_over_jsonb (a_number, a_jsonb, a_string)
VALUES ($1, $2, $3)
ON CONFLICT (a_number, (a_jsonb->>'name'))
DO UPDATE SET a_string = EXCLUDED.a_string
RETURNING *;
```

It errors on the `(a_jsonb->>'name')` part with the error: `ParserError("Expected: identifier, found: ( at Line: 1, Column: 119")`.

Guía de contribución

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

Línea de trabajo

Comienza reproduciendo el error del parser con la sentencia SQL del issue, centrándote en la extracción de jsonb entre paréntesis del objetivo de ON CONFLICT. Sigue el procesamiento de las expresiones ON CONFLICT por parte del parser SQL y, después, verifica que esta sentencia se analiza correctamente sin introducir regresiones en otros objetivos de conflicto.

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

Evaluación

Stack tecnológico
postgres, rust, sql
Área
compilers, databases
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.