apache / apache/iotdb

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

Open
#13,729 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
6.4k
Forks
1.2k
Avg merge
1d 23h
Merged PRs (30d)
115

Description

### 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!

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the three CREATE TIMESERIES statements from the issue and tracing how attribute values are parsed, focusing on the unquoted value 500l. Done means statement 3 succeeds like statements 1 and 2, with a regression test covering the digit-and-letter value.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
databases
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.