Ensure that the query flattener does not change an ON clause term to a WHERE clause term.

FossilOrigin-Name: e487d3b3c03ebcf06f8071f5c6a04faae15605200361e831df7bb2361e33efc3
This commit is contained in:
drh
2024-12-02 19:32:07 +00:00
parent 81c31ff918
commit fb90add461
4 changed files with 60 additions and 32 deletions
+31
View File
@@ -325,4 +325,35 @@ do_eqp_test 6.3 {
`--REUSE LIST SUBQUERY xxxxxx
}
#-------------------------------------------------------------------------
reset_db
do_execsql_test 7.0 {
CREATE TABLE t0_1(a INT , b INT, c INT);
CREATE TABLE t0_2(a INT , b INT, c INT);
INSERT INTO t0_1 (a, b, c) VALUES (1, 0, 1);
INSERT INTO t0_2 (a, b, c) VALUES (1, 0, 1);
CREATE TABLE empty1(x);
CREATE TABLE empty2(y);
}
do_execsql_test 7.1 {
SELECT t0_2.c
FROM (SELECT '0000' AS c0 FROM empty2 RIGHT JOIN t0_1 ON 1) AS v0
LEFT JOIN empty1 ON v0.c0, t0_2
RIGHT JOIN (
SELECT 5678 AS col0 FROM (SELECT 0)
) AS sub1 ON 1;
} {1}
do_execsql_test 7.2 {
SELECT t0_2.c
FROM (SELECT '0000' AS c0 FROM empty2 RIGHT JOIN t0_1 ON 1) AS v0
LEFT JOIN empty1 ON v0.c0, t0_2
RIGHT JOIN (
SELECT 5678 AS col0 FROM (SELECT 0)
) AS sub1 ON 1 WHERE +t0_2.c;
} {1}
finish_test