apache / apache/datafusion-sqlparser-rs
Parser fails when using alias named "TOP" in SELECT statement
- 主要言語
- Rust
- スター
- 3.5k
- フォーク
- 772
- 平均マージ
- 4日 9時間
- マージ済み PR(30日)
- 17
説明
Reproducer: Using datafusion-cli https://github.com/apache/datafusion/tree/main/datafusion-cli compiled from hash 5bbdb7eb1
```
> WITH t AS (SELECT 1 AS val) SELECT tt.val FROM t AS tt;
+-----+
| val |
+-----+
| 1 |
+-----+
1 row(s) fetched.
Elapsed 0.050 seconds.
> WITH t AS (SELECT 1 AS val) SELECT top.val FROM t AS top; 🤔 Invalid statement: SQL error: ParserError("Expected: literal int, found: . at Line: 1, Column: 39")
```
Found by SQLStorm https://github.com/apache/datafusion/issues/17698
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
ハッシュ 5bbdb7eb1 からビルドした datafusion-cli で失敗を再現し、動作するエイリアス tt と失敗するエイリアス top を比較します。SQL パーサーによる SELECT エイリアス内の TOP の処理を追跡し、top.val を使用するクエリがパースされ、期待される行を返すことを確認します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- rust, sql
- 領域
- compilers
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 50/100