apache / apache/iotdb

[Bug] The BETWEEN operator reported an internal error.

Open
#14,142 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 t1 BETWEEN (0) AND (100.0)

# query 2 error
SELECT t1 FROM root.db0 WHERE 1 BETWEEN (t1) AND (100.0)
```

### What did you expect to see?

Query 1 returned result set: 0.1 and 0.2

Query 2 returned result set: 0.1 and 0.2

### What did you see instead?

Query 1 returned result set: 0.01 and 0.02

Query 2 reported an internal error: Msg: org.apache.iotdb.jdbc.IoTDBSQLException: 305: [INTERNAL_SERVER_ERROR(305)] Exception occurred: "SELECT t1 FROM root.db0 WHERE 1 BETWEEN (t1) AND (100.0)". executeStatement failed. java.lang.Long cannot be cast to java.lang.Double

### Anything else?

Dear IoTDB team, I think this might be a bug. If this functionality is not supported, should relevant information be returned to inform the user of the error reason, instead of a 305 internal error?

### 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 two BETWEEN queries from the issue against IoTDB 1.3.3, then trace the query path that handles operand types and numeric comparisons. Done means the second query returns the expected rows without an internal error, and the incorrect numeric result in the first query is resolved or reported with a clear user-facing 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
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.