apache / apache/datafusion-sqlparser-rs
Parse errors should show location of error in input sql string
- 主要语言
- Rust
- 星标
- 3.5k
- 派生
- 772
- 平均合并
- 4 天 9 小时
- 30 天内合并 PR
- 17
描述
When rust compiler finds a problem, it shows me exactly where to look:
```
error[E0308]: mismatched types
--> src/main.rs:73:12
|
72 | fn foo() -> String {
| ------ expected `std::string::String` because of return type
73 | return 42;
| ^^
| |
| expected struct `std::string::String`, found integer
| help: try using a conversion method: `42.to_string()`
```
When `Parser::parse_sql(...)` fails, it does not tell the user what part of the input caused the error:
```
sql parser error: Expected end of statement, found: ENGINE
```
The error should provide a position in the input sql string. Bonus points if it has nice presentation like the rust compiler error messages.
贡献指南
这个仓库没有索引到贡献指南
调研方向
从 Parser::parse_sql(...) 入口点开始,跟踪解析失败是如何构造的,并使用报告中的 ENGINE 示例确定应公开的输入位置。完成的标准是解析错误能够指出 SQL 字符串中的出错位置;采用 Rust 风格的呈现方式属于可选增强。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- rust, sql
- 领域
- compilers
- Issue 类型
- 功能
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100