-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Closed
Closed
Copy link
Labels
Description
Search before asking
- I had searched in the issues and found no similar issues.
Version
2.1.4
What's Wrong?
if there is a where clause with (TIMESTAMP 'CURRENT_TIMESTAMP' IS NULL);, we might retrieve records not in the original select without the where clause.
CREATE TABLE t0(c0 INT) DISTRIBUTED BY HASH (c0) PROPERTIES ("replication_num" = "1");
CREATE TABLE t1(c0 INT) DISTRIBUTED BY HASH (c0) PROPERTIES ("replication_num" = "1");
INSERT INTO t0 (c0) VALUES (1);
INSERT INTO t1 (c0) VALUES (1);
This returns 0 rows:
SELECT t1.c0, t0.c0 FROM t1 INNER JOIN t0 ON (false) GROUP BY t1.c0, t0.c0;
This returns 1 row
SELECT t1.c0 FROM t0 INNER JOIN t1 ON (false) WHERE (TIMESTAMP 'CURRENT_TIMESTAMP' IS NULL);
The bug also exists for HAVING clauses
What You Expected?
a where / having clause should only reduce the number of records returned
How to Reproduce?
DROP DATABASE IF EXISTS doris0;
CREATE DATABASE doris0;
USE doris0;
CREATE TABLE t0(c0 int) DISTRIBUTED BY RANDOM PROPERTIES ("replication_num" = "1");
CREATE TABLE t1(c0 int) DISTRIBUTED BY RANDOM PROPERTIES ("replication_num" = "1");
INSERT INTO t1 (c0) VALUES (1);
INSERT INTO t0 (c0) VALUES (1);
SELECT t1.c0 FROM t0 INNER JOIN t1 ON (false);
SELECT t1.c0 FROM t0 INNER JOIN t1 ON (false) WHERE (TIMESTAMP 'CURRENT_TIMESTAMP' IS NULL);
DROP DATABASE IF EXISTS doris1;
CREATE DATABASE doris1;
USE doris1;
CREATE TABLE t0(c0 INT) DISTRIBUTED BY HASH (c0) PROPERTIES ("replication_num" = "1");
CREATE TABLE t1(c0 INT) DISTRIBUTED BY HASH (c0) PROPERTIES ("replication_num" = "1");
INSERT INTO t0 (c0) VALUES (1);
INSERT INTO t1 (c0) VALUES (1);
SELECT t1.c0, t0.c0 FROM t1 INNER JOIN t0 ON (false) GROUP BY t1.c0, t0.c0;
SELECT t1.c0, t0.c0 FROM t1 INNER JOIN t0 ON (false) GROUP BY t1.c0, t0.c0 HAVING ((TIMESTAMP 'CURRENT_TIMESTAMP') IS NULL);
Anything Else?
No response
Are you willing to submit PR?
- Yes I am willing to submit a PR!
Code of Conduct
- I agree to follow this project's Code of Conduct