[Bug] The BETWEEN operator suppresses normal syntax parsing.
- 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
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