New test cases for query flattening with LEFT JOIN.

FossilOrigin-Name: 27f68e47320c751e3663507500c1c44f0b7f885f89c678fce6a35b1bc372dd64
This commit is contained in:
drh 2022-06-23 22:43:11 +00:00
parent 3a6e0c3f04
commit 521e0b6cb6
3 changed files with 20 additions and 7 deletions

View File

@ -1,5 +1,5 @@
C Reintroduce\sflattener\sconstraint\s(3c),\sbut\sthis\stime\smake\sit\sapply\sonly\sif\nthe\souter\squery\sholds\sa\sGROUP\sBY,\snot\sif\sthe\souter\squery\sis\san\saggregate. C New\stest\scases\sfor\squery\sflattening\swith\sLEFT\sJOIN.
D 2022-06-23T20:56:45.105 D 2022-06-23T22:43:11.183
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@ -1161,7 +1161,7 @@ F test/ioerr4.test f130fe9e71008577b342b8874d52984bd04ede2c
F test/ioerr5.test 2edfa4fb0f896f733071303b42224df8bedd9da4 F test/ioerr5.test 2edfa4fb0f896f733071303b42224df8bedd9da4
F test/ioerr6.test a395a6ab144b26a9e3e21059a1ab6a7149cca65b F test/ioerr6.test a395a6ab144b26a9e3e21059a1ab6a7149cca65b
F test/istrue.test e7f285bb70282625c258e866ce6337d4c762922f5a300e1b50f958aef6e7d9c9 F test/istrue.test e7f285bb70282625c258e866ce6337d4c762922f5a300e1b50f958aef6e7d9c9
F test/join.test 6dacc1c7121cac00d17c720677c5a598c8ef6e16780ea9a24edfb96c9b397137 F test/join.test 21dbc65ab2476b10ae3ed1dcf64a99fb9a40473caa22f4cec2d6a829933c1442
F test/join2.test 466b07233820f5deee66a6c3bf6e4500c8bbf7b83649e67606f5f649c07928c0 F test/join2.test 466b07233820f5deee66a6c3bf6e4500c8bbf7b83649e67606f5f649c07928c0
F test/join3.test 6f0c774ff1ba0489e6c88a3e77b9d3528fb4fda0 F test/join3.test 6f0c774ff1ba0489e6c88a3e77b9d3528fb4fda0
F test/join4.test 1a352e4e267114444c29266ce79e941af5885916 F test/join4.test 1a352e4e267114444c29266ce79e941af5885916
@ -1978,8 +1978,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P f8fe936ad4f7678f9b26ba6fab41c5df9f4938634cdb3286b0f2dcd1357f919a P 641dfb9182a6cbadb3c452f5420f896791b7844b794f693443bcd38dca14da35
R 83ca326ff6a26325b2e0f5cb84056d0f R bfe2e11b6b9bf77e961e6114078fa2b3
U drh U drh
Z 3bf3bb97c304e358370c1c605007c0f4 Z 171414e3a15469d4d57a23b44125d739
# Remove this line to create a well-formed Fossil manifest. # Remove this line to create a well-formed Fossil manifest.

View File

@ -1 +1 @@
641dfb9182a6cbadb3c452f5420f896791b7844b794f693443bcd38dca14da35 27f68e47320c751e3663507500c1c44f0b7f885f89c678fce6a35b1bc372dd64

View File

@ -762,10 +762,23 @@ do_execsql_test join-14.4 {
CREATE TABLE t1(c PRIMARY KEY, a TEXT(10000), b TEXT(10000)); CREATE TABLE t1(c PRIMARY KEY, a TEXT(10000), b TEXT(10000));
SELECT * FROM (SELECT 111) LEFT JOIN (SELECT c+222 FROM t1) GROUP BY 1; SELECT * FROM (SELECT 111) LEFT JOIN (SELECT c+222 FROM t1) GROUP BY 1;
} {111 {}} } {111 {}}
do_execsql_test join-14.4b {
SELECT * FROM (SELECT 111) LEFT JOIN (SELECT c+222 FROM t1);
} {111 {}}
do_execsql_test join-14.5 { do_execsql_test join-14.5 {
SELECT * FROM (SELECT 111 AS x UNION ALL SELECT 222) SELECT * FROM (SELECT 111 AS x UNION ALL SELECT 222)
LEFT JOIN (SELECT c+333 AS y FROM t1) ON x=y GROUP BY 1; LEFT JOIN (SELECT c+333 AS y FROM t1) ON x=y GROUP BY 1;
} {111 {} 222 {}} } {111 {} 222 {}}
do_execsql_test join-14.5b {
SELECT count(*)
FROM (SELECT 111 AS x UNION ALL SELECT 222)
LEFT JOIN (SELECT c+333 AS y FROM t1) ON x=y;
} {2}
do_execsql_test join-14.5c {
SELECT count(*)
FROM (SELECT c+333 AS y FROM t1)
RIGHT JOIN (SELECT 111 AS x UNION ALL SELECT 222) ON x=y;
} {2}
do_execsql_test join-14.6 { do_execsql_test join-14.6 {
SELECT * FROM (SELECT 111 AS x UNION ALL SELECT 111) SELECT * FROM (SELECT 111 AS x UNION ALL SELECT 111)
LEFT JOIN (SELECT c+333 AS y FROM t1) ON x=y GROUP BY 1; LEFT JOIN (SELECT c+333 AS y FROM t1) ON x=y GROUP BY 1;