apache / apache/datafusion-sqlparser-rs

Parameterized queries

未關閉
#291 11 則留言 3 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Rust
星號
3.5k
分支
772
平均合併
4 天 9 小時
30 天內合併 PR
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 在 `?` token 附近的運算式處理,並檢視留言串以了解預期的參數表示方式。當受支援的 dialect 行為獲得釐清或實作,且此查詢有 regression test 覆蓋時,即視為完成。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
rust, sql
領域
compilers, databases
Issue 類型
功能
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
需要釐清
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。