apache / apache/datafusion-sqlparser-rs
Escaping of non-latin column names
- 主要语言
- Rust
- 星标
- 3.5k
- 派生
- 772
- 平均合并
- 4 天 9 小时
- 30 天内合并 PR
- 17
描述
Hello!
I'm using `DataFusion` to query my csv file. The problem is: column names consists of Cyrillic letters and within sql query I need a way to escape column names. I've tried: single quotes, double quotes, backticks, square brackets.
In all cases I get the following error:
```
2021-02-22T20:45:46.090317300+03:00 DEBUG sqlparser::parser - parsing expr
2021-02-22T20:45:46.092602200+03:00 ERROR convert - error: SQL error: ParserError("Expected an expression:, found: `")
```
Code sample:
```rust
let mut ctx = ExecutionContext::new();
let csv_file = CsvFile::try_new(args.input.as_path().to_str().unwrap(), CsvReadOptions::new())?;
ctx.register_table("transactions", Arc::new(csv_file));
let df = ctx.sql("SELECT `ДАТА` FROM transactions")?;
let results = df.collect().await?;
log::info!("result: {:?}", results);
```
贡献指南
这个仓库没有索引到贡献指南
调研方向
该报告通过 `ctx.sql(...)` 执行 SQL 解析器,并显示失败的 `sqlparser::parser` 路径;首先跟踪带引号标识符的解析方式。使用西里尔字母列名重现该查询,并验证一种受支持的转义形式可以成功解析。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- rust, sql
- 领域
- databases
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 描述清楚
- 新手友好度
- 45/100