apache / apache/iotdb

[Bug] The BETWEEN operator suppresses normal syntax parsing.

Open
#14,143 2 comments 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

version 1.3.3 (Build: ad95a7e)

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

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

CREATE TIMESERIES root.db0.t1 WITH datatype=DOUBLE compressor=GZIP 'MAX_POINT_NUMBER'='8';
INSERT INTO root.db0(timestamp, t1) VALUES (1676586471999, 0.1);
INSERT INTO root.db0(t1) VALUES (0.2);

# query 1 success
SELECT t1 FROM root.db0 WHERE 1 BETWEEN (0) AND (t1 - CAST(t1 as DOUBLE))

# query 2 error
SELECT t1 FROM root.db0 WHERE (t1 - CAST(t1 as DOUBLE))
```

### What did you expect to see?

Query 1 returned result set: INTERNAL_SERVER_ERROR(305) Unsupported expression type: SUBTRACTION

Query 2 returned result set: INTERNAL_SERVER_ERROR(305) Unsupported expression type: SUBTRACTION

### What did you see instead?

Query 1 returned result set: Empty set.

Query 2 returned result set: INTERNAL_SERVER_ERROR(305) Unsupported expression type: SUBTRACTION

### Anything else?

Dear IoTDB team, Both Query 1 and Query 2 should report syntax errors, but Query 1 executes successfully, which could mislead users.

### 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 running the minimal reproduction against IoTDB 1.3.3, focusing on how the SQL parser handles the two WHERE expressions and the BETWEEN form. Trace the entry point for parsing Query 1 and compare it with Query 2. Done means Query 1 no longer executes successfully or returns an empty set when the expression is invalid, and both cases report the intended syntax error.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.