apache / apache/iotdb

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

オープン
#13,729 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
6.4k
フォーク
1.2k
平均マージ
1日 23時間
マージ済み PR(30日)
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 にある3つの CREATE TIMESERIES 文を再現し、属性値がどのように解析されるかを追跡します。引用符で囲まれていない値 500l に重点を置いてください。完了条件は、文 3 が文 1 および文 2 と同様に成功し、数字と文字で構成された値を対象とする回帰テストがあることです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
databases
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。