Consider the test case below. It is unexpected that, if the second query returns true, the third query returns an empty result, because the value of the WHERE predicate should be true as well. The last query should return the same result as the first query, i.e., a row with null and false.
CREATE TABLE t0(c1 INT);
CREATE TABLE t1(c1 BOOLEAN);
INSERT INTO t1(c1) VALUES ( false);
SELECT * FROM t0 RIGHT JOIN t1 ON true; -- null false
SELECT (t1.c1 LIKE (-1 BETWEEN 2 AND t0.c1)) FROM t0 RIGHT JOIN t1 ON true; -- true
SELECT * FROM t0 RIGHT JOIN t1 ON true WHERE (t1.c1 LIKE (-1 BETWEEN 2 AND t0.c1));
-- Expected: null false
-- Actual: empty table
I found this in version LI-T6.0.0.362 where I built from source code ecc49e0
Consider the test case below. It is unexpected that, if the second query returns
true, the third query returns an empty result, because the value of theWHEREpredicate should betrueas well. The last query should return the same result as the first query, i.e., a row with null and false.I found this in version LI-T6.0.0.362 where I built from source code ecc49e0