diff options
-rw-r--r-- | manifest | 12 | ||||
-rw-r--r-- | manifest.uuid | 2 | ||||
-rw-r--r-- | test/join8.test | 57 |
3 files changed, 64 insertions, 7 deletions
@@ -1,5 +1,5 @@ -C Another\sinstance\sof\sindenting\sa\ssubroutine. -D 2022-04-14T19:05:17.456 +C Record\sthe\sthree\sknown\sbig\sissues\swith\sthe\scurrent\sRIGHT\sJOIN\sdesign\sin\nthe\sjoin8\stest\smodule,\swith\stests\sthat\sdeliberately\sfail\sin\sorder\sto\sremind\nus\sto\sfix\sthe\sissues. +D 2022-04-14T20:43:22.638 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -1147,7 +1147,7 @@ F test/join4.test 1a352e4e267114444c29266ce79e941af5885916 F test/join5.test c4df54e2e204d7f1417bfbdd21ca324b4b07415c647595cc47798eacfddc96d3 F test/join6.test f809c025fa253f9e150c0e9afd4cef8813257bceeb6f46e04041228c9403cc2c F test/join7.test e5c9b1b729d7e1d0b4195e99833e0ff0cf2d88e7fdd32b49af1044f4c76f72d9 -F test/join8.test 72248c33b44f8fc8614c739eff176fd8e18ffab04896b9ce6fd7933854dd7d25 +F test/join8.test 9731b16dbb4309a980ba4adcb4ec31277626230300f819296ffc753c564b2011 F test/journal1.test c7b768041b7f494471531e17abc2f4f5ebf9e5096984f43ed17c4eb80ba34497 F test/journal2.test 9dac6b4ba0ca79c3b21446bbae993a462c2397c4 F test/journal3.test 7c3cf23ffc77db06601c1fcfc9743de8441cb77db9d1aa931863d94f5ffa140e @@ -1947,8 +1947,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 647211e044a5856ceb6bf3e7b78e650fe7d81f8b7bf34568b99b346405ba520c -R 2197645c7a941ac2357190e97207d106 +P 73f4036b04798660b30e540cbab69420078df9fb62a6a39944e078c36272f905 +R 2147cfd4b343bafdc07bef52bfee2ef0 U drh -Z e29940f759984b818be8f8538ce00e8e +Z 5c1d0d9c07677bde5075ec99ede43a74 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index fdb88c42d..7a8d3db95 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -73f4036b04798660b30e540cbab69420078df9fb62a6a39944e078c36272f905
\ No newline at end of file +2c4ee723f4d0591d09776adfb82246bfa89153ab390b8b3f1878d1cdc43d68c8
\ No newline at end of file diff --git a/test/join8.test b/test/join8.test index 0854d9729..bd80c96de 100644 --- a/test/join8.test +++ b/test/join8.test @@ -21,4 +21,61 @@ do_execsql_test join8-10 { CREATE INDEX t2x ON t2(x); SELECT avg(DISTINCT b) FROM (SELECT * FROM t2 LEFT RIGHT JOIN t1 ON c); } {NULL} + +# Pending issue #1: +# Row-value initialization subroutines must be called from with the +# RIGHT JOIN body subroutine before the first use of any register containing +# the results of that subroutine. This seems dodgy. Test case: +# +# CREATE TABLE t1(a INTEGER PRIMARY KEY AUTOINCREMENT,b,c,d,e,f,g,h,j,k,l,m,n,o,p,q,r,s); +# CREATE INDEX t1x1 ON t1(g+h,j,k); +# CREATE INDEX t1x2 ON t1(b); +# INSERT INTO t1 DEFAULT VALUES; +# SELECT a FROM (SELECT a FROM (SELECT a FROM (SELECT a FROM t1 NATURAL LEFT JOIN t1 WHERE (b, 2 ) IS ( SELECT 2 IN(2,2),2)) NATURAL LEFT FULL JOIN t1 WHERE ( rowid , 1 )<=(CASE 5 WHEN 619 THEN 841 ELSE 3374391096 END,0) ORDER BY a ASC) NATURAL LEFT JOIN t1 WHERE (b, 2 ) IS ( SELECT 3 IN(3,3),3)) NATURAL LEFT FULL JOIN t1 WHERE ( rowid , 1 )<=(CASE 5 WHEN 619 THEN 841 ELSE 3374391096 END,0) ORDER BY a ASC; +# +do_test join8-issue-1 {set rc "Issue-1 'row-value subroutine' unresolved"} {} + +# Pending issue #2: +# Jump to addrHalt inside the RIGHT JOIN body subroutine bypasses the +# OP_Return, resulting in a subroutine loop. Test case: +# +# CREATE TABLE t1(a int, b int, c int); +# INSERT INTO t1 VALUES(1,2,3),(4,5,6); +# CREATE TABLE t2(d int, e int); +# INSERT INTO t2 VALUES(3,333),(4,444); +# CREATE TABLE t3(f int, g int); +# PRAGMA automatic_index=off; +# .eqp trace +# SELECT * FROM t1 RIGHT JOIN t2 ON c=d JOIN t3 ON f=e; +# +do_test join8-issue-2 {set rc "Issue-2 'jump to addrHalt' unresolved"} {} + +# Pending issue #3: +# USING does not work with RIGHT JOIN. +# Test case: +# +# CREATE TABLE t4(id INTEGER PRIMARY KEY, x TEXT); +# CREATE TABLE t5(id INTEGER PRIMARY KEY, y TEXT); +# CREATE TABLE t6(id INTEGER PRIMARY KEY, z INT); +# +# INSERT INTO t4(id,x) VALUES(2,'alice'),(4,'bob'),(6,'cindy'),(8,'dave'); +# INSERT INTO t5(id,y) VALUES(1,'red'),(2,'orange'),(3,'yellow'),(4,'green'), +# (5,'blue'); +# INSERT INTO t6(id,z) VALUES(3,333),(4,444),(5,555),(0,1000),(9,999); +# +# .mode box +# SELECT *, t4.id, t5.id, t6.id +# FROM t4 NATURAL LEFT JOIN t5 NATURAL LEFT JOIN t6 +# ORDER BY coalesce(t4.id,t5.id,t6.id); +# +# SELECT *, t4.id, t5.id, t6.id +# FROM t4 NATURAL RIGHT JOIN t5 NATURAL RIGHT JOIN t6 +# ORDER BY coalesce(t4.id,t5.id,t6.id); +# +# SELECT *, t4.id, t5.id, t6.id +# FROM t4 NATURAL FULL JOIN t5 NATURAL FULL JOIN t6 +# ORDER BY coalesce(t4.id,t5.id,t6.id); +# +do_test join8-issue-3 {set rc "Issue-3 'USING' unresolved"} {} + finish_test |