Prevent SQLite from assuming that if ((? IS NOT NULL) IS NOT NULL) is true, ? may not be NULL. Fix for [d51a8696].

FossilOrigin-Name: 7833feecfe745e237f239ee4c38a9e4bf7ad66a32919150208da87c00a826473
This commit is contained in:
dan
2019-10-10 17:09:44 +00:00
parent cd79010964
commit 0287c95165
4 changed files with 45 additions and 21 deletions
+30
View File
@@ -905,5 +905,35 @@ do_execsql_test join-18.4 {
SELECT NOT(v0.a IS FALSE) FROM v0
} {1}
#-------------------------------------------------------------------------
reset_db
do_execsql_test join-19.0 {
CREATE TABLE t1(a);
CREATE TABLE t2(b);
INSERT INTO t1(a) VALUES(0);
CREATE VIEW v0(c) AS SELECT t2.b FROM t1 LEFT JOIN t2;
}
do_execsql_test join-19.1 {
SELECT * FROM v0 WHERE v0.c NOTNULL NOTNULL;
} {{}}
do_execsql_test join-19.2 {
SELECT * FROM t1 LEFT JOIN t2
} {0 {}}
do_execsql_test join-19.3 {
SELECT * FROM t1 LEFT JOIN t2 WHERE (b IS NOT NULL) IS NOT NULL;
} {0 {}}
do_execsql_test join-19.4 {
SELECT (b IS NOT NULL) IS NOT NULL FROM t1 LEFT JOIN t2
} {1}
do_execsql_test join-19.5 {
SELECT * FROM t1 LEFT JOIN t2 WHERE
(b IS NOT NULL AND b IS NOT NULL) IS NOT NULL;
} {0 {}}
finish_test