apache / apache/datafusion-sqlparser-rs
Fails to parse FORCE INDEX(idx_test)
- 主要語言
- Rust
- 星號
- 3.5k
- 分支
- 774
- 平均合併
- 4 天 9 小時
- 30 天內合併 PR
- 17
描述
```
fn main() -> Result<()> {
use sqlparser::dialect::GenericDialect;
use sqlparser::parser::Parser;
let dialect = GenericDialect {}; // or AnsiDialect, or MySqlDialect
let sql = "SELECT a, b, 123, myfunc(b) \
FROM table_1 FORCE INDEX (idx_name)\
WHERE a > b AND b < 100 \
ORDER BY a DESC, b";
let ast = Parser::parse_sql(&dialect, sql).unwrap();
println!("AST: {:?}", ast);
Ok(())
}
```
throws
```
DEBUG sqlparser::dialect: get_next_precedence_full() TokenWithSpan { token: Word(Word { value: "FROM", quote_style: None, keyword: FROM }), span: Span(Location(1,29)..Location(1,33)) }
2025-02-10T19:22:33.781308Z DEBUG sqlparser::parser: next precedence: 0
thread 'main' panicked at standalone/src/main.rs:19:48:
called `Result::unwrap()` on an `Err` value: ParserError("Expected: end of statement, found: INDEX at Line: 1, Column: 48")
stack backtrace:
0: rust_begin_unwind
at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/std/src/panicking.rs:665:5
1: core::panicking::panic_fmt
at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/core/src/panicking.rs:76:14
2: core::result::unwrap_failed
at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/core/src/result.rs:1699:5
3: core::result::Result::unwrap
at /Users/jasonhansen/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:1104:23
4: standalone::main
at ./src/main.rs:19:15
5: core::ops::function::FnOnce::call_once
at /Users/jasonhansen/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
```
貢獻指南
這個儲存庫沒有索引到貢獻指南
研究方向
首先在 standalone/src/main.rs 中使用 GenericDialect、AnsiDialect 和 MySqlDialect 執行重現,然後追蹤處理 FROM 子句和 FORCE INDEX 的解析器進入點。當提供的 SELECT 在沒有回報的 INDEX 錯誤的情況下完成解析,且成功產生結果 AST 時,即表示完成。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- rust
- 領域
- databases
- Issue 類型
- 缺陷
- 難度
- 3/5
- 預估耗時
- 1-2 天
- 活躍度
- 停滯
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100