apache / apache/datafusion-sqlparser-rs
Can't parse jsonb extractions in an on conflict in Postgres
- Langage dominant
- Rust
- Étoiles
- 3.5k
- Forks
- 772
- Merge moyen
- 4 j 9 h
- PR mergées (30 j)
- 17
Description
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")`.
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par reproduire l’erreur de l’analyseur avec l’instruction SQL de l’issue, en vous concentrant sur l’extraction jsonb entre parenthèses dans la cible de ON CONFLICT. Suivez ensuite le traitement des expressions ON CONFLICT par l’analyseur SQL, puis vérifiez que cette instruction est correctement analysée sans entraîner de régression pour les autres cibles de conflit.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- postgres, rust, sql
- Domaine
- compilers, databases
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 48/100