Fix an adverse interaction between the IS NOT NULL optimization (available
only with SQLITE_ENABLE_STAT3) and the transitive constraint processing. Fix for ticket [d805526eae253] FossilOrigin-Name: 3b30b75b342bb6b424ad2bf7cd841b2c88bdad44
This commit is contained in:
@@ -47,4 +47,59 @@ do_execsql_test transitive1-220 {
|
||||
SELECT * FROM t2 WHERE a=b AND c=b AND c<=20 ORDER BY +a;
|
||||
} {20 20 20 100 100 100}
|
||||
|
||||
# Test cases for ticket [[d805526eae253103] 2013-07-08
|
||||
# "Incorrect join result or assertion fault due to transitive constraints"
|
||||
#
|
||||
do_execsql_test transitive1-300 {
|
||||
CREATE TABLE t301(w INTEGER PRIMARY KEY, x);
|
||||
CREATE TABLE t302(y INTEGER UNIQUE, z);
|
||||
INSERT INTO t301 VALUES(1,2),(3,4),(5,6);
|
||||
INSERT INTO t302 VALUES(1,3),(3,6),(5,7);
|
||||
SELECT *
|
||||
FROM t301 CROSS JOIN t302
|
||||
WHERE w=y AND y IS NOT NULL
|
||||
ORDER BY +w;
|
||||
} {1 2 1 3 3 4 3 6 5 6 5 7}
|
||||
do_execsql_test transitive1-301 {
|
||||
SELECT *
|
||||
FROM t301 CROSS JOIN t302
|
||||
WHERE w=y AND y IS NOT NULL
|
||||
ORDER BY w;
|
||||
} {1 2 1 3 3 4 3 6 5 6 5 7}
|
||||
do_execsql_test transitive1-310 {
|
||||
SELECT *
|
||||
FROM t301 CROSS JOIN t302 ON w=y
|
||||
WHERE y>1
|
||||
ORDER BY +w
|
||||
} {3 4 3 6 5 6 5 7}
|
||||
do_execsql_test transitive1-311 {
|
||||
SELECT *
|
||||
FROM t301 CROSS JOIN t302 ON w=y
|
||||
WHERE y>1
|
||||
ORDER BY w
|
||||
} {3 4 3 6 5 6 5 7}
|
||||
do_execsql_test transitive1-312 {
|
||||
SELECT *
|
||||
FROM t301 CROSS JOIN t302 ON w=y
|
||||
WHERE y>1
|
||||
ORDER BY w DESC
|
||||
} {5 6 5 7 3 4 3 6}
|
||||
do_execsql_test transitive1-320 {
|
||||
SELECT *
|
||||
FROM t301 CROSS JOIN t302 ON w=y
|
||||
WHERE y BETWEEN 2 AND 4;
|
||||
} {3 4 3 6}
|
||||
do_execsql_test transitive1-331 {
|
||||
SELECT *
|
||||
FROM t301 CROSS JOIN t302 ON w=y
|
||||
WHERE y BETWEEN 1 AND 4
|
||||
ORDER BY w;
|
||||
} {1 2 1 3 3 4 3 6}
|
||||
do_execsql_test transitive1-332 {
|
||||
SELECT *
|
||||
FROM t301 CROSS JOIN t302 ON w=y
|
||||
WHERE y BETWEEN 1 AND 4
|
||||
ORDER BY w DESC;
|
||||
} {3 4 3 6 1 2 1 3}
|
||||
|
||||
finish_test
|
||||
|
||||
Reference in New Issue
Block a user