apache / apache/datafusion-sqlparser-rs
Can't parse jsonb extractions in an on conflict in Postgres
- Lingua principale
- Rust
- Stelle
- 3.5k
- Fork
- 772
- Merge medio
- 4g 9h
- PR unite (30g)
- 17
Descrizione
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")`.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Inizia riproducendo l’errore del parser con l’istruzione SQL presente nell’issue, concentrandoti sull’estrazione jsonb tra parentesi nel target di ON CONFLICT. Segui quindi la gestione delle espressioni ON CONFLICT da parte del parser SQL e verifica che questa istruzione venga analizzata correttamente senza introdurre regressioni negli altri target di conflitto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- postgres, rust, sql
- Ambito
- compilers, databases
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 48/100