apache / apache/iotdb

[Bug] The naming combination of digits and letters triggers a 701 error.

未关闭
#13,729 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Java
星标
6.4k
派生
1.2k
平均合并
1 天 23 小时
30 天内合并 PR
115

描述

### Search before asking

- [X] I searched in the [issues](https://github.com/apache/iotdb/issues) and found nothing similar.

### Version

1.3.2

### Describe the bug and provide the minimal reproduce step

```
DROP DATABASE root.db0
CREATE DATABASE root.db0

# statement 1
CREATE TIMESERIES root.db0.t1 WITH datatype=INT32 attributes(K8SlZ=500)

# statement 2
CREATE TIMESERIES root.db0.t2 WITH datatype=INT32 attributes(K8SlZ='500l')

# statement 3
CREATE TIMESERIES root.db0.t3 WITH datatype=INT32 attributes(K8SlZ=500l)
```

### What did you expect to see?

The above three statements should all execute successfully.

### What did you see instead?

Statement 1 and Statement 2 executed successfully, but Statement 3 returns the **error**: Msg: 701: 500l is illegal, identifier not enclosed with backticks can only consist of digits, characters, and underscore.

### Anything else?

Dear IoTDB team, upon reviewing the IoTDB software documentation, `500l` should not be a keyword and meets the identifier naming rules, as it is a combination of digits and letters. However, in the attributes as a value, it requires backticks for successful creation. If it is a bug, please mark this issue as "bug". Thank you!

### Are you willing to submit a PR?

- [x] I'm willing to submit a PR!

贡献指南

打开贡献指南

调研方向

首先复现 issue 中的三条 CREATE TIMESERIES 语句,并跟踪属性值的解析方式,重点关注未加引号的值 500l。完成标准是语句 3 像语句 1 和 2 一样成功,并包含一个覆盖数字和字母值的回归测试。

由索引模型根据 Issue 内容生成。

评估

技术栈
java
领域
databases
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
45/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。