apache / apache/datafusion-sqlparser-rs
INSERT from SELECT cannot be parsed with an ON CONFLICT clause
- Langage dominant
- Rust
- Étoiles
- 3.5k
- Forks
- 772
- Merge moyen
- 4 j 9 h
- PR mergées (30 j)
- 17
Description
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.
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Reproduisez la requête INSERT ... SELECT ... ON CONFLICT fournie via l’analyseur SQL, en vérifiant à la fois les dialectes Generic et PostgreSQL et en la comparant à la forme entre parenthèses. Suivez le point d’entrée de l’analyse de l’instruction INSERT et confirmez que la forme sans parenthèses est acceptée, tout en veillant à ce que les cas existants restent valides.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- rust, sql
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 48/100