apache / iotdb

Apache IoTDB
https://iotdb.apache.org/
Apache License 2.0
5.63k stars 1.03k forks source link

[Bug] Abnormality in the combination of NOT operator and CAST operator. #14140

Closed LingweiKuang closed 6 days ago

LingweiKuang commented 6 days ago

Search before asking

Version

version 1.3.2 (Build: aa0ff4a)

Describe the bug and provide the minimal reproduce step

DROP DATABASE root.db0
CREATE DATABASE root.db0

CREATE TIMESERIES root.db0.t1 WITH datatype=BOOLEAN;
insert into root.db0(timestamp,t1) values(1724497540136, true)
insert into root.db0(timestamp,t1) values(1724497540137, false)

# query 1 success
SELECT t1 FROM root.db0 WHERE !FALSE

# query 2 success
SELECT t1 FROM root.db0 WHERE CAST(t1 as BOOLEAN)

# query 3 error
SELECT t1 FROM root.db0 WHERE !CAST(t1 as BOOLEAN)

What did you expect to see?

Query 1 returned result set: true and false

Query 2 returned result set: true

Query 3 returned result set: false

What did you see instead?

Query 1 returned result set: true and false

Query 2 returned result set: true

Query 3 reported an error: Msg: org.apache.iotdb.jdbc.IoTDBSQLException: 301: This predicate contains a not! Did you forget to run this predicate through PredicateRemoveNotRewriter?

Anything else?

Dear IoTDB team, The BOOLEAN value returned by CAST(t1 AS BOOLEAN) should be able to work with the NOT operator. This might be a bug.

Are you willing to submit a PR?

LingweiKuang commented 6 days ago

Abnormality in the combination of NOT operator and CAST operator