1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-29 08:01:23 +03:00

Fix problems with WHERE clauses that follow multiple FULL JOINs. This

introduces some new faults in the tests, probably due to something
unrelated.

FossilOrigin-Name: 95b242d4c2fed7c713299565ac1010f8a7534a5695589e87d5a0204c7bf5f3dc
This commit is contained in:
drh
2022-04-18 16:10:07 +00:00
parent 41db500274
commit 2e1bcc9dd0
4 changed files with 70 additions and 47 deletions

View File

@ -102,6 +102,8 @@ foreach {id schema} {
reset_db
db nullvalue NULL
do_execsql_test join7-$id.setup $schema {}
# Verified against PG-14 for case 1
do_execsql_test join7-$id.10 {
SELECT b, d FROM t1 FULL OUTER JOIN t2 ON b=c ORDER BY +b;
} {
@ -110,6 +112,8 @@ foreach {id schema} {
3 33
4 44
}
# Verified against PG-14 for case 1
do_execsql_test join7-$id.20 {
SELECT a, c FROM t1 FULL OUTER JOIN t2 ON b=c ORDER BY +b;
} {
@ -118,6 +122,7 @@ foreach {id schema} {
1 3
1 4
}
do_execsql_test join7-$id.30 {
SELECT * FROM t1 FULL OUTER JOIN t2 ON b=c ORDER BY +b;
} {
@ -201,6 +206,8 @@ foreach {id schema} {
1 3 3 33
1 4 4 44
}
# Verified against PG-14 for case 1
do_execsql_test join7-$id.110 {
SELECT * FROM t1 FULL OUTER JOIN t2 ON b=c WHERE a=1 ORDER BY +b;
} {
@ -208,6 +215,7 @@ foreach {id schema} {
1 3 3 33
1 4 4 44
}
do_execsql_test join7-$id.111 {
SELECT t1.*, t2.* FROM t2 FULL OUTER JOIN t1 ON b=c WHERE a=1 ORDER BY +b;
} {
@ -215,6 +223,8 @@ foreach {id schema} {
1 3 3 33
1 4 4 44
}
# Verified against PG-14 for case 1
do_execsql_test join7-$id.115 {
SELECT * FROM t1 FULL OUTER JOIN t2 ON b=c
WHERE a=1 OR a IS NULL ORDER BY +b;
@ -224,6 +234,7 @@ foreach {id schema} {
1 3 3 33
1 4 4 44
}
do_execsql_test join7-$id.116 {
SELECT t1.*, t2.* FROM t2 FULL OUTER JOIN t1 ON b=c
WHERE a=1 OR a IS NULL ORDER BY +b;
@ -233,13 +244,15 @@ foreach {id schema} {
1 3 3 33
1 4 4 44
}
# Verified against PG-14 for case 1:
do_execsql_test join7-$id.120 {
SELECT * FROM t1 FULL OUTER JOIN t2 ON b=c WHERE a IS NULL ORDER BY +d;
} {
NULL NULL 3 33
NULL NULL 4 44
NULL NULL 5 55
}
# Verified against PG-14 for case 1:
do_execsql_test join7-$id.130 {
SELECT * FROM t1 FULL OUTER JOIN t2 ON b=c AND d<=0 ORDER BY +b, +d;
} {
@ -250,6 +263,8 @@ foreach {id schema} {
1 3 NULL NULL
1 4 NULL NULL
}
# Verified against PG-14 for case 1:
do_execsql_test join7-$id.140 {
SELECT a, b, c, d
FROM t2 FULL OUTER JOIN t1 ON b=c AND d<=0 ORDER BY +b, +d;
@ -261,6 +276,7 @@ foreach {id schema} {
1 3 NULL NULL
1 4 NULL NULL
}
do_execsql_test join7-$id.141 {
SELECT a, b, c, d
FROM t2 FULL OUTER JOIN t1 ON b=c AND d<=0