apache / apache/datafusion-sqlparser-rs

Can't evaluate `CREATE TABLE` with `INDEX` in MySQL

オープン
#461 コメント 2 件 リアクション 2 件 担当者 0 名 GitHub で見る
主要言語
Rust
スター
3.5k
フォーク
772
平均マージ
4日 9時間
マージ済み PR(30日)
17

説明

`sqlparser-rs` couldn't evaluate following MySQL statement.

```mysql
CREATE TABLE users (id INT, name VARCHAR(10), INDEX (id));
```

Evaluating this statement by using cli caused following error.

```
[nannany@nannanynoMBP sqlparser-rs (main %=)]$ cargo run --example cli create_table.sql --mysql
Finished dev [unoptimized + debuginfo] target(s) in 0.02s
Running `target/debug/examples/cli create_table.sql --mysql`
Parsing from file 'create_table.sql' using MySqlDialect
2022-04-17T07:36:14.347Z DEBUG [sqlparser::parser] Parsing sql 'CREATE TABLE users (id INT, name VARCHAR(10), INDEX (id));
'...
Error during parsing: ParserError("Expected a data type name, found: (")
```

I tried version 0.16.0.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

まず、MySqlDialect と提供された create_table.sql 入力を使用し、CLI の例でこの文を再現します。テーブルレベルの INDEX 句に対するパーサーエラーを追跡し、この MySQL 文のカバレッジを追加して、他の CREATE TABLE 形式にリグレッションを起こさず正常にパースできることを確認します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
mysql, rust
領域
databases
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
48/100

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

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