apache / apache/datafusion-sqlparser-rs
Unquoted identifiers naming rule is incorrect
- 主要言語
- Rust
- スター
- 3.5k
- フォーク
- 772
- 平均マージ
- 4日 9時間
- マージ済み PR(30日)
- 17
説明
The naming rule is in https://dev.mysql.com/doc/refman/8.0/en/identifiers.html
The rule for unquoted identifiers is incorrect.
* ASCII: [0-9,a-z,A-Z$_] (basic Latin letters, digits 0-9, dollar, underscore)
* Extended: U+0080 .. U+FFFF
In the following test, we can see that `@` is unpermitted
https://github.com/sqlparser-rs/sqlparser-rs/blob/44727891713114b72546facf21a335606380845a/tests/sqlparser_mysql.rs#L1661
I think we need to fix the unquoted identifiers for MYSQL and HIVE
https://github.com/sqlparser-rs/sqlparser-rs/blob/44727891713114b72546facf21a335606380845a/src/tokenizer.rs#L803-L811
MYSQL
https://github.com/sqlparser-rs/sqlparser-rs/blob/44727891713114b72546facf21a335606380845a/src/dialect/mysql.rs#L28-L41
HIVE
https://github.com/sqlparser-rs/sqlparser-rs/blob/44727891713114b72546facf21a335606380845a/src/dialect/hive.rs#L28-L36
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
tests/sqlparser_mysql.rs:1661 付近の MySQL テストから始め、次に src/tokenizer.rs:803-811 の引用符で囲まれていない識別子のロジックと、MYSQL および HIVE の方言定義を確認します。両方の方言のルールカバレッジを更新し、@ が拒否され、文書化されている ASCII および拡張範囲が受け入れられるようにテストを追加または調整します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- mysql, rust, sql
- 領域
- databases
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- 明確に書かれている
- 初心者へのやさしさ
- 45/100