# 2022-05-04 # revised 2022-05-31 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # # TESTRUNNER: slow # # This file implements tests for JOINs that use Bloom filters. # # The test case output is (mostly) all generated by PostgreSQL 14. This # test module was created as follows: # # 1. Run a TCL script (included at the bottom of this file) that # generates an input script for "psql" that will run man # diverse tests on joins. # # 2. Run the script from step (1) through psql and collect the # output. # # 3. Make a few minor global search-and-replace operations to convert # the psql output into a form suitable for this test module. # # 4. Add this header, and the script content at the footer. # # A few extra tests that were not generated from postgresql output are # added at the end. # set testdir [file dirname $argv0] source $testdir/tester.tcl db nullvalue - db eval { CREATE TABLE t1(a INT, b INT, c INT, d INT); WITH RECURSIVE c(x) AS (VALUES(0) UNION ALL SELECT x+1 FROM c WHERE x<95) INSERT INTO t1(a,b,c,d) SELECT x, x+100, x+200, x+300 FROM c; CREATE TABLE t2(b INT, x INT); INSERT INTO t2(b,x) SELECT b, a FROM t1 WHERE a%2=0; CREATE INDEX t2b ON t2(b); CREATE TABLE t3(c INT, y INT); INSERT INTO t3(c,y) SELECT c, a FROM t1 WHERE a%3=0; CREATE INDEX t3c ON t3(c); CREATE TABLE t4(d INT, z INT); INSERT INTO t4(d,z) SELECT d, a FROM t1 WHERE a%5=0; CREATE INDEX t4d ON t4(d); INSERT INTO t1(a,b,c,d) VALUES (96,NULL,296,396), (97,197,NULL,397), (98,198,298,NULL), (99,NULL,NULL,NULL); ANALYZE; } do_execsql_test joinD-1 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-2 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-3 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-4 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-5 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON true INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-6 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-7 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-8 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-9 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-10 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-11 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-12 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-13 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-14 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-15 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-16 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 INNER JOIN t3 ON t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-17 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-18 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-19 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-20 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-21 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-22 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-23 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-24 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON true INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-25 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-26 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-27 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-28 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-29 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-30 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-31 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-32 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-33 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-34 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-35 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 INNER JOIN t3 ON t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-36 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-37 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-38 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-39 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-40 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-41 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-42 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-43 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON true INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-44 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-45 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-46 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-47 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-48 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-49 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-50 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-51 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-52 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-53 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-54 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 INNER JOIN t3 ON t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-55 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-56 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-57 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-58 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-59 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-60 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-61 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-62 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON true INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-63 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-64 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-65 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-66 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-67 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-68 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-69 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-70 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-71 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-72 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-73 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 INNER JOIN t3 ON t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-74 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-75 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-76 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-77 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-78 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-79 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-80 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-81 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON true LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-82 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-83 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-84 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-85 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-86 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-87 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-88 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-89 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-90 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-91 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-92 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-93 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-94 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-95 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-96 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-97 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-98 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-99 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-100 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON true LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-101 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-102 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-103 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-104 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-105 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-106 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-107 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-108 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-109 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-110 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-111 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-112 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-113 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-114 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-115 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-116 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-117 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-118 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-119 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON true LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-120 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-121 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-122 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-123 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-124 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-125 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-126 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-127 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-128 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-129 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-130 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-131 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-132 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-133 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-134 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-135 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-136 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-137 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-138 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON true LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-139 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-140 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-141 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-142 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-143 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-144 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-145 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-146 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-147 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-148 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - - - 300 0 } do_execsql_test joinD-149 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-150 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-151 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-152 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-153 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-154 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-155 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-156 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-157 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON true RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-158 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-159 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-160 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-161 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-162 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-163 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-164 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-165 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-166 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-167 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-168 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-169 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-170 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-171 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-172 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-173 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-174 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-175 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-176 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON true RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-177 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-178 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-179 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-180 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-181 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-182 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-183 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-184 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-185 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-186 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - } do_execsql_test joinD-187 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-188 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-189 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-190 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-191 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-192 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-193 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-194 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-195 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON true RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-196 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-197 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-198 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-199 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-200 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-201 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-202 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-203 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-204 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-205 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-206 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-207 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-208 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-209 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-210 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-211 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-212 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-213 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-214 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON true RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-215 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-216 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-217 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-218 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-219 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-220 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-221 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-222 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-223 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-224 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-225 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-226 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-227 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-228 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-229 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-230 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-231 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-232 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-233 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON true FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-234 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-235 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-236 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-237 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-238 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-239 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-240 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-241 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-242 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-243 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-244 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 FULL JOIN t3 ON t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-245 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 INNER JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-246 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-247 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-248 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-249 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-250 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-251 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON true FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-252 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-253 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-254 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-255 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-256 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-257 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-258 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-259 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-260 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-261 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - } do_execsql_test joinD-262 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 FULL JOIN t3 ON t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-263 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 LEFT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-264 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-265 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-266 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-267 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-268 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-269 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON true FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-270 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-271 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-272 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-273 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-274 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-275 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-276 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-277 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-278 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-279 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-280 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 FULL JOIN t3 ON t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-281 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 RIGHT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-282 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-283 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-284 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-285 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-286 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-287 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON true FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-288 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-289 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-290 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-291 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-292 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-293 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-294 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-295 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-296 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-297 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - - - - - - - - - 300 0 } do_execsql_test joinD-298 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 FULL JOIN t3 ON t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-299 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 FULL JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-300 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-301 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-302 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-303 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-304 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-305 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON true INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-306 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-307 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-308 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-309 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-310 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-311 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-312 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-313 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-314 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-315 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-316 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-317 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-318 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-319 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-320 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-321 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-322 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-323 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-324 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON true INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-325 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-326 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-327 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-328 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-329 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-330 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-331 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-332 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-333 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-334 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-335 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-336 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-337 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-338 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-339 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-340 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-341 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-342 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-343 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON true INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-344 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-345 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-346 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-347 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-348 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-349 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-350 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-351 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-352 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-353 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-354 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-355 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-356 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-357 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-358 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-359 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-360 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-361 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-362 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON true INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-363 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-364 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-365 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-366 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-367 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-368 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-369 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-370 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-371 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-372 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-373 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-374 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-375 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-376 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-377 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-378 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-379 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-380 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-381 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON true LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-382 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-383 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-384 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-385 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-386 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-387 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-388 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-389 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-390 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-391 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-392 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-393 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-394 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-395 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-396 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - } do_execsql_test joinD-397 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - } do_execsql_test joinD-398 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-399 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - } do_execsql_test joinD-400 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON true LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-401 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-402 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - } do_execsql_test joinD-403 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-404 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - } do_execsql_test joinD-405 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-406 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-407 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-408 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-409 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - } do_execsql_test joinD-410 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-411 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-412 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-413 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - } do_execsql_test joinD-414 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - } do_execsql_test joinD-415 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-416 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-417 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-418 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-419 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON true LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-420 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-421 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-422 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-423 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-424 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-425 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-426 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-427 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-428 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-429 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-430 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-431 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-432 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-433 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-434 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - - - 300 0 } do_execsql_test joinD-435 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - - - 300 0 } do_execsql_test joinD-436 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-437 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - - - 300 0 } do_execsql_test joinD-438 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON true LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-439 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-440 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - - - 300 0 } do_execsql_test joinD-441 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-442 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - } do_execsql_test joinD-443 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-444 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-445 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-446 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-447 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - - - 300 0 } do_execsql_test joinD-448 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - - - 300 0 } do_execsql_test joinD-449 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-450 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-451 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - - - 300 0 } do_execsql_test joinD-452 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - - - 300 0 } do_execsql_test joinD-453 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-454 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-455 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-456 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-457 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON true RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-458 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-459 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-460 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-461 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-462 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-463 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-464 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-465 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-466 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-467 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-468 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-469 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-470 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-471 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-472 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - } do_execsql_test joinD-473 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - } do_execsql_test joinD-474 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-475 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - } do_execsql_test joinD-476 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON true RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-477 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-478 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-479 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-480 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - } do_execsql_test joinD-481 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-482 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-483 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-484 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-485 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - } do_execsql_test joinD-486 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - } do_execsql_test joinD-487 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-488 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-489 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - } do_execsql_test joinD-490 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - } do_execsql_test joinD-491 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-492 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-493 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-494 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-495 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON true RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-496 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-497 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-498 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-499 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-500 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-501 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-502 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-503 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-504 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-505 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-506 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-507 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-508 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-509 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-510 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-511 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-512 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-513 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-514 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON true RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-515 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-516 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-517 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-518 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-519 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-520 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-521 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-522 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-523 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-524 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-525 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-526 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-527 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-528 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-529 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-530 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-531 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-532 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-533 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON true FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-534 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-535 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-536 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-537 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-538 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-539 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-540 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-541 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-542 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-543 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-544 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-545 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 INNER JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-546 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-547 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - 200 0 - - } do_execsql_test joinD-548 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - 200 0 - - } do_execsql_test joinD-549 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-550 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - 200 0 - - } do_execsql_test joinD-551 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON true FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-552 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-553 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - } do_execsql_test joinD-554 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-555 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - 200 0 - - } do_execsql_test joinD-556 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-557 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-558 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-559 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-560 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - 200 0 - - } do_execsql_test joinD-561 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - } do_execsql_test joinD-562 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-563 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 LEFT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-564 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - 200 0 - - } do_execsql_test joinD-565 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-566 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-567 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-568 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-569 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON true FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-570 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-571 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-572 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-573 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-574 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-575 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-576 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-577 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-578 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-579 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-580 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-581 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 RIGHT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-582 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-583 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - 200 0 - - - - - - - - - - 300 0 } do_execsql_test joinD-584 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - 200 0 - - - - - - - - - - 300 0 } do_execsql_test joinD-585 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-586 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - 200 0 - - - - - - - - - - 300 0 } do_execsql_test joinD-587 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON true FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-588 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-589 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - - - 300 0 } do_execsql_test joinD-590 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-591 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - 200 0 - - } do_execsql_test joinD-592 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-593 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-594 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-595 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-596 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - 200 0 - - - - - - - - - - 300 0 } do_execsql_test joinD-597 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - - - - - - - - - 300 0 } do_execsql_test joinD-598 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-599 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 FULL JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-600 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - 200 0 - - - - - - - - - - 300 0 } do_execsql_test joinD-601 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-602 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-603 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-604 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-605 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON true INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-606 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-607 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-608 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-609 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-610 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-611 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-612 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-613 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-614 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-615 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-616 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-617 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-618 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-619 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-620 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-621 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-622 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-623 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-624 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON true INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-625 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-626 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-627 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-628 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-629 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-630 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-631 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-632 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-633 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-634 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-635 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-636 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-637 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-638 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-639 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-640 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-641 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-642 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-643 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON true INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-644 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-645 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-646 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-647 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-648 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-649 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-650 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-651 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-652 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-653 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-654 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-655 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-656 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-657 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-658 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-659 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-660 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-661 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-662 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON true INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-663 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-664 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-665 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-666 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-667 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-668 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-669 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-670 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-671 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-672 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-673 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-674 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-675 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-676 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-677 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-678 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-679 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-680 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-681 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON true LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-682 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-683 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-684 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-685 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-686 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-687 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-688 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-689 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-690 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-691 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-692 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-693 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-694 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-695 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-696 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - } do_execsql_test joinD-697 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - } do_execsql_test joinD-698 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-699 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-700 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON true LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-701 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-702 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - } do_execsql_test joinD-703 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-704 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - } do_execsql_test joinD-705 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-706 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-707 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-708 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-709 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - } do_execsql_test joinD-710 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-711 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-712 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-713 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - } do_execsql_test joinD-714 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - } do_execsql_test joinD-715 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-716 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-717 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-718 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-719 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON true LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-720 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-721 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-722 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-723 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-724 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-725 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-726 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-727 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-728 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-729 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-730 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-731 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-732 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-733 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-734 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-735 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-736 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-737 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-738 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON true LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-739 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-740 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-741 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-742 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-743 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-744 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-745 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-746 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-747 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-748 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - - - 300 0 } do_execsql_test joinD-749 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-750 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-751 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-752 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-753 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-754 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-755 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-756 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-757 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON true RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-758 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-759 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-760 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-761 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-762 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-763 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-764 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-765 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-766 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-767 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-768 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-769 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-770 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-771 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-772 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-773 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-774 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-775 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-776 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON true RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-777 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-778 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-779 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-780 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-781 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-782 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-783 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-784 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-785 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-786 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - } do_execsql_test joinD-787 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-788 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-789 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-790 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-791 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-792 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-793 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-794 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-795 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON true RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-796 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-797 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-798 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-799 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-800 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-801 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-802 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-803 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-804 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-805 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-806 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-807 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-808 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-809 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-810 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-811 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-812 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-813 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-814 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON true RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-815 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-816 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-817 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-818 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-819 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-820 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-821 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-822 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-823 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-824 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-825 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-826 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-827 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-828 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 315 15 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 345 45 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 375 75 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-829 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-830 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-831 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-832 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-833 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON true FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-834 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-835 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-836 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-837 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-838 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-839 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-840 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-841 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-842 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-843 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-844 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-845 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 INNER JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-846 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-847 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-848 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-849 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-850 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-851 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON true FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-852 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-853 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-854 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-855 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-856 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-857 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-858 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-859 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-860 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-861 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - } do_execsql_test joinD-862 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-863 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 LEFT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-864 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-865 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-866 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-867 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-868 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-869 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON true FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-870 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-871 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-872 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-873 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-874 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-875 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-876 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-877 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-878 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-879 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 } do_execsql_test joinD-880 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-881 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 RIGHT JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-882 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-883 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-884 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-885 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-886 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-887 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON true FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-888 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - } do_execsql_test joinD-889 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-890 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-891 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-892 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-893 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-894 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-895 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-896 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-897 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - - - 200 0 - - - - - - - - - - 300 0 } do_execsql_test joinD-898 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-899 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 FULL JOIN t4 ON t4.z>0 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-900 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - - - - - 100 0 - - - - - - - - - - 200 0 - - - - - - - - 203 3 - - - - - - - - 209 9 - - - - - - - - 215 15 - - - - - - - - 221 21 - - - - - - - - 227 27 - - - - - - - - 233 33 - - - - - - - - 239 39 - - - - - - - - 245 45 - - - - - - - - 251 51 - - - - - - - - 257 57 - - - - - - - - 263 63 - - - - - - - - 269 69 - - - - - - - - 275 75 - - - - - - - - 281 81 - - - - - - - - 287 87 - - - - - - - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 315 15 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 345 45 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 375 75 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-901 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-902 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-903 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-904 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON true INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-905 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-906 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-907 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-908 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-909 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-910 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-911 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-912 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-913 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-914 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-915 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 INNER JOIN t3 ON t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-916 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t4.z>0 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-917 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-918 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-919 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-920 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-921 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON true INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-922 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-923 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-924 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-925 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-926 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-927 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-928 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-929 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-930 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-931 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-932 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 INNER JOIN t3 ON t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-933 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t4.z>0 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-934 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-935 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-936 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-937 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-938 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON true INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-939 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-940 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-941 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-942 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-943 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-944 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-945 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-946 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-947 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-948 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-949 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 INNER JOIN t3 ON t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-950 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t4.z>0 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-951 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-952 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-953 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-954 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-955 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON true INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-956 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-957 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-958 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-959 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-960 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-961 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-962 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-963 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b INNER JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-964 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-965 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b = t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-966 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 INNER JOIN t3 ON t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-967 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t4.z>0 WHERE t1.b = t2.b AND t1.d = t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-968 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-969 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-970 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-971 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-972 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON true LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-973 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-974 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-975 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-976 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-977 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-978 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-979 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-980 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-981 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-982 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-983 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-984 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t4.z>0 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-985 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-986 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - 100 0 - - - - } do_execsql_test joinD-987 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-988 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - } do_execsql_test joinD-989 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON true LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-990 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-991 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - 100 0 - - - - } do_execsql_test joinD-992 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-993 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - 100 0 - - - - } do_execsql_test joinD-994 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-995 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-996 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-997 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-998 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - 100 0 - - - - } do_execsql_test joinD-999 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-1000 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1001 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t4.z>0 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1002 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - 100 0 - - - - } do_execsql_test joinD-1003 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-1004 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1005 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-1006 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON true LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1007 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1008 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-1009 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-1010 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-1011 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1012 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1013 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1014 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1015 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-1016 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1017 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1018 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t4.z>0 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1019 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-1020 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - 100 0 - - - - - - - - - - - - 300 0 } do_execsql_test joinD-1021 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-1022 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - - - 300 0 } do_execsql_test joinD-1023 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON true LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-1024 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-1025 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - 100 0 - - - - - - - - - - - - 300 0 } do_execsql_test joinD-1026 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-1027 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - 100 0 - - - - } do_execsql_test joinD-1028 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1029 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1030 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1031 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b LEFT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1032 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - 100 0 - - - - - - - - - - - - 300 0 } do_execsql_test joinD-1033 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b = t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-1034 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1035 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t4.z>0 WHERE t1.b = t2.b AND t1.d = t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1036 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - 100 0 - - - - - - - - - - - - 300 0 } do_execsql_test joinD-1037 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1038 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1039 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1040 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON true RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1041 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1042 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1043 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1044 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1045 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1046 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1047 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1048 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1049 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1050 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1051 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1052 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 INNER JOIN t4 ON t4.z>0 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1053 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1054 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - } do_execsql_test joinD-1055 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1056 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - } do_execsql_test joinD-1057 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON true RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1058 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-1059 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-1060 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1061 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - } do_execsql_test joinD-1062 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1063 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1064 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1065 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1066 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - } do_execsql_test joinD-1067 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1068 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1069 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 LEFT JOIN t4 ON t4.z>0 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1070 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - } do_execsql_test joinD-1071 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-1072 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1073 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-1074 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON true RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1075 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1076 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-1077 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-1078 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-1079 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1080 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1081 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1082 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1083 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-1084 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1085 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1086 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 RIGHT JOIN t4 ON t4.z>0 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1087 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-1088 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-1089 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1090 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-1091 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON true RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1092 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-1093 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-1094 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-1095 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-1096 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1097 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1098 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1099 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b RIGHT JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1100 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-1101 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b = t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1102 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1103 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 FULL JOIN t4 ON t4.z>0 WHERE t1.b = t2.b AND t1.d = t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1104 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - - - - - - - 200 0 - - - - - - - - - - 300 0 - - - - - - - - 305 5 - - - - - - - - 310 10 - - - - - - - - 320 20 - - - - - - - - 325 25 - - - - - - - - 335 35 - - - - - - - - 340 40 - - - - - - - - 350 50 - - - - - - - - 355 55 - - - - - - - - 365 65 - - - - - - - - 370 70 - - - - - - - - 380 80 - - - - - - - - 385 85 - - - - - - - - 395 95 } do_execsql_test joinD-1105 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-1106 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1107 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-1108 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON true FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1109 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1110 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-1111 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-1112 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-1113 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1114 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1115 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1116 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c INNER JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1117 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-1118 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1119 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 FULL JOIN t3 ON t3.y>0 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b AND t1.c = t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1120 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 INNER JOIN t4 ON t4.z>0 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1121 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - 100 0 - - - - - - - - - - 200 0 - - } do_execsql_test joinD-1122 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-1123 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - 200 0 - - } do_execsql_test joinD-1124 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON true FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-1125 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-1126 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - 100 0 - - - - } do_execsql_test joinD-1127 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-1128 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - 100 0 - - - - - - - - - - 200 0 - - } do_execsql_test joinD-1129 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1130 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1131 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1132 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c LEFT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1133 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - 100 0 - - - - - - - - - - 200 0 - - } do_execsql_test joinD-1134 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-1135 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 FULL JOIN t3 ON t3.y>0 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b AND t1.c = t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1136 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 LEFT JOIN t4 ON t4.z>0 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1137 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-1138 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1139 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-1140 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON true FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1141 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1142 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-1143 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-1144 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-1145 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1146 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1147 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1148 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c RIGHT JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1149 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 - - - - - - - - 300 0 } do_execsql_test joinD-1150 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1151 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 FULL JOIN t3 ON t3.y>0 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 WHERE t1.b = t2.b AND t1.c = t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1152 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 RIGHT JOIN t4 ON t4.z>0 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1153 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - 100 0 - - - - - - - - - - 200 0 - - - - - - - - - - 300 0 } do_execsql_test joinD-1154 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-1155 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE (t2.x>0 OR t2.x IS NULL) ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - - - 200 0 - - - - - - - - - - 300 0 } do_execsql_test joinD-1156 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON true FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t1.b=t2.b AND t2.x>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-1157 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 3 103 203 303 - - 203 3 - - 6 106 206 306 106 6 206 6 - - 9 109 209 309 - - 209 9 - - 12 112 212 312 112 12 212 12 - - 15 115 215 315 - - 215 15 315 15 18 118 218 318 118 18 218 18 - - 21 121 221 321 - - 221 21 - - 24 124 224 324 124 24 224 24 - - 27 127 227 327 - - 227 27 - - 30 130 230 330 130 30 230 30 330 30 33 133 233 333 - - 233 33 - - 36 136 236 336 136 36 236 36 - - 39 139 239 339 - - 239 39 - - 42 142 242 342 142 42 242 42 - - 45 145 245 345 - - 245 45 345 45 48 148 248 348 148 48 248 48 - - 51 151 251 351 - - 251 51 - - 54 154 254 354 154 54 254 54 - - 57 157 257 357 - - 257 57 - - 60 160 260 360 160 60 260 60 360 60 63 163 263 363 - - 263 63 - - 66 166 266 366 166 66 266 66 - - 69 169 269 369 - - 269 69 - - 72 172 272 372 172 72 272 72 - - 75 175 275 375 - - 275 75 375 75 78 178 278 378 178 78 278 78 - - 81 181 281 381 - - 281 81 - - 84 184 284 384 184 84 284 84 - - 87 187 287 387 - - 287 87 - - 90 190 290 390 190 90 290 90 390 90 93 193 293 393 - - 293 93 - - } do_execsql_test joinD-1158 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t3.y>0 OR t3.y IS NULL ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - 100 0 - - - - - - - - - - - - 300 0 } do_execsql_test joinD-1159 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 5 105 205 305 - - - - 305 5 10 110 210 310 110 10 - - 310 10 15 115 215 315 - - 215 15 315 15 20 120 220 320 120 20 - - 320 20 25 125 225 325 - - - - 325 25 30 130 230 330 130 30 230 30 330 30 35 135 235 335 - - - - 335 35 40 140 240 340 140 40 - - 340 40 45 145 245 345 - - 245 45 345 45 50 150 250 350 150 50 - - 350 50 55 155 255 355 - - - - 355 55 60 160 260 360 160 60 260 60 360 60 65 165 265 365 - - - - 365 65 70 170 270 370 170 70 - - 370 70 75 175 275 375 - - 275 75 375 75 80 180 280 380 180 80 - - 380 80 85 185 285 385 - - - - 385 85 90 190 290 390 190 90 290 90 390 90 95 195 295 395 - - - - 395 95 } do_execsql_test joinD-1160 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t4.z IS NULL OR t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - 100 0 - - - - - - - - - - 200 0 - - } do_execsql_test joinD-1161 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1162 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t4.z>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 15 115 215 315 - - 215 15 315 15 30 130 230 330 130 30 230 30 330 30 45 145 245 345 - - 245 45 345 45 60 160 260 360 160 60 260 60 360 60 75 175 275 375 - - 275 75 375 75 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1163 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 WHERE t2.x>0 AND t3.y>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1164 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b=t2.b FULL JOIN t3 ON t1.c=t3.c FULL JOIN t4 ON t1.d=t4.d WHERE t2.x>0 AND t3.y>0 AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 30 130 230 330 130 30 230 30 330 30 60 160 260 360 160 60 260 60 360 60 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1165 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 0 100 200 300 - - - - - - 1 101 201 301 - - - - - - 2 102 202 302 102 2 - - - - 3 103 203 303 - - 203 3 - - 4 104 204 304 104 4 - - - - 5 105 205 305 - - - - 305 5 6 106 206 306 106 6 206 6 - - 7 107 207 307 - - - - - - 8 108 208 308 108 8 - - - - 9 109 209 309 - - 209 9 - - 10 110 210 310 110 10 - - 310 10 11 111 211 311 - - - - - - 12 112 212 312 112 12 212 12 - - 13 113 213 313 - - - - - - 14 114 214 314 114 14 - - - - 15 115 215 315 - - 215 15 315 15 16 116 216 316 116 16 - - - - 17 117 217 317 - - - - - - 18 118 218 318 118 18 218 18 - - 19 119 219 319 - - - - - - 20 120 220 320 120 20 - - 320 20 21 121 221 321 - - 221 21 - - 22 122 222 322 122 22 - - - - 23 123 223 323 - - - - - - 24 124 224 324 124 24 224 24 - - 25 125 225 325 - - - - 325 25 26 126 226 326 126 26 - - - - 27 127 227 327 - - 227 27 - - 28 128 228 328 128 28 - - - - 29 129 229 329 - - - - - - 30 130 230 330 130 30 230 30 330 30 31 131 231 331 - - - - - - 32 132 232 332 132 32 - - - - 33 133 233 333 - - 233 33 - - 34 134 234 334 134 34 - - - - 35 135 235 335 - - - - 335 35 36 136 236 336 136 36 236 36 - - 37 137 237 337 - - - - - - 38 138 238 338 138 38 - - - - 39 139 239 339 - - 239 39 - - 40 140 240 340 140 40 - - 340 40 41 141 241 341 - - - - - - 42 142 242 342 142 42 242 42 - - 43 143 243 343 - - - - - - 44 144 244 344 144 44 - - - - 45 145 245 345 - - 245 45 345 45 46 146 246 346 146 46 - - - - 47 147 247 347 - - - - - - 48 148 248 348 148 48 248 48 - - 49 149 249 349 - - - - - - 50 150 250 350 150 50 - - 350 50 51 151 251 351 - - 251 51 - - 52 152 252 352 152 52 - - - - 53 153 253 353 - - - - - - 54 154 254 354 154 54 254 54 - - 55 155 255 355 - - - - 355 55 56 156 256 356 156 56 - - - - 57 157 257 357 - - 257 57 - - 58 158 258 358 158 58 - - - - 59 159 259 359 - - - - - - 60 160 260 360 160 60 260 60 360 60 61 161 261 361 - - - - - - 62 162 262 362 162 62 - - - - 63 163 263 363 - - 263 63 - - 64 164 264 364 164 64 - - - - 65 165 265 365 - - - - 365 65 66 166 266 366 166 66 266 66 - - 67 167 267 367 - - - - - - 68 168 268 368 168 68 - - - - 69 169 269 369 - - 269 69 - - 70 170 270 370 170 70 - - 370 70 71 171 271 371 - - - - - - 72 172 272 372 172 72 272 72 - - 73 173 273 373 - - - - - - 74 174 274 374 174 74 - - - - 75 175 275 375 - - 275 75 375 75 76 176 276 376 176 76 - - - - 77 177 277 377 - - - - - - 78 178 278 378 178 78 278 78 - - 79 179 279 379 - - - - - - 80 180 280 380 180 80 - - 380 80 81 181 281 381 - - 281 81 - - 82 182 282 382 182 82 - - - - 83 183 283 383 - - - - - - 84 184 284 384 184 84 284 84 - - 85 185 285 385 - - - - 385 85 86 186 286 386 186 86 - - - - 87 187 287 387 - - 287 87 - - 88 188 288 388 188 88 - - - - 89 189 289 389 - - - - - - 90 190 290 390 190 90 290 90 390 90 91 191 291 391 - - - - - - 92 192 292 392 192 92 - - - - 93 193 293 393 - - 293 93 - - 94 194 294 394 194 94 - - - - 95 195 295 395 - - - - 395 95 96 - 296 396 - - - - - - 97 197 - 397 - - - - - - 98 198 298 - - - - - - - 99 - - - - - - - - - - - - - 100 0 - - - - - - - - - - 200 0 - - - - - - - - - - 300 0 } do_execsql_test joinD-1166 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b = t2.b ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 2 102 202 302 102 2 - - - - 4 104 204 304 104 4 - - - - 6 106 206 306 106 6 206 6 - - 8 108 208 308 108 8 - - - - 10 110 210 310 110 10 - - 310 10 12 112 212 312 112 12 212 12 - - 14 114 214 314 114 14 - - - - 16 116 216 316 116 16 - - - - 18 118 218 318 118 18 218 18 - - 20 120 220 320 120 20 - - 320 20 22 122 222 322 122 22 - - - - 24 124 224 324 124 24 224 24 - - 26 126 226 326 126 26 - - - - 28 128 228 328 128 28 - - - - 30 130 230 330 130 30 230 30 330 30 32 132 232 332 132 32 - - - - 34 134 234 334 134 34 - - - - 36 136 236 336 136 36 236 36 - - 38 138 238 338 138 38 - - - - 40 140 240 340 140 40 - - 340 40 42 142 242 342 142 42 242 42 - - 44 144 244 344 144 44 - - - - 46 146 246 346 146 46 - - - - 48 148 248 348 148 48 248 48 - - 50 150 250 350 150 50 - - 350 50 52 152 252 352 152 52 - - - - 54 154 254 354 154 54 254 54 - - 56 156 256 356 156 56 - - - - 58 158 258 358 158 58 - - - - 60 160 260 360 160 60 260 60 360 60 62 162 262 362 162 62 - - - - 64 164 264 364 164 64 - - - - 66 166 266 366 166 66 266 66 - - 68 168 268 368 168 68 - - - - 70 170 270 370 170 70 - - 370 70 72 172 272 372 172 72 272 72 - - 74 174 274 374 174 74 - - - - 76 176 276 376 176 76 - - - - 78 178 278 378 178 78 278 78 - - 80 180 280 380 180 80 - - 380 80 82 182 282 382 182 82 - - - - 84 184 284 384 184 84 284 84 - - 86 186 286 386 186 86 - - - - 88 188 288 388 188 88 - - - - 90 190 290 390 190 90 290 90 390 90 92 192 292 392 192 92 - - - - 94 194 294 394 194 94 - - - - } do_execsql_test joinD-1167 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 FULL JOIN t3 ON t3.y>0 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 WHERE t1.b = t2.b AND t1.c = t3.c ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 6 106 206 306 106 6 206 6 - - 12 112 212 312 112 12 212 12 - - 18 118 218 318 118 18 218 18 - - 24 124 224 324 124 24 224 24 - - 30 130 230 330 130 30 230 30 330 30 36 136 236 336 136 36 236 36 - - 42 142 242 342 142 42 242 42 - - 48 148 248 348 148 48 248 48 - - 54 154 254 354 154 54 254 54 - - 60 160 260 360 160 60 260 60 360 60 66 166 266 366 166 66 266 66 - - 72 172 272 372 172 72 272 72 - - 78 178 278 378 178 78 278 78 - - 84 184 284 384 184 84 284 84 - - 90 190 290 390 190 90 290 90 390 90 } do_execsql_test joinD-1168 { SELECT t1.*, t2.*, t3.*, t4.* FROM t1 FULL JOIN t2 ON t2.x>0 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 FULL JOIN t4 ON t4.z>0 WHERE t1.b = t2.b AND t1.d = t4.d ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); } { 10 110 210 310 110 10 - - 310 10 20 120 220 320 120 20 - - 320 20 30 130 230 330 130 30 230 30 330 30 40 140 240 340 140 40 - - 340 40 50 150 250 350 150 50 - - 350 50 60 160 260 360 160 60 260 60 360 60 70 170 270 370 170 70 - - 370 70 80 180 280 380 180 80 - - 380 80 90 190 290 390 190 90 290 90 390 90 } ############################################################################# # The following are extra tests added manually do_execsql_test joinD-extra-1000 { CREATE VIEW v1 AS SELECT * FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0; CREATE TRIGGER v1r1 INSTEAD OF UPDATE OF c ON v1 BEGIN UPDATE t1 SET c=new.c WHERE (a,b,c,d) IS (old.a,old.b,old.c,old.d); UPDATE t3 SET c=new.c WHERE (c,y) IS (old.c,old.y); END; SELECT * FROM v1 WHERE y BETWEEN 30 AND 40 ORDER BY y; } { 30 130 230 330 130 30 230 30 330 30 - - - - - - 233 33 - - 36 136 236 336 136 36 236 36 - - - - - - - - 239 39 - - } do_execsql_test joinD-extra-1010 { BEGIN; UPDATE v1 SET c=c+1000 WHERE y BETWEEN 30 and 40; SELECT * FROM v1 WHERE y BETWEEN 30 AND 40 ORDER BY y; ROLLBACK; } { 30 130 1230 330 130 30 1230 30 330 30 - - - - - - 233 33 - - 36 136 1236 336 136 36 1236 36 - - - - - - - - 239 39 - - } finish_test ############################################################################# # This is the TCL script used to generate the psql script that generated # the data above. # # puts " # \\pset border off # \\pset tuples_only on # \\pset null - # # DROP TABLE IF EXISTS t1; # DROP TABLE IF EXISTS t2; # DROP TABLE IF EXISTS t3; # DROP TABLE IF EXISTS t4; # CREATE TABLE t1(a INT, b INT, c INT, d INT); # WITH RECURSIVE c(x) AS (VALUES(0) UNION ALL SELECT x+1 FROM c WHERE x<95) # INSERT INTO t1(a,b,c,d) SELECT x, x+100, x+200, x+300 FROM c; # CREATE TABLE t2(b INT, x INT); # INSERT INTO t2(b,x) SELECT b, a FROM t1 WHERE a%2=0; # CREATE INDEX t2b ON t2(b); # CREATE TABLE t3(c INT, y INT); # INSERT INTO t3(c,y) SELECT c, a FROM t1 WHERE a%3=0; # CREATE INDEX t3c ON t3(c); # CREATE TABLE t4(d INT, z INT); # INSERT INTO t4(d,z) SELECT d, a FROM t1 WHERE a%5=0; # CREATE INDEX t4d ON t4(d); # INSERT INTO t1(a,b,c,d) VALUES # (96,NULL,296,396), # (97,197,NULL,397), # (98,198,298,NULL), # (99,NULL,NULL,NULL); # " # # proc echo {prefix txt} { # regsub -all {\n} $txt \n$prefix txt # puts "$prefix$txt" # } # # set n 0 # foreach j1 {INNER LEFT RIGHT FULL} { # foreach j2 {INNER LEFT RIGHT FULL} { # foreach j3 {INNER LEFT RIGHT FULL} { # # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" # append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" # append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # # if {$j1!="FULL"} { # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0\n" # append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" # append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # } # # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n" # append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" # append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" # append q1 " WHERE t2.x>0\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n" # append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" # append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" # append q1 " WHERE (t2.x>0 OR t2.x IS NULL)\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON true\n" # append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" # append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" # append q1 " WHERE t1.b=t2.b AND t2.x>0\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" # append q1 " $j2 JOIN t3 ON t1.c=t3.c\n" # append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" # append q1 " WHERE t3.y>0\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" # append q1 " $j2 JOIN t3 ON t1.c=t3.c\n" # append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" # append q1 " WHERE t3.y>0 OR t3.y IS NULL\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" # append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" # append q1 " $j3 JOIN t4 ON t1.d=t4.d\n" # append q1 " WHERE t4.z>0\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" # append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" # append q1 " $j3 JOIN t4 ON t1.d=t4.d\n" # append q1 " WHERE t4.z IS NULL OR t4.z>0\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n" # append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" # append q1 " $j3 JOIN t4 ON t1.d=t4.d\n" # append q1 " WHERE t2.x>0 AND t4.z>0\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" # append q1 " $j2 JOIN t3 ON t1.c=t3.c\n" # append q1 " $j3 JOIN t4 ON t1.d=t4.d\n" # append q1 " WHERE t4.z>0 AND t3.y>0\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n" # append q1 " $j2 JOIN t3 ON t1.c=t3.c\n" # append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" # append q1 " WHERE t2.x>0 AND t3.y>0\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n" # append q1 " $j2 JOIN t3 ON t1.c=t3.c\n" # append q1 " $j3 JOIN t4 ON t1.d=t4.d\n" # append q1 " WHERE t2.x>0 AND t3.y>0 AND t4.z>0\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # # set op1 [expr {$j1=="FULL"?"=":"IS NOT DISTINCT FROM"}] # set op2 [expr {$j2=="FULL"?"=":"IS NOT DISTINCT FROM"}] # set op3 [expr {$j3=="FULL"?"=":"IS NOT DISTINCT FROM"}] # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON t1.b $op1 t2.b AND t2.x>0\n" # append q1 " $j2 JOIN t3 ON t1.c $op2 t3.c AND t3.y>0\n" # append q1 " $j3 JOIN t4 ON t1.d $op3 t4.d AND t4.z>0\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON t2.x>0\n" # append q1 " $j2 JOIN t3 ON t1.c $op2 t3.c AND t3.y>0\n" # append q1 " $j3 JOIN t4 ON t1.d $op3 t4.d AND t4.z>0\n" # append q1 " WHERE t1.b $op1 t2.b\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON t2.x>0\n" # append q1 " $j2 JOIN t3 ON t3.y>0\n" # append q1 " $j3 JOIN t4 ON t1.d $op3 t4.d AND t4.z>0\n" # append q1 " WHERE t1.b $op1 t2.b AND t1.c $op2 t3.c\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON t2.x>0\n" # append q1 " $j2 JOIN t3 ON t1.c $op2 t3.c AND t3.y>0\n" # append q1 " $j3 JOIN t4 ON t4.z>0\n" # append q1 " WHERE t1.b $op1 t2.b AND t1.d $op3 t4.d\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # # if {$j1!="FULL"} { # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0\n" # append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" # append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # } # # if {$j2!="FULL"} { # incr n # set q1 "" # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" # append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" # append q1 " $j2 JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0\n" # append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" # # echo "\\qecho " "do_execsql_test joinB-$n \{" # echo "\\qecho X " $q1 # echo "\\qecho " "\} \{" # puts $q1 # echo "\\qecho " "\}" # } # } # } # } #