apache / apache/datafusion-sqlparser-rs
Parameterized queries
- 主要言語
- Rust
- スター
- 3.5k
- フォーク
- 772
- 平均マージ
- 4日 9時間
- マージ済み PR(30日)
- 17
説明
This fails to parse, but it can be successfully executed by SQLite (after providing a value for the parameter):
```
#[test]
fn go() {
use sqlparser::dialect::SQLiteDialect;
use sqlparser::parser::Parser;
let sql = "select * from test_table where test_column = ?;";
let dialect = SQLiteDialect {}; // or AnsiDialect, or your own dialect ...
let ast = Parser::parse_sql(&dialect, sql).unwrap();
println!("AST: {:#?}", ast);
}
```
Any idea why I get this error message?:
_called `Result::unwrap()` on an `Err` value: ParserError("Expected an expression, found: ?")
thread 'dynamic_queries::go' panicked at 'called `Result::unwrap()` on an `Err` value: ParserError("Expected an expression, found: ?")',_
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
まず、issue に示されているパラメーター化クエリを使い、SQLiteDialect の Parser::parse_sql を通じて失敗を再現します。`?` トークン周辺の parser の式処理を読み、意図されたパラメーター表現についてコメントスレッドを確認します。このクエリの回帰テストによって、サポート対象の dialect の動作が明確化または実装され、カバーされれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- rust, sql
- 領域
- compilers, databases
- issue の種類
- 機能追加
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 35/100