apache / apache/datafusion-sqlparser-rs
INSERT from SELECT cannot be parsed with an ON CONFLICT clause
- 主要言語
- Rust
- スター
- 3.5k
- フォーク
- 772
- 平均マージ
- 4日 9時間
- マージ済み PR(30日)
- 17
説明
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.
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
提供された INSERT ... SELECT ... ON CONFLICT クエリを SQL パーサー経由で再現し、Generic と PostgreSQL の両方の方言を確認して、括弧付きの形式と比較します。INSERT 文のパースのエントリポイントを追跡し、括弧なしの形式が受け入れられる一方で、既存のケースも引き続き有効であることを確認します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- rust, sql
- 領域
- compilers
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 48/100