apache / apache/datafusion-sqlparser-rs

Parser fails when using alias named "TOP" in SELECT statement

オープン
#2,046 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。