apache / apache/datafusion-sqlparser-rs

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

Ouverte
#1,977 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.