The abstract expression sequence is: time IN (constant) AND time BETWEEEN (constant) AND (constant)
To Reproduce
Assume that we execute the following statement under a database named testdb.
DROP TABLE IF EXISTS t1;
CREATE TABLE t1(time TIMESTAMP, c1 BIGINT);
INSERT INTO t1(time, c1) VALUES (1641024000000, 1);
# query 1
SELECT c1 FROM t1 WHERE time IN (1) AND time BETWEEN (1741024000000) AND (1741024000000);
Expected Behavior
Query 1 returned result set: empty set
Actual behaviour
Query 1 returned result set: 1
Environment
OS:Ubuntu Server 22.04 LTS 64bit
TDengine Version:3.3.4.3
Additional Context
Hello, TDengine team. When the IN operator and the BETWEEN operator are used on the time field and connected by the AND logical operator, the expressions involving the IN and BETWEEN operators evaluate to FALSE, but the final result still filters out all the data.
Bug Description
The abstract expression sequence is:
time IN (constant) AND time BETWEEEN (constant) AND (constant)
To Reproduce
Assume that we execute the following statement under a database named testdb.
Expected Behavior
Query 1 returned result set: empty set
Actual behaviour
Query 1 returned result set: 1
Environment
Additional Context
Hello, TDengine team. When the
IN
operator and theBETWEEN
operator are used on thetime
field and connected by theAND
logical operator, the expressions involving the IN and BETWEEN operators evaluate to FALSE, but the final result still filters out all the data.