1# 2022-05-04 2# revised 2022-05-31 3# 4# The author disclaims copyright to this source code. In place of 5# a legal notice, here is a blessing: 6# 7# May you do good and not evil. 8# May you find forgiveness for yourself and forgive others. 9# May you share freely, never taking more than you give. 10# 11#*********************************************************************** 12# 13# TESTRUNNER: slow 14# 15# This file implements tests for JOINs that use Bloom filters. 16# 17# The test case output is (mostly) all generated by PostgreSQL 14. This 18# test module was created as follows: 19# 20# 1. Run a TCL script (included at the bottom of this file) that 21# generates an input script for "psql" that will run man 22# diverse tests on joins. 23# 24# 2. Run the script from step (1) through psql and collect the 25# output. 26# 27# 3. Make a few minor global search-and-replace operations to convert 28# the psql output into a form suitable for this test module. 29# 30# 4. Add this header, and the script content at the footer. 31# 32# A few extra tests that were not generated from postgresql output are 33# added at the end. 34# 35set testdir [file dirname $argv0] 36source $testdir/tester.tcl 37db nullvalue - 38db eval { 39 CREATE TABLE t1(a INT, b INT, c INT, d INT); 40 WITH RECURSIVE c(x) AS (VALUES(0) UNION ALL SELECT x+1 FROM c WHERE x<95) 41 INSERT INTO t1(a,b,c,d) SELECT x, x+100, x+200, x+300 FROM c; 42 CREATE TABLE t2(b INT, x INT); 43 INSERT INTO t2(b,x) SELECT b, a FROM t1 WHERE a%2=0; 44 CREATE INDEX t2b ON t2(b); 45 CREATE TABLE t3(c INT, y INT); 46 INSERT INTO t3(c,y) SELECT c, a FROM t1 WHERE a%3=0; 47 CREATE INDEX t3c ON t3(c); 48 CREATE TABLE t4(d INT, z INT); 49 INSERT INTO t4(d,z) SELECT d, a FROM t1 WHERE a%5=0; 50 CREATE INDEX t4d ON t4(d); 51 INSERT INTO t1(a,b,c,d) VALUES 52 (96,NULL,296,396), 53 (97,197,NULL,397), 54 (98,198,298,NULL), 55 (99,NULL,NULL,NULL); 56 ANALYZE; 57} 58do_execsql_test joinD-1 { 59 SELECT t1.*, t2.*, t3.*, t4.* 60 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 61 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 62 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 63 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 64} { 65 30 130 230 330 130 30 230 30 330 30 66 60 160 260 360 160 60 260 60 360 60 67 90 190 290 390 190 90 290 90 390 90 68} 69do_execsql_test joinD-2 { 70 SELECT t1.*, t2.*, t3.*, t4.* 71 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 72 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 73 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 74 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 75} { 76 30 130 230 330 130 30 230 30 330 30 77 60 160 260 360 160 60 260 60 360 60 78 90 190 290 390 190 90 290 90 390 90 79} 80do_execsql_test joinD-3 { 81 SELECT t1.*, t2.*, t3.*, t4.* 82 FROM t1 INNER JOIN t2 ON t1.b=t2.b 83 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 84 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 85 WHERE t2.x>0 86 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 87} { 88 30 130 230 330 130 30 230 30 330 30 89 60 160 260 360 160 60 260 60 360 60 90 90 190 290 390 190 90 290 90 390 90 91} 92do_execsql_test joinD-4 { 93 SELECT t1.*, t2.*, t3.*, t4.* 94 FROM t1 INNER JOIN t2 ON t1.b=t2.b 95 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 96 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 97 WHERE (t2.x>0 OR t2.x IS NULL) 98 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 99} { 100 30 130 230 330 130 30 230 30 330 30 101 60 160 260 360 160 60 260 60 360 60 102 90 190 290 390 190 90 290 90 390 90 103} 104do_execsql_test joinD-5 { 105 SELECT t1.*, t2.*, t3.*, t4.* 106 FROM t1 INNER JOIN t2 ON true 107 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 108 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 109 WHERE t1.b=t2.b AND t2.x>0 110 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 111} { 112 30 130 230 330 130 30 230 30 330 30 113 60 160 260 360 160 60 260 60 360 60 114 90 190 290 390 190 90 290 90 390 90 115} 116do_execsql_test joinD-6 { 117 SELECT t1.*, t2.*, t3.*, t4.* 118 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 119 INNER JOIN t3 ON t1.c=t3.c 120 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 121 WHERE t3.y>0 122 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 123} { 124 30 130 230 330 130 30 230 30 330 30 125 60 160 260 360 160 60 260 60 360 60 126 90 190 290 390 190 90 290 90 390 90 127} 128do_execsql_test joinD-7 { 129 SELECT t1.*, t2.*, t3.*, t4.* 130 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 131 INNER JOIN t3 ON t1.c=t3.c 132 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 133 WHERE t3.y>0 OR t3.y IS NULL 134 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 135} { 136 30 130 230 330 130 30 230 30 330 30 137 60 160 260 360 160 60 260 60 360 60 138 90 190 290 390 190 90 290 90 390 90 139} 140do_execsql_test joinD-8 { 141 SELECT t1.*, t2.*, t3.*, t4.* 142 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 143 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 144 INNER JOIN t4 ON t1.d=t4.d 145 WHERE t4.z>0 146 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 147} { 148 30 130 230 330 130 30 230 30 330 30 149 60 160 260 360 160 60 260 60 360 60 150 90 190 290 390 190 90 290 90 390 90 151} 152do_execsql_test joinD-9 { 153 SELECT t1.*, t2.*, t3.*, t4.* 154 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 155 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 156 INNER JOIN t4 ON t1.d=t4.d 157 WHERE t4.z IS NULL OR t4.z>0 158 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 159} { 160 30 130 230 330 130 30 230 30 330 30 161 60 160 260 360 160 60 260 60 360 60 162 90 190 290 390 190 90 290 90 390 90 163} 164do_execsql_test joinD-10 { 165 SELECT t1.*, t2.*, t3.*, t4.* 166 FROM t1 INNER JOIN t2 ON t1.b=t2.b 167 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 168 INNER JOIN t4 ON t1.d=t4.d 169 WHERE t2.x>0 AND t4.z>0 170 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 171} { 172 30 130 230 330 130 30 230 30 330 30 173 60 160 260 360 160 60 260 60 360 60 174 90 190 290 390 190 90 290 90 390 90 175} 176do_execsql_test joinD-11 { 177 SELECT t1.*, t2.*, t3.*, t4.* 178 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 179 INNER JOIN t3 ON t1.c=t3.c 180 INNER JOIN t4 ON t1.d=t4.d 181 WHERE t4.z>0 AND t3.y>0 182 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 183} { 184 30 130 230 330 130 30 230 30 330 30 185 60 160 260 360 160 60 260 60 360 60 186 90 190 290 390 190 90 290 90 390 90 187} 188do_execsql_test joinD-12 { 189 SELECT t1.*, t2.*, t3.*, t4.* 190 FROM t1 INNER JOIN t2 ON t1.b=t2.b 191 INNER JOIN t3 ON t1.c=t3.c 192 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 193 WHERE t2.x>0 AND t3.y>0 194 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 195} { 196 30 130 230 330 130 30 230 30 330 30 197 60 160 260 360 160 60 260 60 360 60 198 90 190 290 390 190 90 290 90 390 90 199} 200do_execsql_test joinD-13 { 201 SELECT t1.*, t2.*, t3.*, t4.* 202 FROM t1 INNER JOIN t2 ON t1.b=t2.b 203 INNER JOIN t3 ON t1.c=t3.c 204 INNER JOIN t4 ON t1.d=t4.d 205 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 206 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 207} { 208 30 130 230 330 130 30 230 30 330 30 209 60 160 260 360 160 60 260 60 360 60 210 90 190 290 390 190 90 290 90 390 90 211} 212do_execsql_test joinD-14 { 213 SELECT t1.*, t2.*, t3.*, t4.* 214 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 215 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 216 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 217 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 218} { 219 30 130 230 330 130 30 230 30 330 30 220 60 160 260 360 160 60 260 60 360 60 221 90 190 290 390 190 90 290 90 390 90 222} 223do_execsql_test joinD-15 { 224 SELECT t1.*, t2.*, t3.*, t4.* 225 FROM t1 INNER JOIN t2 ON t2.x>0 226 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 227 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 228 WHERE t1.b IS NOT DISTINCT FROM t2.b 229 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 230} { 231 30 130 230 330 130 30 230 30 330 30 232 60 160 260 360 160 60 260 60 360 60 233 90 190 290 390 190 90 290 90 390 90 234} 235do_execsql_test joinD-16 { 236 SELECT t1.*, t2.*, t3.*, t4.* 237 FROM t1 INNER JOIN t2 ON t2.x>0 238 INNER JOIN t3 ON t3.y>0 239 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 240 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 241 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 242} { 243 30 130 230 330 130 30 230 30 330 30 244 60 160 260 360 160 60 260 60 360 60 245 90 190 290 390 190 90 290 90 390 90 246} 247do_execsql_test joinD-17 { 248 SELECT t1.*, t2.*, t3.*, t4.* 249 FROM t1 INNER JOIN t2 ON t2.x>0 250 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 251 INNER JOIN t4 ON t4.z>0 252 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 253 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 254} { 255 30 130 230 330 130 30 230 30 330 30 256 60 160 260 360 160 60 260 60 360 60 257 90 190 290 390 190 90 290 90 390 90 258} 259do_execsql_test joinD-18 { 260 SELECT t1.*, t2.*, t3.*, t4.* 261 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 262 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 263 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 264 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 265} { 266 30 130 230 330 130 30 230 30 330 30 267 60 160 260 360 160 60 260 60 360 60 268 90 190 290 390 190 90 290 90 390 90 269} 270do_execsql_test joinD-19 { 271 SELECT t1.*, t2.*, t3.*, t4.* 272 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 273 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 274 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 275 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 276} { 277 30 130 230 330 130 30 230 30 330 30 278 60 160 260 360 160 60 260 60 360 60 279 90 190 290 390 190 90 290 90 390 90 280} 281do_execsql_test joinD-20 { 282 SELECT t1.*, t2.*, t3.*, t4.* 283 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 284 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 285 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 286 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 287} { 288 6 106 206 306 106 6 206 6 - - 289 12 112 212 312 112 12 212 12 - - 290 18 118 218 318 118 18 218 18 - - 291 24 124 224 324 124 24 224 24 - - 292 30 130 230 330 130 30 230 30 330 30 293 36 136 236 336 136 36 236 36 - - 294 42 142 242 342 142 42 242 42 - - 295 48 148 248 348 148 48 248 48 - - 296 54 154 254 354 154 54 254 54 - - 297 60 160 260 360 160 60 260 60 360 60 298 66 166 266 366 166 66 266 66 - - 299 72 172 272 372 172 72 272 72 - - 300 78 178 278 378 178 78 278 78 - - 301 84 184 284 384 184 84 284 84 - - 302 90 190 290 390 190 90 290 90 390 90 303} 304do_execsql_test joinD-21 { 305 SELECT t1.*, t2.*, t3.*, t4.* 306 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 307 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 308 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 309 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 310} { 311 6 106 206 306 106 6 206 6 - - 312 12 112 212 312 112 12 212 12 - - 313 18 118 218 318 118 18 218 18 - - 314 24 124 224 324 124 24 224 24 - - 315 30 130 230 330 130 30 230 30 330 30 316 36 136 236 336 136 36 236 36 - - 317 42 142 242 342 142 42 242 42 - - 318 48 148 248 348 148 48 248 48 - - 319 54 154 254 354 154 54 254 54 - - 320 60 160 260 360 160 60 260 60 360 60 321 66 166 266 366 166 66 266 66 - - 322 72 172 272 372 172 72 272 72 - - 323 78 178 278 378 178 78 278 78 - - 324 84 184 284 384 184 84 284 84 - - 325 90 190 290 390 190 90 290 90 390 90 326} 327do_execsql_test joinD-22 { 328 SELECT t1.*, t2.*, t3.*, t4.* 329 FROM t1 INNER JOIN t2 ON t1.b=t2.b 330 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 331 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 332 WHERE t2.x>0 333 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 334} { 335 6 106 206 306 106 6 206 6 - - 336 12 112 212 312 112 12 212 12 - - 337 18 118 218 318 118 18 218 18 - - 338 24 124 224 324 124 24 224 24 - - 339 30 130 230 330 130 30 230 30 330 30 340 36 136 236 336 136 36 236 36 - - 341 42 142 242 342 142 42 242 42 - - 342 48 148 248 348 148 48 248 48 - - 343 54 154 254 354 154 54 254 54 - - 344 60 160 260 360 160 60 260 60 360 60 345 66 166 266 366 166 66 266 66 - - 346 72 172 272 372 172 72 272 72 - - 347 78 178 278 378 178 78 278 78 - - 348 84 184 284 384 184 84 284 84 - - 349 90 190 290 390 190 90 290 90 390 90 350} 351do_execsql_test joinD-23 { 352 SELECT t1.*, t2.*, t3.*, t4.* 353 FROM t1 INNER JOIN t2 ON t1.b=t2.b 354 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 355 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 356 WHERE (t2.x>0 OR t2.x IS NULL) 357 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 358} { 359 6 106 206 306 106 6 206 6 - - 360 12 112 212 312 112 12 212 12 - - 361 18 118 218 318 118 18 218 18 - - 362 24 124 224 324 124 24 224 24 - - 363 30 130 230 330 130 30 230 30 330 30 364 36 136 236 336 136 36 236 36 - - 365 42 142 242 342 142 42 242 42 - - 366 48 148 248 348 148 48 248 48 - - 367 54 154 254 354 154 54 254 54 - - 368 60 160 260 360 160 60 260 60 360 60 369 66 166 266 366 166 66 266 66 - - 370 72 172 272 372 172 72 272 72 - - 371 78 178 278 378 178 78 278 78 - - 372 84 184 284 384 184 84 284 84 - - 373 90 190 290 390 190 90 290 90 390 90 374} 375do_execsql_test joinD-24 { 376 SELECT t1.*, t2.*, t3.*, t4.* 377 FROM t1 INNER JOIN t2 ON true 378 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 379 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 380 WHERE t1.b=t2.b AND t2.x>0 381 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 382} { 383 6 106 206 306 106 6 206 6 - - 384 12 112 212 312 112 12 212 12 - - 385 18 118 218 318 118 18 218 18 - - 386 24 124 224 324 124 24 224 24 - - 387 30 130 230 330 130 30 230 30 330 30 388 36 136 236 336 136 36 236 36 - - 389 42 142 242 342 142 42 242 42 - - 390 48 148 248 348 148 48 248 48 - - 391 54 154 254 354 154 54 254 54 - - 392 60 160 260 360 160 60 260 60 360 60 393 66 166 266 366 166 66 266 66 - - 394 72 172 272 372 172 72 272 72 - - 395 78 178 278 378 178 78 278 78 - - 396 84 184 284 384 184 84 284 84 - - 397 90 190 290 390 190 90 290 90 390 90 398} 399do_execsql_test joinD-25 { 400 SELECT t1.*, t2.*, t3.*, t4.* 401 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 402 INNER JOIN t3 ON t1.c=t3.c 403 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 404 WHERE t3.y>0 405 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 406} { 407 6 106 206 306 106 6 206 6 - - 408 12 112 212 312 112 12 212 12 - - 409 18 118 218 318 118 18 218 18 - - 410 24 124 224 324 124 24 224 24 - - 411 30 130 230 330 130 30 230 30 330 30 412 36 136 236 336 136 36 236 36 - - 413 42 142 242 342 142 42 242 42 - - 414 48 148 248 348 148 48 248 48 - - 415 54 154 254 354 154 54 254 54 - - 416 60 160 260 360 160 60 260 60 360 60 417 66 166 266 366 166 66 266 66 - - 418 72 172 272 372 172 72 272 72 - - 419 78 178 278 378 178 78 278 78 - - 420 84 184 284 384 184 84 284 84 - - 421 90 190 290 390 190 90 290 90 390 90 422} 423do_execsql_test joinD-26 { 424 SELECT t1.*, t2.*, t3.*, t4.* 425 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 426 INNER JOIN t3 ON t1.c=t3.c 427 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 428 WHERE t3.y>0 OR t3.y IS NULL 429 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 430} { 431 6 106 206 306 106 6 206 6 - - 432 12 112 212 312 112 12 212 12 - - 433 18 118 218 318 118 18 218 18 - - 434 24 124 224 324 124 24 224 24 - - 435 30 130 230 330 130 30 230 30 330 30 436 36 136 236 336 136 36 236 36 - - 437 42 142 242 342 142 42 242 42 - - 438 48 148 248 348 148 48 248 48 - - 439 54 154 254 354 154 54 254 54 - - 440 60 160 260 360 160 60 260 60 360 60 441 66 166 266 366 166 66 266 66 - - 442 72 172 272 372 172 72 272 72 - - 443 78 178 278 378 178 78 278 78 - - 444 84 184 284 384 184 84 284 84 - - 445 90 190 290 390 190 90 290 90 390 90 446} 447do_execsql_test joinD-27 { 448 SELECT t1.*, t2.*, t3.*, t4.* 449 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 450 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 451 LEFT JOIN t4 ON t1.d=t4.d 452 WHERE t4.z>0 453 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 454} { 455 30 130 230 330 130 30 230 30 330 30 456 60 160 260 360 160 60 260 60 360 60 457 90 190 290 390 190 90 290 90 390 90 458} 459do_execsql_test joinD-28 { 460 SELECT t1.*, t2.*, t3.*, t4.* 461 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 462 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 463 LEFT JOIN t4 ON t1.d=t4.d 464 WHERE t4.z IS NULL OR t4.z>0 465 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 466} { 467 6 106 206 306 106 6 206 6 - - 468 12 112 212 312 112 12 212 12 - - 469 18 118 218 318 118 18 218 18 - - 470 24 124 224 324 124 24 224 24 - - 471 30 130 230 330 130 30 230 30 330 30 472 36 136 236 336 136 36 236 36 - - 473 42 142 242 342 142 42 242 42 - - 474 48 148 248 348 148 48 248 48 - - 475 54 154 254 354 154 54 254 54 - - 476 60 160 260 360 160 60 260 60 360 60 477 66 166 266 366 166 66 266 66 - - 478 72 172 272 372 172 72 272 72 - - 479 78 178 278 378 178 78 278 78 - - 480 84 184 284 384 184 84 284 84 - - 481 90 190 290 390 190 90 290 90 390 90 482} 483do_execsql_test joinD-29 { 484 SELECT t1.*, t2.*, t3.*, t4.* 485 FROM t1 INNER JOIN t2 ON t1.b=t2.b 486 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 487 LEFT JOIN t4 ON t1.d=t4.d 488 WHERE t2.x>0 AND t4.z>0 489 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 490} { 491 30 130 230 330 130 30 230 30 330 30 492 60 160 260 360 160 60 260 60 360 60 493 90 190 290 390 190 90 290 90 390 90 494} 495do_execsql_test joinD-30 { 496 SELECT t1.*, t2.*, t3.*, t4.* 497 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 498 INNER JOIN t3 ON t1.c=t3.c 499 LEFT JOIN t4 ON t1.d=t4.d 500 WHERE t4.z>0 AND t3.y>0 501 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 502} { 503 30 130 230 330 130 30 230 30 330 30 504 60 160 260 360 160 60 260 60 360 60 505 90 190 290 390 190 90 290 90 390 90 506} 507do_execsql_test joinD-31 { 508 SELECT t1.*, t2.*, t3.*, t4.* 509 FROM t1 INNER JOIN t2 ON t1.b=t2.b 510 INNER JOIN t3 ON t1.c=t3.c 511 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 512 WHERE t2.x>0 AND t3.y>0 513 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 514} { 515 6 106 206 306 106 6 206 6 - - 516 12 112 212 312 112 12 212 12 - - 517 18 118 218 318 118 18 218 18 - - 518 24 124 224 324 124 24 224 24 - - 519 30 130 230 330 130 30 230 30 330 30 520 36 136 236 336 136 36 236 36 - - 521 42 142 242 342 142 42 242 42 - - 522 48 148 248 348 148 48 248 48 - - 523 54 154 254 354 154 54 254 54 - - 524 60 160 260 360 160 60 260 60 360 60 525 66 166 266 366 166 66 266 66 - - 526 72 172 272 372 172 72 272 72 - - 527 78 178 278 378 178 78 278 78 - - 528 84 184 284 384 184 84 284 84 - - 529 90 190 290 390 190 90 290 90 390 90 530} 531do_execsql_test joinD-32 { 532 SELECT t1.*, t2.*, t3.*, t4.* 533 FROM t1 INNER JOIN t2 ON t1.b=t2.b 534 INNER JOIN t3 ON t1.c=t3.c 535 LEFT JOIN t4 ON t1.d=t4.d 536 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 537 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 538} { 539 30 130 230 330 130 30 230 30 330 30 540 60 160 260 360 160 60 260 60 360 60 541 90 190 290 390 190 90 290 90 390 90 542} 543do_execsql_test joinD-33 { 544 SELECT t1.*, t2.*, t3.*, t4.* 545 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 546 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 547 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 548 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 549} { 550 6 106 206 306 106 6 206 6 - - 551 12 112 212 312 112 12 212 12 - - 552 18 118 218 318 118 18 218 18 - - 553 24 124 224 324 124 24 224 24 - - 554 30 130 230 330 130 30 230 30 330 30 555 36 136 236 336 136 36 236 36 - - 556 42 142 242 342 142 42 242 42 - - 557 48 148 248 348 148 48 248 48 - - 558 54 154 254 354 154 54 254 54 - - 559 60 160 260 360 160 60 260 60 360 60 560 66 166 266 366 166 66 266 66 - - 561 72 172 272 372 172 72 272 72 - - 562 78 178 278 378 178 78 278 78 - - 563 84 184 284 384 184 84 284 84 - - 564 90 190 290 390 190 90 290 90 390 90 565} 566do_execsql_test joinD-34 { 567 SELECT t1.*, t2.*, t3.*, t4.* 568 FROM t1 INNER JOIN t2 ON t2.x>0 569 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 570 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 571 WHERE t1.b IS NOT DISTINCT FROM t2.b 572 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 573} { 574 6 106 206 306 106 6 206 6 - - 575 12 112 212 312 112 12 212 12 - - 576 18 118 218 318 118 18 218 18 - - 577 24 124 224 324 124 24 224 24 - - 578 30 130 230 330 130 30 230 30 330 30 579 36 136 236 336 136 36 236 36 - - 580 42 142 242 342 142 42 242 42 - - 581 48 148 248 348 148 48 248 48 - - 582 54 154 254 354 154 54 254 54 - - 583 60 160 260 360 160 60 260 60 360 60 584 66 166 266 366 166 66 266 66 - - 585 72 172 272 372 172 72 272 72 - - 586 78 178 278 378 178 78 278 78 - - 587 84 184 284 384 184 84 284 84 - - 588 90 190 290 390 190 90 290 90 390 90 589} 590do_execsql_test joinD-35 { 591 SELECT t1.*, t2.*, t3.*, t4.* 592 FROM t1 INNER JOIN t2 ON t2.x>0 593 INNER JOIN t3 ON t3.y>0 594 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 595 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 596 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 597} { 598 6 106 206 306 106 6 206 6 - - 599 12 112 212 312 112 12 212 12 - - 600 18 118 218 318 118 18 218 18 - - 601 24 124 224 324 124 24 224 24 - - 602 30 130 230 330 130 30 230 30 330 30 603 36 136 236 336 136 36 236 36 - - 604 42 142 242 342 142 42 242 42 - - 605 48 148 248 348 148 48 248 48 - - 606 54 154 254 354 154 54 254 54 - - 607 60 160 260 360 160 60 260 60 360 60 608 66 166 266 366 166 66 266 66 - - 609 72 172 272 372 172 72 272 72 - - 610 78 178 278 378 178 78 278 78 - - 611 84 184 284 384 184 84 284 84 - - 612 90 190 290 390 190 90 290 90 390 90 613} 614do_execsql_test joinD-36 { 615 SELECT t1.*, t2.*, t3.*, t4.* 616 FROM t1 INNER JOIN t2 ON t2.x>0 617 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 618 LEFT JOIN t4 ON t4.z>0 619 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 620 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 621} { 622 30 130 230 330 130 30 230 30 330 30 623 60 160 260 360 160 60 260 60 360 60 624 90 190 290 390 190 90 290 90 390 90 625} 626do_execsql_test joinD-37 { 627 SELECT t1.*, t2.*, t3.*, t4.* 628 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 629 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 630 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 631 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 632} { 633 6 106 206 306 106 6 206 6 - - 634 12 112 212 312 112 12 212 12 - - 635 18 118 218 318 118 18 218 18 - - 636 24 124 224 324 124 24 224 24 - - 637 30 130 230 330 130 30 230 30 330 30 638 36 136 236 336 136 36 236 36 - - 639 42 142 242 342 142 42 242 42 - - 640 48 148 248 348 148 48 248 48 - - 641 54 154 254 354 154 54 254 54 - - 642 60 160 260 360 160 60 260 60 360 60 643 66 166 266 366 166 66 266 66 - - 644 72 172 272 372 172 72 272 72 - - 645 78 178 278 378 178 78 278 78 - - 646 84 184 284 384 184 84 284 84 - - 647 90 190 290 390 190 90 290 90 390 90 648} 649do_execsql_test joinD-38 { 650 SELECT t1.*, t2.*, t3.*, t4.* 651 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 652 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 653 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 654 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 655} { 656 6 106 206 306 106 6 206 6 - - 657 12 112 212 312 112 12 212 12 - - 658 18 118 218 318 118 18 218 18 - - 659 24 124 224 324 124 24 224 24 - - 660 30 130 230 330 130 30 230 30 330 30 661 36 136 236 336 136 36 236 36 - - 662 42 142 242 342 142 42 242 42 - - 663 48 148 248 348 148 48 248 48 - - 664 54 154 254 354 154 54 254 54 - - 665 60 160 260 360 160 60 260 60 360 60 666 66 166 266 366 166 66 266 66 - - 667 72 172 272 372 172 72 272 72 - - 668 78 178 278 378 178 78 278 78 - - 669 84 184 284 384 184 84 284 84 - - 670 90 190 290 390 190 90 290 90 390 90 671} 672do_execsql_test joinD-39 { 673 SELECT t1.*, t2.*, t3.*, t4.* 674 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 675 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 676 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 677 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 678} { 679 30 130 230 330 130 30 230 30 330 30 680 60 160 260 360 160 60 260 60 360 60 681 90 190 290 390 190 90 290 90 390 90 682 - - - - - - - - 300 0 683 - - - - - - - - 305 5 684 - - - - - - - - 310 10 685 - - - - - - - - 315 15 686 - - - - - - - - 320 20 687 - - - - - - - - 325 25 688 - - - - - - - - 335 35 689 - - - - - - - - 340 40 690 - - - - - - - - 345 45 691 - - - - - - - - 350 50 692 - - - - - - - - 355 55 693 - - - - - - - - 365 65 694 - - - - - - - - 370 70 695 - - - - - - - - 375 75 696 - - - - - - - - 380 80 697 - - - - - - - - 385 85 698 - - - - - - - - 395 95 699} 700do_execsql_test joinD-40 { 701 SELECT t1.*, t2.*, t3.*, t4.* 702 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 703 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 704 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 705 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 706} { 707 30 130 230 330 130 30 230 30 330 30 708 60 160 260 360 160 60 260 60 360 60 709 90 190 290 390 190 90 290 90 390 90 710 - - - - - - - - 300 0 711 - - - - - - - - 305 5 712 - - - - - - - - 310 10 713 - - - - - - - - 315 15 714 - - - - - - - - 320 20 715 - - - - - - - - 325 25 716 - - - - - - - - 335 35 717 - - - - - - - - 340 40 718 - - - - - - - - 345 45 719 - - - - - - - - 350 50 720 - - - - - - - - 355 55 721 - - - - - - - - 365 65 722 - - - - - - - - 370 70 723 - - - - - - - - 375 75 724 - - - - - - - - 380 80 725 - - - - - - - - 385 85 726 - - - - - - - - 395 95 727} 728do_execsql_test joinD-41 { 729 SELECT t1.*, t2.*, t3.*, t4.* 730 FROM t1 INNER JOIN t2 ON t1.b=t2.b 731 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 732 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 733 WHERE t2.x>0 734 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 735} { 736 30 130 230 330 130 30 230 30 330 30 737 60 160 260 360 160 60 260 60 360 60 738 90 190 290 390 190 90 290 90 390 90 739} 740do_execsql_test joinD-42 { 741 SELECT t1.*, t2.*, t3.*, t4.* 742 FROM t1 INNER JOIN t2 ON t1.b=t2.b 743 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 744 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 745 WHERE (t2.x>0 OR t2.x IS NULL) 746 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 747} { 748 30 130 230 330 130 30 230 30 330 30 749 60 160 260 360 160 60 260 60 360 60 750 90 190 290 390 190 90 290 90 390 90 751 - - - - - - - - 300 0 752 - - - - - - - - 305 5 753 - - - - - - - - 310 10 754 - - - - - - - - 315 15 755 - - - - - - - - 320 20 756 - - - - - - - - 325 25 757 - - - - - - - - 335 35 758 - - - - - - - - 340 40 759 - - - - - - - - 345 45 760 - - - - - - - - 350 50 761 - - - - - - - - 355 55 762 - - - - - - - - 365 65 763 - - - - - - - - 370 70 764 - - - - - - - - 375 75 765 - - - - - - - - 380 80 766 - - - - - - - - 385 85 767 - - - - - - - - 395 95 768} 769do_execsql_test joinD-43 { 770 SELECT t1.*, t2.*, t3.*, t4.* 771 FROM t1 INNER JOIN t2 ON true 772 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 773 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 774 WHERE t1.b=t2.b AND t2.x>0 775 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 776} { 777 30 130 230 330 130 30 230 30 330 30 778 60 160 260 360 160 60 260 60 360 60 779 90 190 290 390 190 90 290 90 390 90 780} 781do_execsql_test joinD-44 { 782 SELECT t1.*, t2.*, t3.*, t4.* 783 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 784 INNER JOIN t3 ON t1.c=t3.c 785 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 786 WHERE t3.y>0 787 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 788} { 789 30 130 230 330 130 30 230 30 330 30 790 60 160 260 360 160 60 260 60 360 60 791 90 190 290 390 190 90 290 90 390 90 792} 793do_execsql_test joinD-45 { 794 SELECT t1.*, t2.*, t3.*, t4.* 795 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 796 INNER JOIN t3 ON t1.c=t3.c 797 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 798 WHERE t3.y>0 OR t3.y IS NULL 799 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 800} { 801 30 130 230 330 130 30 230 30 330 30 802 60 160 260 360 160 60 260 60 360 60 803 90 190 290 390 190 90 290 90 390 90 804 - - - - - - - - 300 0 805 - - - - - - - - 305 5 806 - - - - - - - - 310 10 807 - - - - - - - - 315 15 808 - - - - - - - - 320 20 809 - - - - - - - - 325 25 810 - - - - - - - - 335 35 811 - - - - - - - - 340 40 812 - - - - - - - - 345 45 813 - - - - - - - - 350 50 814 - - - - - - - - 355 55 815 - - - - - - - - 365 65 816 - - - - - - - - 370 70 817 - - - - - - - - 375 75 818 - - - - - - - - 380 80 819 - - - - - - - - 385 85 820 - - - - - - - - 395 95 821} 822do_execsql_test joinD-46 { 823 SELECT t1.*, t2.*, t3.*, t4.* 824 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 825 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 826 RIGHT JOIN t4 ON t1.d=t4.d 827 WHERE t4.z>0 828 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 829} { 830 30 130 230 330 130 30 230 30 330 30 831 60 160 260 360 160 60 260 60 360 60 832 90 190 290 390 190 90 290 90 390 90 833 - - - - - - - - 305 5 834 - - - - - - - - 310 10 835 - - - - - - - - 315 15 836 - - - - - - - - 320 20 837 - - - - - - - - 325 25 838 - - - - - - - - 335 35 839 - - - - - - - - 340 40 840 - - - - - - - - 345 45 841 - - - - - - - - 350 50 842 - - - - - - - - 355 55 843 - - - - - - - - 365 65 844 - - - - - - - - 370 70 845 - - - - - - - - 375 75 846 - - - - - - - - 380 80 847 - - - - - - - - 385 85 848 - - - - - - - - 395 95 849} 850do_execsql_test joinD-47 { 851 SELECT t1.*, t2.*, t3.*, t4.* 852 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 853 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 854 RIGHT JOIN t4 ON t1.d=t4.d 855 WHERE t4.z IS NULL OR t4.z>0 856 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 857} { 858 30 130 230 330 130 30 230 30 330 30 859 60 160 260 360 160 60 260 60 360 60 860 90 190 290 390 190 90 290 90 390 90 861 - - - - - - - - 305 5 862 - - - - - - - - 310 10 863 - - - - - - - - 315 15 864 - - - - - - - - 320 20 865 - - - - - - - - 325 25 866 - - - - - - - - 335 35 867 - - - - - - - - 340 40 868 - - - - - - - - 345 45 869 - - - - - - - - 350 50 870 - - - - - - - - 355 55 871 - - - - - - - - 365 65 872 - - - - - - - - 370 70 873 - - - - - - - - 375 75 874 - - - - - - - - 380 80 875 - - - - - - - - 385 85 876 - - - - - - - - 395 95 877} 878do_execsql_test joinD-48 { 879 SELECT t1.*, t2.*, t3.*, t4.* 880 FROM t1 INNER JOIN t2 ON t1.b=t2.b 881 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 882 RIGHT JOIN t4 ON t1.d=t4.d 883 WHERE t2.x>0 AND t4.z>0 884 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 885} { 886 30 130 230 330 130 30 230 30 330 30 887 60 160 260 360 160 60 260 60 360 60 888 90 190 290 390 190 90 290 90 390 90 889} 890do_execsql_test joinD-49 { 891 SELECT t1.*, t2.*, t3.*, t4.* 892 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 893 INNER JOIN t3 ON t1.c=t3.c 894 RIGHT JOIN t4 ON t1.d=t4.d 895 WHERE t4.z>0 AND t3.y>0 896 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 897} { 898 30 130 230 330 130 30 230 30 330 30 899 60 160 260 360 160 60 260 60 360 60 900 90 190 290 390 190 90 290 90 390 90 901} 902do_execsql_test joinD-50 { 903 SELECT t1.*, t2.*, t3.*, t4.* 904 FROM t1 INNER JOIN t2 ON t1.b=t2.b 905 INNER JOIN t3 ON t1.c=t3.c 906 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 907 WHERE t2.x>0 AND t3.y>0 908 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 909} { 910 30 130 230 330 130 30 230 30 330 30 911 60 160 260 360 160 60 260 60 360 60 912 90 190 290 390 190 90 290 90 390 90 913} 914do_execsql_test joinD-51 { 915 SELECT t1.*, t2.*, t3.*, t4.* 916 FROM t1 INNER JOIN t2 ON t1.b=t2.b 917 INNER JOIN t3 ON t1.c=t3.c 918 RIGHT JOIN t4 ON t1.d=t4.d 919 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 920 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 921} { 922 30 130 230 330 130 30 230 30 330 30 923 60 160 260 360 160 60 260 60 360 60 924 90 190 290 390 190 90 290 90 390 90 925} 926do_execsql_test joinD-52 { 927 SELECT t1.*, t2.*, t3.*, t4.* 928 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 929 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 930 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 931 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 932} { 933 30 130 230 330 130 30 230 30 330 30 934 60 160 260 360 160 60 260 60 360 60 935 90 190 290 390 190 90 290 90 390 90 936 - - - - - - - - 300 0 937 - - - - - - - - 305 5 938 - - - - - - - - 310 10 939 - - - - - - - - 315 15 940 - - - - - - - - 320 20 941 - - - - - - - - 325 25 942 - - - - - - - - 335 35 943 - - - - - - - - 340 40 944 - - - - - - - - 345 45 945 - - - - - - - - 350 50 946 - - - - - - - - 355 55 947 - - - - - - - - 365 65 948 - - - - - - - - 370 70 949 - - - - - - - - 375 75 950 - - - - - - - - 380 80 951 - - - - - - - - 385 85 952 - - - - - - - - 395 95 953} 954do_execsql_test joinD-53 { 955 SELECT t1.*, t2.*, t3.*, t4.* 956 FROM t1 INNER JOIN t2 ON t2.x>0 957 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 958 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 959 WHERE t1.b IS NOT DISTINCT FROM t2.b 960 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 961} { 962 30 130 230 330 130 30 230 30 330 30 963 60 160 260 360 160 60 260 60 360 60 964 90 190 290 390 190 90 290 90 390 90 965 - - - - - - - - 300 0 966 - - - - - - - - 305 5 967 - - - - - - - - 310 10 968 - - - - - - - - 320 20 969 - - - - - - - - 325 25 970 - - - - - - - - 335 35 971 - - - - - - - - 340 40 972 - - - - - - - - 350 50 973 - - - - - - - - 355 55 974 - - - - - - - - 365 65 975 - - - - - - - - 370 70 976 - - - - - - - - 380 80 977 - - - - - - - - 385 85 978 - - - - - - - - 395 95 979} 980do_execsql_test joinD-54 { 981 SELECT t1.*, t2.*, t3.*, t4.* 982 FROM t1 INNER JOIN t2 ON t2.x>0 983 INNER JOIN t3 ON t3.y>0 984 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 985 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 986 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 987} { 988 30 130 230 330 130 30 230 30 330 30 989 60 160 260 360 160 60 260 60 360 60 990 90 190 290 390 190 90 290 90 390 90 991 - - - - - - - - 300 0 992} 993do_execsql_test joinD-55 { 994 SELECT t1.*, t2.*, t3.*, t4.* 995 FROM t1 INNER JOIN t2 ON t2.x>0 996 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 997 RIGHT JOIN t4 ON t4.z>0 998 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 999 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1000} { 1001 30 130 230 330 130 30 230 30 330 30 1002 60 160 260 360 160 60 260 60 360 60 1003 90 190 290 390 190 90 290 90 390 90 1004} 1005do_execsql_test joinD-56 { 1006 SELECT t1.*, t2.*, t3.*, t4.* 1007 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 1008 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1009 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 1010 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1011} { 1012 30 130 230 330 130 30 230 30 330 30 1013 60 160 260 360 160 60 260 60 360 60 1014 90 190 290 390 190 90 290 90 390 90 1015 - - - - - - - - 300 0 1016 - - - - - - - - 305 5 1017 - - - - - - - - 310 10 1018 - - - - - - - - 315 15 1019 - - - - - - - - 320 20 1020 - - - - - - - - 325 25 1021 - - - - - - - - 335 35 1022 - - - - - - - - 340 40 1023 - - - - - - - - 345 45 1024 - - - - - - - - 350 50 1025 - - - - - - - - 355 55 1026 - - - - - - - - 365 65 1027 - - - - - - - - 370 70 1028 - - - - - - - - 375 75 1029 - - - - - - - - 380 80 1030 - - - - - - - - 385 85 1031 - - - - - - - - 395 95 1032} 1033do_execsql_test joinD-57 { 1034 SELECT t1.*, t2.*, t3.*, t4.* 1035 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1036 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 1037 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 1038 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1039} { 1040 30 130 230 330 130 30 230 30 330 30 1041 60 160 260 360 160 60 260 60 360 60 1042 90 190 290 390 190 90 290 90 390 90 1043 - - - - - - - - 300 0 1044 - - - - - - - - 305 5 1045 - - - - - - - - 310 10 1046 - - - - - - - - 315 15 1047 - - - - - - - - 320 20 1048 - - - - - - - - 325 25 1049 - - - - - - - - 335 35 1050 - - - - - - - - 340 40 1051 - - - - - - - - 345 45 1052 - - - - - - - - 350 50 1053 - - - - - - - - 355 55 1054 - - - - - - - - 365 65 1055 - - - - - - - - 370 70 1056 - - - - - - - - 375 75 1057 - - - - - - - - 380 80 1058 - - - - - - - - 385 85 1059 - - - - - - - - 395 95 1060} 1061do_execsql_test joinD-58 { 1062 SELECT t1.*, t2.*, t3.*, t4.* 1063 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1064 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1065 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1066 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1067} { 1068 6 106 206 306 106 6 206 6 - - 1069 12 112 212 312 112 12 212 12 - - 1070 18 118 218 318 118 18 218 18 - - 1071 24 124 224 324 124 24 224 24 - - 1072 30 130 230 330 130 30 230 30 330 30 1073 36 136 236 336 136 36 236 36 - - 1074 42 142 242 342 142 42 242 42 - - 1075 48 148 248 348 148 48 248 48 - - 1076 54 154 254 354 154 54 254 54 - - 1077 60 160 260 360 160 60 260 60 360 60 1078 66 166 266 366 166 66 266 66 - - 1079 72 172 272 372 172 72 272 72 - - 1080 78 178 278 378 178 78 278 78 - - 1081 84 184 284 384 184 84 284 84 - - 1082 90 190 290 390 190 90 290 90 390 90 1083 - - - - - - - - 300 0 1084 - - - - - - - - 305 5 1085 - - - - - - - - 310 10 1086 - - - - - - - - 315 15 1087 - - - - - - - - 320 20 1088 - - - - - - - - 325 25 1089 - - - - - - - - 335 35 1090 - - - - - - - - 340 40 1091 - - - - - - - - 345 45 1092 - - - - - - - - 350 50 1093 - - - - - - - - 355 55 1094 - - - - - - - - 365 65 1095 - - - - - - - - 370 70 1096 - - - - - - - - 375 75 1097 - - - - - - - - 380 80 1098 - - - - - - - - 385 85 1099 - - - - - - - - 395 95 1100} 1101do_execsql_test joinD-59 { 1102 SELECT t1.*, t2.*, t3.*, t4.* 1103 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 1104 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1105 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1106 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1107} { 1108 6 106 206 306 106 6 206 6 - - 1109 12 112 212 312 112 12 212 12 - - 1110 18 118 218 318 118 18 218 18 - - 1111 24 124 224 324 124 24 224 24 - - 1112 30 130 230 330 130 30 230 30 330 30 1113 36 136 236 336 136 36 236 36 - - 1114 42 142 242 342 142 42 242 42 - - 1115 48 148 248 348 148 48 248 48 - - 1116 54 154 254 354 154 54 254 54 - - 1117 60 160 260 360 160 60 260 60 360 60 1118 66 166 266 366 166 66 266 66 - - 1119 72 172 272 372 172 72 272 72 - - 1120 78 178 278 378 178 78 278 78 - - 1121 84 184 284 384 184 84 284 84 - - 1122 90 190 290 390 190 90 290 90 390 90 1123 - - - - - - - - 300 0 1124 - - - - - - - - 305 5 1125 - - - - - - - - 310 10 1126 - - - - - - - - 315 15 1127 - - - - - - - - 320 20 1128 - - - - - - - - 325 25 1129 - - - - - - - - 335 35 1130 - - - - - - - - 340 40 1131 - - - - - - - - 345 45 1132 - - - - - - - - 350 50 1133 - - - - - - - - 355 55 1134 - - - - - - - - 365 65 1135 - - - - - - - - 370 70 1136 - - - - - - - - 375 75 1137 - - - - - - - - 380 80 1138 - - - - - - - - 385 85 1139 - - - - - - - - 395 95 1140} 1141do_execsql_test joinD-60 { 1142 SELECT t1.*, t2.*, t3.*, t4.* 1143 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1144 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1145 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1146 WHERE t2.x>0 1147 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1148} { 1149 6 106 206 306 106 6 206 6 - - 1150 12 112 212 312 112 12 212 12 - - 1151 18 118 218 318 118 18 218 18 - - 1152 24 124 224 324 124 24 224 24 - - 1153 30 130 230 330 130 30 230 30 330 30 1154 36 136 236 336 136 36 236 36 - - 1155 42 142 242 342 142 42 242 42 - - 1156 48 148 248 348 148 48 248 48 - - 1157 54 154 254 354 154 54 254 54 - - 1158 60 160 260 360 160 60 260 60 360 60 1159 66 166 266 366 166 66 266 66 - - 1160 72 172 272 372 172 72 272 72 - - 1161 78 178 278 378 178 78 278 78 - - 1162 84 184 284 384 184 84 284 84 - - 1163 90 190 290 390 190 90 290 90 390 90 1164} 1165do_execsql_test joinD-61 { 1166 SELECT t1.*, t2.*, t3.*, t4.* 1167 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1168 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1169 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1170 WHERE (t2.x>0 OR t2.x IS NULL) 1171 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1172} { 1173 6 106 206 306 106 6 206 6 - - 1174 12 112 212 312 112 12 212 12 - - 1175 18 118 218 318 118 18 218 18 - - 1176 24 124 224 324 124 24 224 24 - - 1177 30 130 230 330 130 30 230 30 330 30 1178 36 136 236 336 136 36 236 36 - - 1179 42 142 242 342 142 42 242 42 - - 1180 48 148 248 348 148 48 248 48 - - 1181 54 154 254 354 154 54 254 54 - - 1182 60 160 260 360 160 60 260 60 360 60 1183 66 166 266 366 166 66 266 66 - - 1184 72 172 272 372 172 72 272 72 - - 1185 78 178 278 378 178 78 278 78 - - 1186 84 184 284 384 184 84 284 84 - - 1187 90 190 290 390 190 90 290 90 390 90 1188 - - - - - - - - 300 0 1189 - - - - - - - - 305 5 1190 - - - - - - - - 310 10 1191 - - - - - - - - 315 15 1192 - - - - - - - - 320 20 1193 - - - - - - - - 325 25 1194 - - - - - - - - 335 35 1195 - - - - - - - - 340 40 1196 - - - - - - - - 345 45 1197 - - - - - - - - 350 50 1198 - - - - - - - - 355 55 1199 - - - - - - - - 365 65 1200 - - - - - - - - 370 70 1201 - - - - - - - - 375 75 1202 - - - - - - - - 380 80 1203 - - - - - - - - 385 85 1204 - - - - - - - - 395 95 1205} 1206do_execsql_test joinD-62 { 1207 SELECT t1.*, t2.*, t3.*, t4.* 1208 FROM t1 INNER JOIN t2 ON true 1209 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1210 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1211 WHERE t1.b=t2.b AND t2.x>0 1212 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1213} { 1214 6 106 206 306 106 6 206 6 - - 1215 12 112 212 312 112 12 212 12 - - 1216 18 118 218 318 118 18 218 18 - - 1217 24 124 224 324 124 24 224 24 - - 1218 30 130 230 330 130 30 230 30 330 30 1219 36 136 236 336 136 36 236 36 - - 1220 42 142 242 342 142 42 242 42 - - 1221 48 148 248 348 148 48 248 48 - - 1222 54 154 254 354 154 54 254 54 - - 1223 60 160 260 360 160 60 260 60 360 60 1224 66 166 266 366 166 66 266 66 - - 1225 72 172 272 372 172 72 272 72 - - 1226 78 178 278 378 178 78 278 78 - - 1227 84 184 284 384 184 84 284 84 - - 1228 90 190 290 390 190 90 290 90 390 90 1229} 1230do_execsql_test joinD-63 { 1231 SELECT t1.*, t2.*, t3.*, t4.* 1232 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1233 INNER JOIN t3 ON t1.c=t3.c 1234 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1235 WHERE t3.y>0 1236 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1237} { 1238 6 106 206 306 106 6 206 6 - - 1239 12 112 212 312 112 12 212 12 - - 1240 18 118 218 318 118 18 218 18 - - 1241 24 124 224 324 124 24 224 24 - - 1242 30 130 230 330 130 30 230 30 330 30 1243 36 136 236 336 136 36 236 36 - - 1244 42 142 242 342 142 42 242 42 - - 1245 48 148 248 348 148 48 248 48 - - 1246 54 154 254 354 154 54 254 54 - - 1247 60 160 260 360 160 60 260 60 360 60 1248 66 166 266 366 166 66 266 66 - - 1249 72 172 272 372 172 72 272 72 - - 1250 78 178 278 378 178 78 278 78 - - 1251 84 184 284 384 184 84 284 84 - - 1252 90 190 290 390 190 90 290 90 390 90 1253} 1254do_execsql_test joinD-64 { 1255 SELECT t1.*, t2.*, t3.*, t4.* 1256 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1257 INNER JOIN t3 ON t1.c=t3.c 1258 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1259 WHERE t3.y>0 OR t3.y IS NULL 1260 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1261} { 1262 6 106 206 306 106 6 206 6 - - 1263 12 112 212 312 112 12 212 12 - - 1264 18 118 218 318 118 18 218 18 - - 1265 24 124 224 324 124 24 224 24 - - 1266 30 130 230 330 130 30 230 30 330 30 1267 36 136 236 336 136 36 236 36 - - 1268 42 142 242 342 142 42 242 42 - - 1269 48 148 248 348 148 48 248 48 - - 1270 54 154 254 354 154 54 254 54 - - 1271 60 160 260 360 160 60 260 60 360 60 1272 66 166 266 366 166 66 266 66 - - 1273 72 172 272 372 172 72 272 72 - - 1274 78 178 278 378 178 78 278 78 - - 1275 84 184 284 384 184 84 284 84 - - 1276 90 190 290 390 190 90 290 90 390 90 1277 - - - - - - - - 300 0 1278 - - - - - - - - 305 5 1279 - - - - - - - - 310 10 1280 - - - - - - - - 315 15 1281 - - - - - - - - 320 20 1282 - - - - - - - - 325 25 1283 - - - - - - - - 335 35 1284 - - - - - - - - 340 40 1285 - - - - - - - - 345 45 1286 - - - - - - - - 350 50 1287 - - - - - - - - 355 55 1288 - - - - - - - - 365 65 1289 - - - - - - - - 370 70 1290 - - - - - - - - 375 75 1291 - - - - - - - - 380 80 1292 - - - - - - - - 385 85 1293 - - - - - - - - 395 95 1294} 1295do_execsql_test joinD-65 { 1296 SELECT t1.*, t2.*, t3.*, t4.* 1297 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1298 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1299 FULL JOIN t4 ON t1.d=t4.d 1300 WHERE t4.z>0 1301 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1302} { 1303 30 130 230 330 130 30 230 30 330 30 1304 60 160 260 360 160 60 260 60 360 60 1305 90 190 290 390 190 90 290 90 390 90 1306 - - - - - - - - 305 5 1307 - - - - - - - - 310 10 1308 - - - - - - - - 315 15 1309 - - - - - - - - 320 20 1310 - - - - - - - - 325 25 1311 - - - - - - - - 335 35 1312 - - - - - - - - 340 40 1313 - - - - - - - - 345 45 1314 - - - - - - - - 350 50 1315 - - - - - - - - 355 55 1316 - - - - - - - - 365 65 1317 - - - - - - - - 370 70 1318 - - - - - - - - 375 75 1319 - - - - - - - - 380 80 1320 - - - - - - - - 385 85 1321 - - - - - - - - 395 95 1322} 1323do_execsql_test joinD-66 { 1324 SELECT t1.*, t2.*, t3.*, t4.* 1325 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1326 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1327 FULL JOIN t4 ON t1.d=t4.d 1328 WHERE t4.z IS NULL OR t4.z>0 1329 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1330} { 1331 6 106 206 306 106 6 206 6 - - 1332 12 112 212 312 112 12 212 12 - - 1333 18 118 218 318 118 18 218 18 - - 1334 24 124 224 324 124 24 224 24 - - 1335 30 130 230 330 130 30 230 30 330 30 1336 36 136 236 336 136 36 236 36 - - 1337 42 142 242 342 142 42 242 42 - - 1338 48 148 248 348 148 48 248 48 - - 1339 54 154 254 354 154 54 254 54 - - 1340 60 160 260 360 160 60 260 60 360 60 1341 66 166 266 366 166 66 266 66 - - 1342 72 172 272 372 172 72 272 72 - - 1343 78 178 278 378 178 78 278 78 - - 1344 84 184 284 384 184 84 284 84 - - 1345 90 190 290 390 190 90 290 90 390 90 1346 - - - - - - - - 305 5 1347 - - - - - - - - 310 10 1348 - - - - - - - - 315 15 1349 - - - - - - - - 320 20 1350 - - - - - - - - 325 25 1351 - - - - - - - - 335 35 1352 - - - - - - - - 340 40 1353 - - - - - - - - 345 45 1354 - - - - - - - - 350 50 1355 - - - - - - - - 355 55 1356 - - - - - - - - 365 65 1357 - - - - - - - - 370 70 1358 - - - - - - - - 375 75 1359 - - - - - - - - 380 80 1360 - - - - - - - - 385 85 1361 - - - - - - - - 395 95 1362} 1363do_execsql_test joinD-67 { 1364 SELECT t1.*, t2.*, t3.*, t4.* 1365 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1366 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1367 FULL JOIN t4 ON t1.d=t4.d 1368 WHERE t2.x>0 AND t4.z>0 1369 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1370} { 1371 30 130 230 330 130 30 230 30 330 30 1372 60 160 260 360 160 60 260 60 360 60 1373 90 190 290 390 190 90 290 90 390 90 1374} 1375do_execsql_test joinD-68 { 1376 SELECT t1.*, t2.*, t3.*, t4.* 1377 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1378 INNER JOIN t3 ON t1.c=t3.c 1379 FULL JOIN t4 ON t1.d=t4.d 1380 WHERE t4.z>0 AND t3.y>0 1381 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1382} { 1383 30 130 230 330 130 30 230 30 330 30 1384 60 160 260 360 160 60 260 60 360 60 1385 90 190 290 390 190 90 290 90 390 90 1386} 1387do_execsql_test joinD-69 { 1388 SELECT t1.*, t2.*, t3.*, t4.* 1389 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1390 INNER JOIN t3 ON t1.c=t3.c 1391 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1392 WHERE t2.x>0 AND t3.y>0 1393 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1394} { 1395 6 106 206 306 106 6 206 6 - - 1396 12 112 212 312 112 12 212 12 - - 1397 18 118 218 318 118 18 218 18 - - 1398 24 124 224 324 124 24 224 24 - - 1399 30 130 230 330 130 30 230 30 330 30 1400 36 136 236 336 136 36 236 36 - - 1401 42 142 242 342 142 42 242 42 - - 1402 48 148 248 348 148 48 248 48 - - 1403 54 154 254 354 154 54 254 54 - - 1404 60 160 260 360 160 60 260 60 360 60 1405 66 166 266 366 166 66 266 66 - - 1406 72 172 272 372 172 72 272 72 - - 1407 78 178 278 378 178 78 278 78 - - 1408 84 184 284 384 184 84 284 84 - - 1409 90 190 290 390 190 90 290 90 390 90 1410} 1411do_execsql_test joinD-70 { 1412 SELECT t1.*, t2.*, t3.*, t4.* 1413 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1414 INNER JOIN t3 ON t1.c=t3.c 1415 FULL JOIN t4 ON t1.d=t4.d 1416 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 1417 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1418} { 1419 30 130 230 330 130 30 230 30 330 30 1420 60 160 260 360 160 60 260 60 360 60 1421 90 190 290 390 190 90 290 90 390 90 1422} 1423do_execsql_test joinD-71 { 1424 SELECT t1.*, t2.*, t3.*, t4.* 1425 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 1426 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 1427 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 1428 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1429} { 1430 6 106 206 306 106 6 206 6 - - 1431 12 112 212 312 112 12 212 12 - - 1432 18 118 218 318 118 18 218 18 - - 1433 24 124 224 324 124 24 224 24 - - 1434 30 130 230 330 130 30 230 30 330 30 1435 36 136 236 336 136 36 236 36 - - 1436 42 142 242 342 142 42 242 42 - - 1437 48 148 248 348 148 48 248 48 - - 1438 54 154 254 354 154 54 254 54 - - 1439 60 160 260 360 160 60 260 60 360 60 1440 66 166 266 366 166 66 266 66 - - 1441 72 172 272 372 172 72 272 72 - - 1442 78 178 278 378 178 78 278 78 - - 1443 84 184 284 384 184 84 284 84 - - 1444 90 190 290 390 190 90 290 90 390 90 1445 - - - - - - - - 300 0 1446 - - - - - - - - 305 5 1447 - - - - - - - - 310 10 1448 - - - - - - - - 315 15 1449 - - - - - - - - 320 20 1450 - - - - - - - - 325 25 1451 - - - - - - - - 335 35 1452 - - - - - - - - 340 40 1453 - - - - - - - - 345 45 1454 - - - - - - - - 350 50 1455 - - - - - - - - 355 55 1456 - - - - - - - - 365 65 1457 - - - - - - - - 370 70 1458 - - - - - - - - 375 75 1459 - - - - - - - - 380 80 1460 - - - - - - - - 385 85 1461 - - - - - - - - 395 95 1462} 1463do_execsql_test joinD-72 { 1464 SELECT t1.*, t2.*, t3.*, t4.* 1465 FROM t1 INNER JOIN t2 ON t2.x>0 1466 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 1467 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 1468 WHERE t1.b IS NOT DISTINCT FROM t2.b 1469 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1470} { 1471 6 106 206 306 106 6 206 6 - - 1472 12 112 212 312 112 12 212 12 - - 1473 18 118 218 318 118 18 218 18 - - 1474 24 124 224 324 124 24 224 24 - - 1475 30 130 230 330 130 30 230 30 330 30 1476 36 136 236 336 136 36 236 36 - - 1477 42 142 242 342 142 42 242 42 - - 1478 48 148 248 348 148 48 248 48 - - 1479 54 154 254 354 154 54 254 54 - - 1480 60 160 260 360 160 60 260 60 360 60 1481 66 166 266 366 166 66 266 66 - - 1482 72 172 272 372 172 72 272 72 - - 1483 78 178 278 378 178 78 278 78 - - 1484 84 184 284 384 184 84 284 84 - - 1485 90 190 290 390 190 90 290 90 390 90 1486 - - - - - - - - 300 0 1487 - - - - - - - - 305 5 1488 - - - - - - - - 310 10 1489 - - - - - - - - 320 20 1490 - - - - - - - - 325 25 1491 - - - - - - - - 335 35 1492 - - - - - - - - 340 40 1493 - - - - - - - - 350 50 1494 - - - - - - - - 355 55 1495 - - - - - - - - 365 65 1496 - - - - - - - - 370 70 1497 - - - - - - - - 380 80 1498 - - - - - - - - 385 85 1499 - - - - - - - - 395 95 1500} 1501do_execsql_test joinD-73 { 1502 SELECT t1.*, t2.*, t3.*, t4.* 1503 FROM t1 INNER JOIN t2 ON t2.x>0 1504 INNER JOIN t3 ON t3.y>0 1505 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 1506 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 1507 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1508} { 1509 6 106 206 306 106 6 206 6 - - 1510 12 112 212 312 112 12 212 12 - - 1511 18 118 218 318 118 18 218 18 - - 1512 24 124 224 324 124 24 224 24 - - 1513 30 130 230 330 130 30 230 30 330 30 1514 36 136 236 336 136 36 236 36 - - 1515 42 142 242 342 142 42 242 42 - - 1516 48 148 248 348 148 48 248 48 - - 1517 54 154 254 354 154 54 254 54 - - 1518 60 160 260 360 160 60 260 60 360 60 1519 66 166 266 366 166 66 266 66 - - 1520 72 172 272 372 172 72 272 72 - - 1521 78 178 278 378 178 78 278 78 - - 1522 84 184 284 384 184 84 284 84 - - 1523 90 190 290 390 190 90 290 90 390 90 1524 - - - - - - - - 300 0 1525} 1526do_execsql_test joinD-74 { 1527 SELECT t1.*, t2.*, t3.*, t4.* 1528 FROM t1 INNER JOIN t2 ON t2.x>0 1529 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 1530 FULL JOIN t4 ON t4.z>0 1531 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 1532 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1533} { 1534 30 130 230 330 130 30 230 30 330 30 1535 60 160 260 360 160 60 260 60 360 60 1536 90 190 290 390 190 90 290 90 390 90 1537} 1538do_execsql_test joinD-75 { 1539 SELECT t1.*, t2.*, t3.*, t4.* 1540 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 1541 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1542 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1543 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1544} { 1545 6 106 206 306 106 6 206 6 - - 1546 12 112 212 312 112 12 212 12 - - 1547 18 118 218 318 118 18 218 18 - - 1548 24 124 224 324 124 24 224 24 - - 1549 30 130 230 330 130 30 230 30 330 30 1550 36 136 236 336 136 36 236 36 - - 1551 42 142 242 342 142 42 242 42 - - 1552 48 148 248 348 148 48 248 48 - - 1553 54 154 254 354 154 54 254 54 - - 1554 60 160 260 360 160 60 260 60 360 60 1555 66 166 266 366 166 66 266 66 - - 1556 72 172 272 372 172 72 272 72 - - 1557 78 178 278 378 178 78 278 78 - - 1558 84 184 284 384 184 84 284 84 - - 1559 90 190 290 390 190 90 290 90 390 90 1560 - - - - - - - - 300 0 1561 - - - - - - - - 305 5 1562 - - - - - - - - 310 10 1563 - - - - - - - - 315 15 1564 - - - - - - - - 320 20 1565 - - - - - - - - 325 25 1566 - - - - - - - - 335 35 1567 - - - - - - - - 340 40 1568 - - - - - - - - 345 45 1569 - - - - - - - - 350 50 1570 - - - - - - - - 355 55 1571 - - - - - - - - 365 65 1572 - - - - - - - - 370 70 1573 - - - - - - - - 375 75 1574 - - - - - - - - 380 80 1575 - - - - - - - - 385 85 1576 - - - - - - - - 395 95 1577} 1578do_execsql_test joinD-76 { 1579 SELECT t1.*, t2.*, t3.*, t4.* 1580 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1581 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 1582 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1583 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1584} { 1585 6 106 206 306 106 6 206 6 - - 1586 12 112 212 312 112 12 212 12 - - 1587 18 118 218 318 118 18 218 18 - - 1588 24 124 224 324 124 24 224 24 - - 1589 30 130 230 330 130 30 230 30 330 30 1590 36 136 236 336 136 36 236 36 - - 1591 42 142 242 342 142 42 242 42 - - 1592 48 148 248 348 148 48 248 48 - - 1593 54 154 254 354 154 54 254 54 - - 1594 60 160 260 360 160 60 260 60 360 60 1595 66 166 266 366 166 66 266 66 - - 1596 72 172 272 372 172 72 272 72 - - 1597 78 178 278 378 178 78 278 78 - - 1598 84 184 284 384 184 84 284 84 - - 1599 90 190 290 390 190 90 290 90 390 90 1600 - - - - - - - - 300 0 1601 - - - - - - - - 305 5 1602 - - - - - - - - 310 10 1603 - - - - - - - - 315 15 1604 - - - - - - - - 320 20 1605 - - - - - - - - 325 25 1606 - - - - - - - - 335 35 1607 - - - - - - - - 340 40 1608 - - - - - - - - 345 45 1609 - - - - - - - - 350 50 1610 - - - - - - - - 355 55 1611 - - - - - - - - 365 65 1612 - - - - - - - - 370 70 1613 - - - - - - - - 375 75 1614 - - - - - - - - 380 80 1615 - - - - - - - - 385 85 1616 - - - - - - - - 395 95 1617} 1618do_execsql_test joinD-77 { 1619 SELECT t1.*, t2.*, t3.*, t4.* 1620 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1621 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1622 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1623 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1624} { 1625 10 110 210 310 110 10 - - 310 10 1626 20 120 220 320 120 20 - - 320 20 1627 30 130 230 330 130 30 230 30 330 30 1628 40 140 240 340 140 40 - - 340 40 1629 50 150 250 350 150 50 - - 350 50 1630 60 160 260 360 160 60 260 60 360 60 1631 70 170 270 370 170 70 - - 370 70 1632 80 180 280 380 180 80 - - 380 80 1633 90 190 290 390 190 90 290 90 390 90 1634} 1635do_execsql_test joinD-78 { 1636 SELECT t1.*, t2.*, t3.*, t4.* 1637 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 1638 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1639 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1640 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1641} { 1642 10 110 210 310 110 10 - - 310 10 1643 20 120 220 320 120 20 - - 320 20 1644 30 130 230 330 130 30 230 30 330 30 1645 40 140 240 340 140 40 - - 340 40 1646 50 150 250 350 150 50 - - 350 50 1647 60 160 260 360 160 60 260 60 360 60 1648 70 170 270 370 170 70 - - 370 70 1649 80 180 280 380 180 80 - - 380 80 1650 90 190 290 390 190 90 290 90 390 90 1651} 1652do_execsql_test joinD-79 { 1653 SELECT t1.*, t2.*, t3.*, t4.* 1654 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1655 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1656 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1657 WHERE t2.x>0 1658 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1659} { 1660 10 110 210 310 110 10 - - 310 10 1661 20 120 220 320 120 20 - - 320 20 1662 30 130 230 330 130 30 230 30 330 30 1663 40 140 240 340 140 40 - - 340 40 1664 50 150 250 350 150 50 - - 350 50 1665 60 160 260 360 160 60 260 60 360 60 1666 70 170 270 370 170 70 - - 370 70 1667 80 180 280 380 180 80 - - 380 80 1668 90 190 290 390 190 90 290 90 390 90 1669} 1670do_execsql_test joinD-80 { 1671 SELECT t1.*, t2.*, t3.*, t4.* 1672 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1673 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1674 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1675 WHERE (t2.x>0 OR t2.x IS NULL) 1676 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1677} { 1678 10 110 210 310 110 10 - - 310 10 1679 20 120 220 320 120 20 - - 320 20 1680 30 130 230 330 130 30 230 30 330 30 1681 40 140 240 340 140 40 - - 340 40 1682 50 150 250 350 150 50 - - 350 50 1683 60 160 260 360 160 60 260 60 360 60 1684 70 170 270 370 170 70 - - 370 70 1685 80 180 280 380 180 80 - - 380 80 1686 90 190 290 390 190 90 290 90 390 90 1687} 1688do_execsql_test joinD-81 { 1689 SELECT t1.*, t2.*, t3.*, t4.* 1690 FROM t1 INNER JOIN t2 ON true 1691 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1692 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1693 WHERE t1.b=t2.b AND t2.x>0 1694 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1695} { 1696 10 110 210 310 110 10 - - 310 10 1697 20 120 220 320 120 20 - - 320 20 1698 30 130 230 330 130 30 230 30 330 30 1699 40 140 240 340 140 40 - - 340 40 1700 50 150 250 350 150 50 - - 350 50 1701 60 160 260 360 160 60 260 60 360 60 1702 70 170 270 370 170 70 - - 370 70 1703 80 180 280 380 180 80 - - 380 80 1704 90 190 290 390 190 90 290 90 390 90 1705} 1706do_execsql_test joinD-82 { 1707 SELECT t1.*, t2.*, t3.*, t4.* 1708 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1709 LEFT JOIN t3 ON t1.c=t3.c 1710 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1711 WHERE t3.y>0 1712 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1713} { 1714 30 130 230 330 130 30 230 30 330 30 1715 60 160 260 360 160 60 260 60 360 60 1716 90 190 290 390 190 90 290 90 390 90 1717} 1718do_execsql_test joinD-83 { 1719 SELECT t1.*, t2.*, t3.*, t4.* 1720 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1721 LEFT JOIN t3 ON t1.c=t3.c 1722 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1723 WHERE t3.y>0 OR t3.y IS NULL 1724 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1725} { 1726 10 110 210 310 110 10 - - 310 10 1727 20 120 220 320 120 20 - - 320 20 1728 30 130 230 330 130 30 230 30 330 30 1729 40 140 240 340 140 40 - - 340 40 1730 50 150 250 350 150 50 - - 350 50 1731 60 160 260 360 160 60 260 60 360 60 1732 70 170 270 370 170 70 - - 370 70 1733 80 180 280 380 180 80 - - 380 80 1734 90 190 290 390 190 90 290 90 390 90 1735} 1736do_execsql_test joinD-84 { 1737 SELECT t1.*, t2.*, t3.*, t4.* 1738 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1739 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1740 INNER JOIN t4 ON t1.d=t4.d 1741 WHERE t4.z>0 1742 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1743} { 1744 10 110 210 310 110 10 - - 310 10 1745 20 120 220 320 120 20 - - 320 20 1746 30 130 230 330 130 30 230 30 330 30 1747 40 140 240 340 140 40 - - 340 40 1748 50 150 250 350 150 50 - - 350 50 1749 60 160 260 360 160 60 260 60 360 60 1750 70 170 270 370 170 70 - - 370 70 1751 80 180 280 380 180 80 - - 380 80 1752 90 190 290 390 190 90 290 90 390 90 1753} 1754do_execsql_test joinD-85 { 1755 SELECT t1.*, t2.*, t3.*, t4.* 1756 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1757 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1758 INNER JOIN t4 ON t1.d=t4.d 1759 WHERE t4.z IS NULL OR t4.z>0 1760 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1761} { 1762 10 110 210 310 110 10 - - 310 10 1763 20 120 220 320 120 20 - - 320 20 1764 30 130 230 330 130 30 230 30 330 30 1765 40 140 240 340 140 40 - - 340 40 1766 50 150 250 350 150 50 - - 350 50 1767 60 160 260 360 160 60 260 60 360 60 1768 70 170 270 370 170 70 - - 370 70 1769 80 180 280 380 180 80 - - 380 80 1770 90 190 290 390 190 90 290 90 390 90 1771} 1772do_execsql_test joinD-86 { 1773 SELECT t1.*, t2.*, t3.*, t4.* 1774 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1775 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1776 INNER JOIN t4 ON t1.d=t4.d 1777 WHERE t2.x>0 AND t4.z>0 1778 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1779} { 1780 10 110 210 310 110 10 - - 310 10 1781 20 120 220 320 120 20 - - 320 20 1782 30 130 230 330 130 30 230 30 330 30 1783 40 140 240 340 140 40 - - 340 40 1784 50 150 250 350 150 50 - - 350 50 1785 60 160 260 360 160 60 260 60 360 60 1786 70 170 270 370 170 70 - - 370 70 1787 80 180 280 380 180 80 - - 380 80 1788 90 190 290 390 190 90 290 90 390 90 1789} 1790do_execsql_test joinD-87 { 1791 SELECT t1.*, t2.*, t3.*, t4.* 1792 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1793 LEFT JOIN t3 ON t1.c=t3.c 1794 INNER JOIN t4 ON t1.d=t4.d 1795 WHERE t4.z>0 AND t3.y>0 1796 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1797} { 1798 30 130 230 330 130 30 230 30 330 30 1799 60 160 260 360 160 60 260 60 360 60 1800 90 190 290 390 190 90 290 90 390 90 1801} 1802do_execsql_test joinD-88 { 1803 SELECT t1.*, t2.*, t3.*, t4.* 1804 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1805 LEFT JOIN t3 ON t1.c=t3.c 1806 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1807 WHERE t2.x>0 AND t3.y>0 1808 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1809} { 1810 30 130 230 330 130 30 230 30 330 30 1811 60 160 260 360 160 60 260 60 360 60 1812 90 190 290 390 190 90 290 90 390 90 1813} 1814do_execsql_test joinD-89 { 1815 SELECT t1.*, t2.*, t3.*, t4.* 1816 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1817 LEFT JOIN t3 ON t1.c=t3.c 1818 INNER JOIN t4 ON t1.d=t4.d 1819 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 1820 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1821} { 1822 30 130 230 330 130 30 230 30 330 30 1823 60 160 260 360 160 60 260 60 360 60 1824 90 190 290 390 190 90 290 90 390 90 1825} 1826do_execsql_test joinD-90 { 1827 SELECT t1.*, t2.*, t3.*, t4.* 1828 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 1829 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 1830 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 1831 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1832} { 1833 10 110 210 310 110 10 - - 310 10 1834 20 120 220 320 120 20 - - 320 20 1835 30 130 230 330 130 30 230 30 330 30 1836 40 140 240 340 140 40 - - 340 40 1837 50 150 250 350 150 50 - - 350 50 1838 60 160 260 360 160 60 260 60 360 60 1839 70 170 270 370 170 70 - - 370 70 1840 80 180 280 380 180 80 - - 380 80 1841 90 190 290 390 190 90 290 90 390 90 1842} 1843do_execsql_test joinD-91 { 1844 SELECT t1.*, t2.*, t3.*, t4.* 1845 FROM t1 INNER JOIN t2 ON t2.x>0 1846 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 1847 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 1848 WHERE t1.b IS NOT DISTINCT FROM t2.b 1849 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1850} { 1851 10 110 210 310 110 10 - - 310 10 1852 20 120 220 320 120 20 - - 320 20 1853 30 130 230 330 130 30 230 30 330 30 1854 40 140 240 340 140 40 - - 340 40 1855 50 150 250 350 150 50 - - 350 50 1856 60 160 260 360 160 60 260 60 360 60 1857 70 170 270 370 170 70 - - 370 70 1858 80 180 280 380 180 80 - - 380 80 1859 90 190 290 390 190 90 290 90 390 90 1860} 1861do_execsql_test joinD-92 { 1862 SELECT t1.*, t2.*, t3.*, t4.* 1863 FROM t1 INNER JOIN t2 ON t2.x>0 1864 LEFT JOIN t3 ON t3.y>0 1865 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 1866 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 1867 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1868} { 1869 30 130 230 330 130 30 230 30 330 30 1870 60 160 260 360 160 60 260 60 360 60 1871 90 190 290 390 190 90 290 90 390 90 1872} 1873do_execsql_test joinD-93 { 1874 SELECT t1.*, t2.*, t3.*, t4.* 1875 FROM t1 INNER JOIN t2 ON t2.x>0 1876 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 1877 INNER JOIN t4 ON t4.z>0 1878 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 1879 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1880} { 1881 10 110 210 310 110 10 - - 310 10 1882 20 120 220 320 120 20 - - 320 20 1883 30 130 230 330 130 30 230 30 330 30 1884 40 140 240 340 140 40 - - 340 40 1885 50 150 250 350 150 50 - - 350 50 1886 60 160 260 360 160 60 260 60 360 60 1887 70 170 270 370 170 70 - - 370 70 1888 80 180 280 380 180 80 - - 380 80 1889 90 190 290 390 190 90 290 90 390 90 1890} 1891do_execsql_test joinD-94 { 1892 SELECT t1.*, t2.*, t3.*, t4.* 1893 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 1894 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1895 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1896 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1897} { 1898 10 110 210 310 110 10 - - 310 10 1899 20 120 220 320 120 20 - - 320 20 1900 30 130 230 330 130 30 230 30 330 30 1901 40 140 240 340 140 40 - - 340 40 1902 50 150 250 350 150 50 - - 350 50 1903 60 160 260 360 160 60 260 60 360 60 1904 70 170 270 370 170 70 - - 370 70 1905 80 180 280 380 180 80 - - 380 80 1906 90 190 290 390 190 90 290 90 390 90 1907} 1908do_execsql_test joinD-95 { 1909 SELECT t1.*, t2.*, t3.*, t4.* 1910 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1911 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 1912 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1913 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1914} { 1915 10 110 210 310 110 10 - - 310 10 1916 20 120 220 320 120 20 - - 320 20 1917 30 130 230 330 130 30 230 30 330 30 1918 40 140 240 340 140 40 - - 340 40 1919 50 150 250 350 150 50 - - 350 50 1920 60 160 260 360 160 60 260 60 360 60 1921 70 170 270 370 170 70 - - 370 70 1922 80 180 280 380 180 80 - - 380 80 1923 90 190 290 390 190 90 290 90 390 90 1924} 1925do_execsql_test joinD-96 { 1926 SELECT t1.*, t2.*, t3.*, t4.* 1927 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1928 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1929 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 1930 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1931} { 1932 2 102 202 302 102 2 - - - - 1933 4 104 204 304 104 4 - - - - 1934 6 106 206 306 106 6 206 6 - - 1935 8 108 208 308 108 8 - - - - 1936 10 110 210 310 110 10 - - 310 10 1937 12 112 212 312 112 12 212 12 - - 1938 14 114 214 314 114 14 - - - - 1939 16 116 216 316 116 16 - - - - 1940 18 118 218 318 118 18 218 18 - - 1941 20 120 220 320 120 20 - - 320 20 1942 22 122 222 322 122 22 - - - - 1943 24 124 224 324 124 24 224 24 - - 1944 26 126 226 326 126 26 - - - - 1945 28 128 228 328 128 28 - - - - 1946 30 130 230 330 130 30 230 30 330 30 1947 32 132 232 332 132 32 - - - - 1948 34 134 234 334 134 34 - - - - 1949 36 136 236 336 136 36 236 36 - - 1950 38 138 238 338 138 38 - - - - 1951 40 140 240 340 140 40 - - 340 40 1952 42 142 242 342 142 42 242 42 - - 1953 44 144 244 344 144 44 - - - - 1954 46 146 246 346 146 46 - - - - 1955 48 148 248 348 148 48 248 48 - - 1956 50 150 250 350 150 50 - - 350 50 1957 52 152 252 352 152 52 - - - - 1958 54 154 254 354 154 54 254 54 - - 1959 56 156 256 356 156 56 - - - - 1960 58 158 258 358 158 58 - - - - 1961 60 160 260 360 160 60 260 60 360 60 1962 62 162 262 362 162 62 - - - - 1963 64 164 264 364 164 64 - - - - 1964 66 166 266 366 166 66 266 66 - - 1965 68 168 268 368 168 68 - - - - 1966 70 170 270 370 170 70 - - 370 70 1967 72 172 272 372 172 72 272 72 - - 1968 74 174 274 374 174 74 - - - - 1969 76 176 276 376 176 76 - - - - 1970 78 178 278 378 178 78 278 78 - - 1971 80 180 280 380 180 80 - - 380 80 1972 82 182 282 382 182 82 - - - - 1973 84 184 284 384 184 84 284 84 - - 1974 86 186 286 386 186 86 - - - - 1975 88 188 288 388 188 88 - - - - 1976 90 190 290 390 190 90 290 90 390 90 1977 92 192 292 392 192 92 - - - - 1978 94 194 294 394 194 94 - - - - 1979} 1980do_execsql_test joinD-97 { 1981 SELECT t1.*, t2.*, t3.*, t4.* 1982 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 1983 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1984 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 1985 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1986} { 1987 2 102 202 302 102 2 - - - - 1988 4 104 204 304 104 4 - - - - 1989 6 106 206 306 106 6 206 6 - - 1990 8 108 208 308 108 8 - - - - 1991 10 110 210 310 110 10 - - 310 10 1992 12 112 212 312 112 12 212 12 - - 1993 14 114 214 314 114 14 - - - - 1994 16 116 216 316 116 16 - - - - 1995 18 118 218 318 118 18 218 18 - - 1996 20 120 220 320 120 20 - - 320 20 1997 22 122 222 322 122 22 - - - - 1998 24 124 224 324 124 24 224 24 - - 1999 26 126 226 326 126 26 - - - - 2000 28 128 228 328 128 28 - - - - 2001 30 130 230 330 130 30 230 30 330 30 2002 32 132 232 332 132 32 - - - - 2003 34 134 234 334 134 34 - - - - 2004 36 136 236 336 136 36 236 36 - - 2005 38 138 238 338 138 38 - - - - 2006 40 140 240 340 140 40 - - 340 40 2007 42 142 242 342 142 42 242 42 - - 2008 44 144 244 344 144 44 - - - - 2009 46 146 246 346 146 46 - - - - 2010 48 148 248 348 148 48 248 48 - - 2011 50 150 250 350 150 50 - - 350 50 2012 52 152 252 352 152 52 - - - - 2013 54 154 254 354 154 54 254 54 - - 2014 56 156 256 356 156 56 - - - - 2015 58 158 258 358 158 58 - - - - 2016 60 160 260 360 160 60 260 60 360 60 2017 62 162 262 362 162 62 - - - - 2018 64 164 264 364 164 64 - - - - 2019 66 166 266 366 166 66 266 66 - - 2020 68 168 268 368 168 68 - - - - 2021 70 170 270 370 170 70 - - 370 70 2022 72 172 272 372 172 72 272 72 - - 2023 74 174 274 374 174 74 - - - - 2024 76 176 276 376 176 76 - - - - 2025 78 178 278 378 178 78 278 78 - - 2026 80 180 280 380 180 80 - - 380 80 2027 82 182 282 382 182 82 - - - - 2028 84 184 284 384 184 84 284 84 - - 2029 86 186 286 386 186 86 - - - - 2030 88 188 288 388 188 88 - - - - 2031 90 190 290 390 190 90 290 90 390 90 2032 92 192 292 392 192 92 - - - - 2033 94 194 294 394 194 94 - - - - 2034} 2035do_execsql_test joinD-98 { 2036 SELECT t1.*, t2.*, t3.*, t4.* 2037 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2038 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2039 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 2040 WHERE t2.x>0 2041 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2042} { 2043 2 102 202 302 102 2 - - - - 2044 4 104 204 304 104 4 - - - - 2045 6 106 206 306 106 6 206 6 - - 2046 8 108 208 308 108 8 - - - - 2047 10 110 210 310 110 10 - - 310 10 2048 12 112 212 312 112 12 212 12 - - 2049 14 114 214 314 114 14 - - - - 2050 16 116 216 316 116 16 - - - - 2051 18 118 218 318 118 18 218 18 - - 2052 20 120 220 320 120 20 - - 320 20 2053 22 122 222 322 122 22 - - - - 2054 24 124 224 324 124 24 224 24 - - 2055 26 126 226 326 126 26 - - - - 2056 28 128 228 328 128 28 - - - - 2057 30 130 230 330 130 30 230 30 330 30 2058 32 132 232 332 132 32 - - - - 2059 34 134 234 334 134 34 - - - - 2060 36 136 236 336 136 36 236 36 - - 2061 38 138 238 338 138 38 - - - - 2062 40 140 240 340 140 40 - - 340 40 2063 42 142 242 342 142 42 242 42 - - 2064 44 144 244 344 144 44 - - - - 2065 46 146 246 346 146 46 - - - - 2066 48 148 248 348 148 48 248 48 - - 2067 50 150 250 350 150 50 - - 350 50 2068 52 152 252 352 152 52 - - - - 2069 54 154 254 354 154 54 254 54 - - 2070 56 156 256 356 156 56 - - - - 2071 58 158 258 358 158 58 - - - - 2072 60 160 260 360 160 60 260 60 360 60 2073 62 162 262 362 162 62 - - - - 2074 64 164 264 364 164 64 - - - - 2075 66 166 266 366 166 66 266 66 - - 2076 68 168 268 368 168 68 - - - - 2077 70 170 270 370 170 70 - - 370 70 2078 72 172 272 372 172 72 272 72 - - 2079 74 174 274 374 174 74 - - - - 2080 76 176 276 376 176 76 - - - - 2081 78 178 278 378 178 78 278 78 - - 2082 80 180 280 380 180 80 - - 380 80 2083 82 182 282 382 182 82 - - - - 2084 84 184 284 384 184 84 284 84 - - 2085 86 186 286 386 186 86 - - - - 2086 88 188 288 388 188 88 - - - - 2087 90 190 290 390 190 90 290 90 390 90 2088 92 192 292 392 192 92 - - - - 2089 94 194 294 394 194 94 - - - - 2090} 2091do_execsql_test joinD-99 { 2092 SELECT t1.*, t2.*, t3.*, t4.* 2093 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2094 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2095 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 2096 WHERE (t2.x>0 OR t2.x IS NULL) 2097 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2098} { 2099 2 102 202 302 102 2 - - - - 2100 4 104 204 304 104 4 - - - - 2101 6 106 206 306 106 6 206 6 - - 2102 8 108 208 308 108 8 - - - - 2103 10 110 210 310 110 10 - - 310 10 2104 12 112 212 312 112 12 212 12 - - 2105 14 114 214 314 114 14 - - - - 2106 16 116 216 316 116 16 - - - - 2107 18 118 218 318 118 18 218 18 - - 2108 20 120 220 320 120 20 - - 320 20 2109 22 122 222 322 122 22 - - - - 2110 24 124 224 324 124 24 224 24 - - 2111 26 126 226 326 126 26 - - - - 2112 28 128 228 328 128 28 - - - - 2113 30 130 230 330 130 30 230 30 330 30 2114 32 132 232 332 132 32 - - - - 2115 34 134 234 334 134 34 - - - - 2116 36 136 236 336 136 36 236 36 - - 2117 38 138 238 338 138 38 - - - - 2118 40 140 240 340 140 40 - - 340 40 2119 42 142 242 342 142 42 242 42 - - 2120 44 144 244 344 144 44 - - - - 2121 46 146 246 346 146 46 - - - - 2122 48 148 248 348 148 48 248 48 - - 2123 50 150 250 350 150 50 - - 350 50 2124 52 152 252 352 152 52 - - - - 2125 54 154 254 354 154 54 254 54 - - 2126 56 156 256 356 156 56 - - - - 2127 58 158 258 358 158 58 - - - - 2128 60 160 260 360 160 60 260 60 360 60 2129 62 162 262 362 162 62 - - - - 2130 64 164 264 364 164 64 - - - - 2131 66 166 266 366 166 66 266 66 - - 2132 68 168 268 368 168 68 - - - - 2133 70 170 270 370 170 70 - - 370 70 2134 72 172 272 372 172 72 272 72 - - 2135 74 174 274 374 174 74 - - - - 2136 76 176 276 376 176 76 - - - - 2137 78 178 278 378 178 78 278 78 - - 2138 80 180 280 380 180 80 - - 380 80 2139 82 182 282 382 182 82 - - - - 2140 84 184 284 384 184 84 284 84 - - 2141 86 186 286 386 186 86 - - - - 2142 88 188 288 388 188 88 - - - - 2143 90 190 290 390 190 90 290 90 390 90 2144 92 192 292 392 192 92 - - - - 2145 94 194 294 394 194 94 - - - - 2146} 2147do_execsql_test joinD-100 { 2148 SELECT t1.*, t2.*, t3.*, t4.* 2149 FROM t1 INNER JOIN t2 ON true 2150 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2151 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 2152 WHERE t1.b=t2.b AND t2.x>0 2153 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2154} { 2155 2 102 202 302 102 2 - - - - 2156 4 104 204 304 104 4 - - - - 2157 6 106 206 306 106 6 206 6 - - 2158 8 108 208 308 108 8 - - - - 2159 10 110 210 310 110 10 - - 310 10 2160 12 112 212 312 112 12 212 12 - - 2161 14 114 214 314 114 14 - - - - 2162 16 116 216 316 116 16 - - - - 2163 18 118 218 318 118 18 218 18 - - 2164 20 120 220 320 120 20 - - 320 20 2165 22 122 222 322 122 22 - - - - 2166 24 124 224 324 124 24 224 24 - - 2167 26 126 226 326 126 26 - - - - 2168 28 128 228 328 128 28 - - - - 2169 30 130 230 330 130 30 230 30 330 30 2170 32 132 232 332 132 32 - - - - 2171 34 134 234 334 134 34 - - - - 2172 36 136 236 336 136 36 236 36 - - 2173 38 138 238 338 138 38 - - - - 2174 40 140 240 340 140 40 - - 340 40 2175 42 142 242 342 142 42 242 42 - - 2176 44 144 244 344 144 44 - - - - 2177 46 146 246 346 146 46 - - - - 2178 48 148 248 348 148 48 248 48 - - 2179 50 150 250 350 150 50 - - 350 50 2180 52 152 252 352 152 52 - - - - 2181 54 154 254 354 154 54 254 54 - - 2182 56 156 256 356 156 56 - - - - 2183 58 158 258 358 158 58 - - - - 2184 60 160 260 360 160 60 260 60 360 60 2185 62 162 262 362 162 62 - - - - 2186 64 164 264 364 164 64 - - - - 2187 66 166 266 366 166 66 266 66 - - 2188 68 168 268 368 168 68 - - - - 2189 70 170 270 370 170 70 - - 370 70 2190 72 172 272 372 172 72 272 72 - - 2191 74 174 274 374 174 74 - - - - 2192 76 176 276 376 176 76 - - - - 2193 78 178 278 378 178 78 278 78 - - 2194 80 180 280 380 180 80 - - 380 80 2195 82 182 282 382 182 82 - - - - 2196 84 184 284 384 184 84 284 84 - - 2197 86 186 286 386 186 86 - - - - 2198 88 188 288 388 188 88 - - - - 2199 90 190 290 390 190 90 290 90 390 90 2200 92 192 292 392 192 92 - - - - 2201 94 194 294 394 194 94 - - - - 2202} 2203do_execsql_test joinD-101 { 2204 SELECT t1.*, t2.*, t3.*, t4.* 2205 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2206 LEFT JOIN t3 ON t1.c=t3.c 2207 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 2208 WHERE t3.y>0 2209 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2210} { 2211 6 106 206 306 106 6 206 6 - - 2212 12 112 212 312 112 12 212 12 - - 2213 18 118 218 318 118 18 218 18 - - 2214 24 124 224 324 124 24 224 24 - - 2215 30 130 230 330 130 30 230 30 330 30 2216 36 136 236 336 136 36 236 36 - - 2217 42 142 242 342 142 42 242 42 - - 2218 48 148 248 348 148 48 248 48 - - 2219 54 154 254 354 154 54 254 54 - - 2220 60 160 260 360 160 60 260 60 360 60 2221 66 166 266 366 166 66 266 66 - - 2222 72 172 272 372 172 72 272 72 - - 2223 78 178 278 378 178 78 278 78 - - 2224 84 184 284 384 184 84 284 84 - - 2225 90 190 290 390 190 90 290 90 390 90 2226} 2227do_execsql_test joinD-102 { 2228 SELECT t1.*, t2.*, t3.*, t4.* 2229 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2230 LEFT JOIN t3 ON t1.c=t3.c 2231 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 2232 WHERE t3.y>0 OR t3.y IS NULL 2233 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2234} { 2235 2 102 202 302 102 2 - - - - 2236 4 104 204 304 104 4 - - - - 2237 6 106 206 306 106 6 206 6 - - 2238 8 108 208 308 108 8 - - - - 2239 10 110 210 310 110 10 - - 310 10 2240 12 112 212 312 112 12 212 12 - - 2241 14 114 214 314 114 14 - - - - 2242 16 116 216 316 116 16 - - - - 2243 18 118 218 318 118 18 218 18 - - 2244 20 120 220 320 120 20 - - 320 20 2245 22 122 222 322 122 22 - - - - 2246 24 124 224 324 124 24 224 24 - - 2247 26 126 226 326 126 26 - - - - 2248 28 128 228 328 128 28 - - - - 2249 30 130 230 330 130 30 230 30 330 30 2250 32 132 232 332 132 32 - - - - 2251 34 134 234 334 134 34 - - - - 2252 36 136 236 336 136 36 236 36 - - 2253 38 138 238 338 138 38 - - - - 2254 40 140 240 340 140 40 - - 340 40 2255 42 142 242 342 142 42 242 42 - - 2256 44 144 244 344 144 44 - - - - 2257 46 146 246 346 146 46 - - - - 2258 48 148 248 348 148 48 248 48 - - 2259 50 150 250 350 150 50 - - 350 50 2260 52 152 252 352 152 52 - - - - 2261 54 154 254 354 154 54 254 54 - - 2262 56 156 256 356 156 56 - - - - 2263 58 158 258 358 158 58 - - - - 2264 60 160 260 360 160 60 260 60 360 60 2265 62 162 262 362 162 62 - - - - 2266 64 164 264 364 164 64 - - - - 2267 66 166 266 366 166 66 266 66 - - 2268 68 168 268 368 168 68 - - - - 2269 70 170 270 370 170 70 - - 370 70 2270 72 172 272 372 172 72 272 72 - - 2271 74 174 274 374 174 74 - - - - 2272 76 176 276 376 176 76 - - - - 2273 78 178 278 378 178 78 278 78 - - 2274 80 180 280 380 180 80 - - 380 80 2275 82 182 282 382 182 82 - - - - 2276 84 184 284 384 184 84 284 84 - - 2277 86 186 286 386 186 86 - - - - 2278 88 188 288 388 188 88 - - - - 2279 90 190 290 390 190 90 290 90 390 90 2280 92 192 292 392 192 92 - - - - 2281 94 194 294 394 194 94 - - - - 2282} 2283do_execsql_test joinD-103 { 2284 SELECT t1.*, t2.*, t3.*, t4.* 2285 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2286 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2287 LEFT JOIN t4 ON t1.d=t4.d 2288 WHERE t4.z>0 2289 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2290} { 2291 10 110 210 310 110 10 - - 310 10 2292 20 120 220 320 120 20 - - 320 20 2293 30 130 230 330 130 30 230 30 330 30 2294 40 140 240 340 140 40 - - 340 40 2295 50 150 250 350 150 50 - - 350 50 2296 60 160 260 360 160 60 260 60 360 60 2297 70 170 270 370 170 70 - - 370 70 2298 80 180 280 380 180 80 - - 380 80 2299 90 190 290 390 190 90 290 90 390 90 2300} 2301do_execsql_test joinD-104 { 2302 SELECT t1.*, t2.*, t3.*, t4.* 2303 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2304 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2305 LEFT JOIN t4 ON t1.d=t4.d 2306 WHERE t4.z IS NULL OR t4.z>0 2307 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2308} { 2309 2 102 202 302 102 2 - - - - 2310 4 104 204 304 104 4 - - - - 2311 6 106 206 306 106 6 206 6 - - 2312 8 108 208 308 108 8 - - - - 2313 10 110 210 310 110 10 - - 310 10 2314 12 112 212 312 112 12 212 12 - - 2315 14 114 214 314 114 14 - - - - 2316 16 116 216 316 116 16 - - - - 2317 18 118 218 318 118 18 218 18 - - 2318 20 120 220 320 120 20 - - 320 20 2319 22 122 222 322 122 22 - - - - 2320 24 124 224 324 124 24 224 24 - - 2321 26 126 226 326 126 26 - - - - 2322 28 128 228 328 128 28 - - - - 2323 30 130 230 330 130 30 230 30 330 30 2324 32 132 232 332 132 32 - - - - 2325 34 134 234 334 134 34 - - - - 2326 36 136 236 336 136 36 236 36 - - 2327 38 138 238 338 138 38 - - - - 2328 40 140 240 340 140 40 - - 340 40 2329 42 142 242 342 142 42 242 42 - - 2330 44 144 244 344 144 44 - - - - 2331 46 146 246 346 146 46 - - - - 2332 48 148 248 348 148 48 248 48 - - 2333 50 150 250 350 150 50 - - 350 50 2334 52 152 252 352 152 52 - - - - 2335 54 154 254 354 154 54 254 54 - - 2336 56 156 256 356 156 56 - - - - 2337 58 158 258 358 158 58 - - - - 2338 60 160 260 360 160 60 260 60 360 60 2339 62 162 262 362 162 62 - - - - 2340 64 164 264 364 164 64 - - - - 2341 66 166 266 366 166 66 266 66 - - 2342 68 168 268 368 168 68 - - - - 2343 70 170 270 370 170 70 - - 370 70 2344 72 172 272 372 172 72 272 72 - - 2345 74 174 274 374 174 74 - - - - 2346 76 176 276 376 176 76 - - - - 2347 78 178 278 378 178 78 278 78 - - 2348 80 180 280 380 180 80 - - 380 80 2349 82 182 282 382 182 82 - - - - 2350 84 184 284 384 184 84 284 84 - - 2351 86 186 286 386 186 86 - - - - 2352 88 188 288 388 188 88 - - - - 2353 90 190 290 390 190 90 290 90 390 90 2354 92 192 292 392 192 92 - - - - 2355 94 194 294 394 194 94 - - - - 2356} 2357do_execsql_test joinD-105 { 2358 SELECT t1.*, t2.*, t3.*, t4.* 2359 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2360 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2361 LEFT JOIN t4 ON t1.d=t4.d 2362 WHERE t2.x>0 AND t4.z>0 2363 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2364} { 2365 10 110 210 310 110 10 - - 310 10 2366 20 120 220 320 120 20 - - 320 20 2367 30 130 230 330 130 30 230 30 330 30 2368 40 140 240 340 140 40 - - 340 40 2369 50 150 250 350 150 50 - - 350 50 2370 60 160 260 360 160 60 260 60 360 60 2371 70 170 270 370 170 70 - - 370 70 2372 80 180 280 380 180 80 - - 380 80 2373 90 190 290 390 190 90 290 90 390 90 2374} 2375do_execsql_test joinD-106 { 2376 SELECT t1.*, t2.*, t3.*, t4.* 2377 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2378 LEFT JOIN t3 ON t1.c=t3.c 2379 LEFT JOIN t4 ON t1.d=t4.d 2380 WHERE t4.z>0 AND t3.y>0 2381 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2382} { 2383 30 130 230 330 130 30 230 30 330 30 2384 60 160 260 360 160 60 260 60 360 60 2385 90 190 290 390 190 90 290 90 390 90 2386} 2387do_execsql_test joinD-107 { 2388 SELECT t1.*, t2.*, t3.*, t4.* 2389 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2390 LEFT JOIN t3 ON t1.c=t3.c 2391 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 2392 WHERE t2.x>0 AND t3.y>0 2393 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2394} { 2395 6 106 206 306 106 6 206 6 - - 2396 12 112 212 312 112 12 212 12 - - 2397 18 118 218 318 118 18 218 18 - - 2398 24 124 224 324 124 24 224 24 - - 2399 30 130 230 330 130 30 230 30 330 30 2400 36 136 236 336 136 36 236 36 - - 2401 42 142 242 342 142 42 242 42 - - 2402 48 148 248 348 148 48 248 48 - - 2403 54 154 254 354 154 54 254 54 - - 2404 60 160 260 360 160 60 260 60 360 60 2405 66 166 266 366 166 66 266 66 - - 2406 72 172 272 372 172 72 272 72 - - 2407 78 178 278 378 178 78 278 78 - - 2408 84 184 284 384 184 84 284 84 - - 2409 90 190 290 390 190 90 290 90 390 90 2410} 2411do_execsql_test joinD-108 { 2412 SELECT t1.*, t2.*, t3.*, t4.* 2413 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2414 LEFT JOIN t3 ON t1.c=t3.c 2415 LEFT JOIN t4 ON t1.d=t4.d 2416 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 2417 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2418} { 2419 30 130 230 330 130 30 230 30 330 30 2420 60 160 260 360 160 60 260 60 360 60 2421 90 190 290 390 190 90 290 90 390 90 2422} 2423do_execsql_test joinD-109 { 2424 SELECT t1.*, t2.*, t3.*, t4.* 2425 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 2426 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 2427 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 2428 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2429} { 2430 2 102 202 302 102 2 - - - - 2431 4 104 204 304 104 4 - - - - 2432 6 106 206 306 106 6 206 6 - - 2433 8 108 208 308 108 8 - - - - 2434 10 110 210 310 110 10 - - 310 10 2435 12 112 212 312 112 12 212 12 - - 2436 14 114 214 314 114 14 - - - - 2437 16 116 216 316 116 16 - - - - 2438 18 118 218 318 118 18 218 18 - - 2439 20 120 220 320 120 20 - - 320 20 2440 22 122 222 322 122 22 - - - - 2441 24 124 224 324 124 24 224 24 - - 2442 26 126 226 326 126 26 - - - - 2443 28 128 228 328 128 28 - - - - 2444 30 130 230 330 130 30 230 30 330 30 2445 32 132 232 332 132 32 - - - - 2446 34 134 234 334 134 34 - - - - 2447 36 136 236 336 136 36 236 36 - - 2448 38 138 238 338 138 38 - - - - 2449 40 140 240 340 140 40 - - 340 40 2450 42 142 242 342 142 42 242 42 - - 2451 44 144 244 344 144 44 - - - - 2452 46 146 246 346 146 46 - - - - 2453 48 148 248 348 148 48 248 48 - - 2454 50 150 250 350 150 50 - - 350 50 2455 52 152 252 352 152 52 - - - - 2456 54 154 254 354 154 54 254 54 - - 2457 56 156 256 356 156 56 - - - - 2458 58 158 258 358 158 58 - - - - 2459 60 160 260 360 160 60 260 60 360 60 2460 62 162 262 362 162 62 - - - - 2461 64 164 264 364 164 64 - - - - 2462 66 166 266 366 166 66 266 66 - - 2463 68 168 268 368 168 68 - - - - 2464 70 170 270 370 170 70 - - 370 70 2465 72 172 272 372 172 72 272 72 - - 2466 74 174 274 374 174 74 - - - - 2467 76 176 276 376 176 76 - - - - 2468 78 178 278 378 178 78 278 78 - - 2469 80 180 280 380 180 80 - - 380 80 2470 82 182 282 382 182 82 - - - - 2471 84 184 284 384 184 84 284 84 - - 2472 86 186 286 386 186 86 - - - - 2473 88 188 288 388 188 88 - - - - 2474 90 190 290 390 190 90 290 90 390 90 2475 92 192 292 392 192 92 - - - - 2476 94 194 294 394 194 94 - - - - 2477} 2478do_execsql_test joinD-110 { 2479 SELECT t1.*, t2.*, t3.*, t4.* 2480 FROM t1 INNER JOIN t2 ON t2.x>0 2481 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 2482 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 2483 WHERE t1.b IS NOT DISTINCT FROM t2.b 2484 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2485} { 2486 2 102 202 302 102 2 - - - - 2487 4 104 204 304 104 4 - - - - 2488 6 106 206 306 106 6 206 6 - - 2489 8 108 208 308 108 8 - - - - 2490 10 110 210 310 110 10 - - 310 10 2491 12 112 212 312 112 12 212 12 - - 2492 14 114 214 314 114 14 - - - - 2493 16 116 216 316 116 16 - - - - 2494 18 118 218 318 118 18 218 18 - - 2495 20 120 220 320 120 20 - - 320 20 2496 22 122 222 322 122 22 - - - - 2497 24 124 224 324 124 24 224 24 - - 2498 26 126 226 326 126 26 - - - - 2499 28 128 228 328 128 28 - - - - 2500 30 130 230 330 130 30 230 30 330 30 2501 32 132 232 332 132 32 - - - - 2502 34 134 234 334 134 34 - - - - 2503 36 136 236 336 136 36 236 36 - - 2504 38 138 238 338 138 38 - - - - 2505 40 140 240 340 140 40 - - 340 40 2506 42 142 242 342 142 42 242 42 - - 2507 44 144 244 344 144 44 - - - - 2508 46 146 246 346 146 46 - - - - 2509 48 148 248 348 148 48 248 48 - - 2510 50 150 250 350 150 50 - - 350 50 2511 52 152 252 352 152 52 - - - - 2512 54 154 254 354 154 54 254 54 - - 2513 56 156 256 356 156 56 - - - - 2514 58 158 258 358 158 58 - - - - 2515 60 160 260 360 160 60 260 60 360 60 2516 62 162 262 362 162 62 - - - - 2517 64 164 264 364 164 64 - - - - 2518 66 166 266 366 166 66 266 66 - - 2519 68 168 268 368 168 68 - - - - 2520 70 170 270 370 170 70 - - 370 70 2521 72 172 272 372 172 72 272 72 - - 2522 74 174 274 374 174 74 - - - - 2523 76 176 276 376 176 76 - - - - 2524 78 178 278 378 178 78 278 78 - - 2525 80 180 280 380 180 80 - - 380 80 2526 82 182 282 382 182 82 - - - - 2527 84 184 284 384 184 84 284 84 - - 2528 86 186 286 386 186 86 - - - - 2529 88 188 288 388 188 88 - - - - 2530 90 190 290 390 190 90 290 90 390 90 2531 92 192 292 392 192 92 - - - - 2532 94 194 294 394 194 94 - - - - 2533} 2534do_execsql_test joinD-111 { 2535 SELECT t1.*, t2.*, t3.*, t4.* 2536 FROM t1 INNER JOIN t2 ON t2.x>0 2537 LEFT JOIN t3 ON t3.y>0 2538 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 2539 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 2540 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2541} { 2542 6 106 206 306 106 6 206 6 - - 2543 12 112 212 312 112 12 212 12 - - 2544 18 118 218 318 118 18 218 18 - - 2545 24 124 224 324 124 24 224 24 - - 2546 30 130 230 330 130 30 230 30 330 30 2547 36 136 236 336 136 36 236 36 - - 2548 42 142 242 342 142 42 242 42 - - 2549 48 148 248 348 148 48 248 48 - - 2550 54 154 254 354 154 54 254 54 - - 2551 60 160 260 360 160 60 260 60 360 60 2552 66 166 266 366 166 66 266 66 - - 2553 72 172 272 372 172 72 272 72 - - 2554 78 178 278 378 178 78 278 78 - - 2555 84 184 284 384 184 84 284 84 - - 2556 90 190 290 390 190 90 290 90 390 90 2557} 2558do_execsql_test joinD-112 { 2559 SELECT t1.*, t2.*, t3.*, t4.* 2560 FROM t1 INNER JOIN t2 ON t2.x>0 2561 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 2562 LEFT JOIN t4 ON t4.z>0 2563 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 2564 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2565} { 2566 10 110 210 310 110 10 - - 310 10 2567 20 120 220 320 120 20 - - 320 20 2568 30 130 230 330 130 30 230 30 330 30 2569 40 140 240 340 140 40 - - 340 40 2570 50 150 250 350 150 50 - - 350 50 2571 60 160 260 360 160 60 260 60 360 60 2572 70 170 270 370 170 70 - - 370 70 2573 80 180 280 380 180 80 - - 380 80 2574 90 190 290 390 190 90 290 90 390 90 2575} 2576do_execsql_test joinD-113 { 2577 SELECT t1.*, t2.*, t3.*, t4.* 2578 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 2579 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2580 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 2581 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2582} { 2583 2 102 202 302 102 2 - - - - 2584 4 104 204 304 104 4 - - - - 2585 6 106 206 306 106 6 206 6 - - 2586 8 108 208 308 108 8 - - - - 2587 10 110 210 310 110 10 - - 310 10 2588 12 112 212 312 112 12 212 12 - - 2589 14 114 214 314 114 14 - - - - 2590 16 116 216 316 116 16 - - - - 2591 18 118 218 318 118 18 218 18 - - 2592 20 120 220 320 120 20 - - 320 20 2593 22 122 222 322 122 22 - - - - 2594 24 124 224 324 124 24 224 24 - - 2595 26 126 226 326 126 26 - - - - 2596 28 128 228 328 128 28 - - - - 2597 30 130 230 330 130 30 230 30 330 30 2598 32 132 232 332 132 32 - - - - 2599 34 134 234 334 134 34 - - - - 2600 36 136 236 336 136 36 236 36 - - 2601 38 138 238 338 138 38 - - - - 2602 40 140 240 340 140 40 - - 340 40 2603 42 142 242 342 142 42 242 42 - - 2604 44 144 244 344 144 44 - - - - 2605 46 146 246 346 146 46 - - - - 2606 48 148 248 348 148 48 248 48 - - 2607 50 150 250 350 150 50 - - 350 50 2608 52 152 252 352 152 52 - - - - 2609 54 154 254 354 154 54 254 54 - - 2610 56 156 256 356 156 56 - - - - 2611 58 158 258 358 158 58 - - - - 2612 60 160 260 360 160 60 260 60 360 60 2613 62 162 262 362 162 62 - - - - 2614 64 164 264 364 164 64 - - - - 2615 66 166 266 366 166 66 266 66 - - 2616 68 168 268 368 168 68 - - - - 2617 70 170 270 370 170 70 - - 370 70 2618 72 172 272 372 172 72 272 72 - - 2619 74 174 274 374 174 74 - - - - 2620 76 176 276 376 176 76 - - - - 2621 78 178 278 378 178 78 278 78 - - 2622 80 180 280 380 180 80 - - 380 80 2623 82 182 282 382 182 82 - - - - 2624 84 184 284 384 184 84 284 84 - - 2625 86 186 286 386 186 86 - - - - 2626 88 188 288 388 188 88 - - - - 2627 90 190 290 390 190 90 290 90 390 90 2628 92 192 292 392 192 92 - - - - 2629 94 194 294 394 194 94 - - - - 2630} 2631do_execsql_test joinD-114 { 2632 SELECT t1.*, t2.*, t3.*, t4.* 2633 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2634 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 2635 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 2636 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2637} { 2638 2 102 202 302 102 2 - - - - 2639 4 104 204 304 104 4 - - - - 2640 6 106 206 306 106 6 206 6 - - 2641 8 108 208 308 108 8 - - - - 2642 10 110 210 310 110 10 - - 310 10 2643 12 112 212 312 112 12 212 12 - - 2644 14 114 214 314 114 14 - - - - 2645 16 116 216 316 116 16 - - - - 2646 18 118 218 318 118 18 218 18 - - 2647 20 120 220 320 120 20 - - 320 20 2648 22 122 222 322 122 22 - - - - 2649 24 124 224 324 124 24 224 24 - - 2650 26 126 226 326 126 26 - - - - 2651 28 128 228 328 128 28 - - - - 2652 30 130 230 330 130 30 230 30 330 30 2653 32 132 232 332 132 32 - - - - 2654 34 134 234 334 134 34 - - - - 2655 36 136 236 336 136 36 236 36 - - 2656 38 138 238 338 138 38 - - - - 2657 40 140 240 340 140 40 - - 340 40 2658 42 142 242 342 142 42 242 42 - - 2659 44 144 244 344 144 44 - - - - 2660 46 146 246 346 146 46 - - - - 2661 48 148 248 348 148 48 248 48 - - 2662 50 150 250 350 150 50 - - 350 50 2663 52 152 252 352 152 52 - - - - 2664 54 154 254 354 154 54 254 54 - - 2665 56 156 256 356 156 56 - - - - 2666 58 158 258 358 158 58 - - - - 2667 60 160 260 360 160 60 260 60 360 60 2668 62 162 262 362 162 62 - - - - 2669 64 164 264 364 164 64 - - - - 2670 66 166 266 366 166 66 266 66 - - 2671 68 168 268 368 168 68 - - - - 2672 70 170 270 370 170 70 - - 370 70 2673 72 172 272 372 172 72 272 72 - - 2674 74 174 274 374 174 74 - - - - 2675 76 176 276 376 176 76 - - - - 2676 78 178 278 378 178 78 278 78 - - 2677 80 180 280 380 180 80 - - 380 80 2678 82 182 282 382 182 82 - - - - 2679 84 184 284 384 184 84 284 84 - - 2680 86 186 286 386 186 86 - - - - 2681 88 188 288 388 188 88 - - - - 2682 90 190 290 390 190 90 290 90 390 90 2683 92 192 292 392 192 92 - - - - 2684 94 194 294 394 194 94 - - - - 2685} 2686do_execsql_test joinD-115 { 2687 SELECT t1.*, t2.*, t3.*, t4.* 2688 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2689 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2690 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 2691 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2692} { 2693 10 110 210 310 110 10 - - 310 10 2694 20 120 220 320 120 20 - - 320 20 2695 30 130 230 330 130 30 230 30 330 30 2696 40 140 240 340 140 40 - - 340 40 2697 50 150 250 350 150 50 - - 350 50 2698 60 160 260 360 160 60 260 60 360 60 2699 70 170 270 370 170 70 - - 370 70 2700 80 180 280 380 180 80 - - 380 80 2701 90 190 290 390 190 90 290 90 390 90 2702 - - - - - - - - 300 0 2703 - - - - - - - - 305 5 2704 - - - - - - - - 315 15 2705 - - - - - - - - 325 25 2706 - - - - - - - - 335 35 2707 - - - - - - - - 345 45 2708 - - - - - - - - 355 55 2709 - - - - - - - - 365 65 2710 - - - - - - - - 375 75 2711 - - - - - - - - 385 85 2712 - - - - - - - - 395 95 2713} 2714do_execsql_test joinD-116 { 2715 SELECT t1.*, t2.*, t3.*, t4.* 2716 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 2717 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2718 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 2719 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2720} { 2721 10 110 210 310 110 10 - - 310 10 2722 20 120 220 320 120 20 - - 320 20 2723 30 130 230 330 130 30 230 30 330 30 2724 40 140 240 340 140 40 - - 340 40 2725 50 150 250 350 150 50 - - 350 50 2726 60 160 260 360 160 60 260 60 360 60 2727 70 170 270 370 170 70 - - 370 70 2728 80 180 280 380 180 80 - - 380 80 2729 90 190 290 390 190 90 290 90 390 90 2730 - - - - - - - - 300 0 2731 - - - - - - - - 305 5 2732 - - - - - - - - 315 15 2733 - - - - - - - - 325 25 2734 - - - - - - - - 335 35 2735 - - - - - - - - 345 45 2736 - - - - - - - - 355 55 2737 - - - - - - - - 365 65 2738 - - - - - - - - 375 75 2739 - - - - - - - - 385 85 2740 - - - - - - - - 395 95 2741} 2742do_execsql_test joinD-117 { 2743 SELECT t1.*, t2.*, t3.*, t4.* 2744 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2745 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2746 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 2747 WHERE t2.x>0 2748 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2749} { 2750 10 110 210 310 110 10 - - 310 10 2751 20 120 220 320 120 20 - - 320 20 2752 30 130 230 330 130 30 230 30 330 30 2753 40 140 240 340 140 40 - - 340 40 2754 50 150 250 350 150 50 - - 350 50 2755 60 160 260 360 160 60 260 60 360 60 2756 70 170 270 370 170 70 - - 370 70 2757 80 180 280 380 180 80 - - 380 80 2758 90 190 290 390 190 90 290 90 390 90 2759} 2760do_execsql_test joinD-118 { 2761 SELECT t1.*, t2.*, t3.*, t4.* 2762 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2763 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2764 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 2765 WHERE (t2.x>0 OR t2.x IS NULL) 2766 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2767} { 2768 10 110 210 310 110 10 - - 310 10 2769 20 120 220 320 120 20 - - 320 20 2770 30 130 230 330 130 30 230 30 330 30 2771 40 140 240 340 140 40 - - 340 40 2772 50 150 250 350 150 50 - - 350 50 2773 60 160 260 360 160 60 260 60 360 60 2774 70 170 270 370 170 70 - - 370 70 2775 80 180 280 380 180 80 - - 380 80 2776 90 190 290 390 190 90 290 90 390 90 2777 - - - - - - - - 300 0 2778 - - - - - - - - 305 5 2779 - - - - - - - - 315 15 2780 - - - - - - - - 325 25 2781 - - - - - - - - 335 35 2782 - - - - - - - - 345 45 2783 - - - - - - - - 355 55 2784 - - - - - - - - 365 65 2785 - - - - - - - - 375 75 2786 - - - - - - - - 385 85 2787 - - - - - - - - 395 95 2788} 2789do_execsql_test joinD-119 { 2790 SELECT t1.*, t2.*, t3.*, t4.* 2791 FROM t1 INNER JOIN t2 ON true 2792 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2793 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 2794 WHERE t1.b=t2.b AND t2.x>0 2795 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2796} { 2797 10 110 210 310 110 10 - - 310 10 2798 20 120 220 320 120 20 - - 320 20 2799 30 130 230 330 130 30 230 30 330 30 2800 40 140 240 340 140 40 - - 340 40 2801 50 150 250 350 150 50 - - 350 50 2802 60 160 260 360 160 60 260 60 360 60 2803 70 170 270 370 170 70 - - 370 70 2804 80 180 280 380 180 80 - - 380 80 2805 90 190 290 390 190 90 290 90 390 90 2806} 2807do_execsql_test joinD-120 { 2808 SELECT t1.*, t2.*, t3.*, t4.* 2809 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2810 LEFT JOIN t3 ON t1.c=t3.c 2811 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 2812 WHERE t3.y>0 2813 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2814} { 2815 30 130 230 330 130 30 230 30 330 30 2816 60 160 260 360 160 60 260 60 360 60 2817 90 190 290 390 190 90 290 90 390 90 2818} 2819do_execsql_test joinD-121 { 2820 SELECT t1.*, t2.*, t3.*, t4.* 2821 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2822 LEFT JOIN t3 ON t1.c=t3.c 2823 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 2824 WHERE t3.y>0 OR t3.y IS NULL 2825 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2826} { 2827 10 110 210 310 110 10 - - 310 10 2828 20 120 220 320 120 20 - - 320 20 2829 30 130 230 330 130 30 230 30 330 30 2830 40 140 240 340 140 40 - - 340 40 2831 50 150 250 350 150 50 - - 350 50 2832 60 160 260 360 160 60 260 60 360 60 2833 70 170 270 370 170 70 - - 370 70 2834 80 180 280 380 180 80 - - 380 80 2835 90 190 290 390 190 90 290 90 390 90 2836 - - - - - - - - 300 0 2837 - - - - - - - - 305 5 2838 - - - - - - - - 315 15 2839 - - - - - - - - 325 25 2840 - - - - - - - - 335 35 2841 - - - - - - - - 345 45 2842 - - - - - - - - 355 55 2843 - - - - - - - - 365 65 2844 - - - - - - - - 375 75 2845 - - - - - - - - 385 85 2846 - - - - - - - - 395 95 2847} 2848do_execsql_test joinD-122 { 2849 SELECT t1.*, t2.*, t3.*, t4.* 2850 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2851 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2852 RIGHT JOIN t4 ON t1.d=t4.d 2853 WHERE t4.z>0 2854 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2855} { 2856 10 110 210 310 110 10 - - 310 10 2857 20 120 220 320 120 20 - - 320 20 2858 30 130 230 330 130 30 230 30 330 30 2859 40 140 240 340 140 40 - - 340 40 2860 50 150 250 350 150 50 - - 350 50 2861 60 160 260 360 160 60 260 60 360 60 2862 70 170 270 370 170 70 - - 370 70 2863 80 180 280 380 180 80 - - 380 80 2864 90 190 290 390 190 90 290 90 390 90 2865 - - - - - - - - 305 5 2866 - - - - - - - - 315 15 2867 - - - - - - - - 325 25 2868 - - - - - - - - 335 35 2869 - - - - - - - - 345 45 2870 - - - - - - - - 355 55 2871 - - - - - - - - 365 65 2872 - - - - - - - - 375 75 2873 - - - - - - - - 385 85 2874 - - - - - - - - 395 95 2875} 2876do_execsql_test joinD-123 { 2877 SELECT t1.*, t2.*, t3.*, t4.* 2878 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2879 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2880 RIGHT JOIN t4 ON t1.d=t4.d 2881 WHERE t4.z IS NULL OR t4.z>0 2882 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2883} { 2884 10 110 210 310 110 10 - - 310 10 2885 20 120 220 320 120 20 - - 320 20 2886 30 130 230 330 130 30 230 30 330 30 2887 40 140 240 340 140 40 - - 340 40 2888 50 150 250 350 150 50 - - 350 50 2889 60 160 260 360 160 60 260 60 360 60 2890 70 170 270 370 170 70 - - 370 70 2891 80 180 280 380 180 80 - - 380 80 2892 90 190 290 390 190 90 290 90 390 90 2893 - - - - - - - - 305 5 2894 - - - - - - - - 315 15 2895 - - - - - - - - 325 25 2896 - - - - - - - - 335 35 2897 - - - - - - - - 345 45 2898 - - - - - - - - 355 55 2899 - - - - - - - - 365 65 2900 - - - - - - - - 375 75 2901 - - - - - - - - 385 85 2902 - - - - - - - - 395 95 2903} 2904do_execsql_test joinD-124 { 2905 SELECT t1.*, t2.*, t3.*, t4.* 2906 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2907 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2908 RIGHT JOIN t4 ON t1.d=t4.d 2909 WHERE t2.x>0 AND t4.z>0 2910 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2911} { 2912 10 110 210 310 110 10 - - 310 10 2913 20 120 220 320 120 20 - - 320 20 2914 30 130 230 330 130 30 230 30 330 30 2915 40 140 240 340 140 40 - - 340 40 2916 50 150 250 350 150 50 - - 350 50 2917 60 160 260 360 160 60 260 60 360 60 2918 70 170 270 370 170 70 - - 370 70 2919 80 180 280 380 180 80 - - 380 80 2920 90 190 290 390 190 90 290 90 390 90 2921} 2922do_execsql_test joinD-125 { 2923 SELECT t1.*, t2.*, t3.*, t4.* 2924 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2925 LEFT JOIN t3 ON t1.c=t3.c 2926 RIGHT JOIN t4 ON t1.d=t4.d 2927 WHERE t4.z>0 AND t3.y>0 2928 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2929} { 2930 30 130 230 330 130 30 230 30 330 30 2931 60 160 260 360 160 60 260 60 360 60 2932 90 190 290 390 190 90 290 90 390 90 2933} 2934do_execsql_test joinD-126 { 2935 SELECT t1.*, t2.*, t3.*, t4.* 2936 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2937 LEFT JOIN t3 ON t1.c=t3.c 2938 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 2939 WHERE t2.x>0 AND t3.y>0 2940 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2941} { 2942 30 130 230 330 130 30 230 30 330 30 2943 60 160 260 360 160 60 260 60 360 60 2944 90 190 290 390 190 90 290 90 390 90 2945} 2946do_execsql_test joinD-127 { 2947 SELECT t1.*, t2.*, t3.*, t4.* 2948 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2949 LEFT JOIN t3 ON t1.c=t3.c 2950 RIGHT JOIN t4 ON t1.d=t4.d 2951 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 2952 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2953} { 2954 30 130 230 330 130 30 230 30 330 30 2955 60 160 260 360 160 60 260 60 360 60 2956 90 190 290 390 190 90 290 90 390 90 2957} 2958do_execsql_test joinD-128 { 2959 SELECT t1.*, t2.*, t3.*, t4.* 2960 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 2961 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 2962 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 2963 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2964} { 2965 10 110 210 310 110 10 - - 310 10 2966 20 120 220 320 120 20 - - 320 20 2967 30 130 230 330 130 30 230 30 330 30 2968 40 140 240 340 140 40 - - 340 40 2969 50 150 250 350 150 50 - - 350 50 2970 60 160 260 360 160 60 260 60 360 60 2971 70 170 270 370 170 70 - - 370 70 2972 80 180 280 380 180 80 - - 380 80 2973 90 190 290 390 190 90 290 90 390 90 2974 - - - - - - - - 300 0 2975 - - - - - - - - 305 5 2976 - - - - - - - - 315 15 2977 - - - - - - - - 325 25 2978 - - - - - - - - 335 35 2979 - - - - - - - - 345 45 2980 - - - - - - - - 355 55 2981 - - - - - - - - 365 65 2982 - - - - - - - - 375 75 2983 - - - - - - - - 385 85 2984 - - - - - - - - 395 95 2985} 2986do_execsql_test joinD-129 { 2987 SELECT t1.*, t2.*, t3.*, t4.* 2988 FROM t1 INNER JOIN t2 ON t2.x>0 2989 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 2990 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 2991 WHERE t1.b IS NOT DISTINCT FROM t2.b 2992 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2993} { 2994 10 110 210 310 110 10 - - 310 10 2995 20 120 220 320 120 20 - - 320 20 2996 30 130 230 330 130 30 230 30 330 30 2997 40 140 240 340 140 40 - - 340 40 2998 50 150 250 350 150 50 - - 350 50 2999 60 160 260 360 160 60 260 60 360 60 3000 70 170 270 370 170 70 - - 370 70 3001 80 180 280 380 180 80 - - 380 80 3002 90 190 290 390 190 90 290 90 390 90 3003 - - - - - - - - 300 0 3004} 3005do_execsql_test joinD-130 { 3006 SELECT t1.*, t2.*, t3.*, t4.* 3007 FROM t1 INNER JOIN t2 ON t2.x>0 3008 LEFT JOIN t3 ON t3.y>0 3009 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 3010 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 3011 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3012} { 3013 30 130 230 330 130 30 230 30 330 30 3014 60 160 260 360 160 60 260 60 360 60 3015 90 190 290 390 190 90 290 90 390 90 3016 - - - - - - - - 300 0 3017} 3018do_execsql_test joinD-131 { 3019 SELECT t1.*, t2.*, t3.*, t4.* 3020 FROM t1 INNER JOIN t2 ON t2.x>0 3021 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 3022 RIGHT JOIN t4 ON t4.z>0 3023 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 3024 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3025} { 3026 10 110 210 310 110 10 - - 310 10 3027 20 120 220 320 120 20 - - 320 20 3028 30 130 230 330 130 30 230 30 330 30 3029 40 140 240 340 140 40 - - 340 40 3030 50 150 250 350 150 50 - - 350 50 3031 60 160 260 360 160 60 260 60 360 60 3032 70 170 270 370 170 70 - - 370 70 3033 80 180 280 380 180 80 - - 380 80 3034 90 190 290 390 190 90 290 90 390 90 3035} 3036do_execsql_test joinD-132 { 3037 SELECT t1.*, t2.*, t3.*, t4.* 3038 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 3039 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3040 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 3041 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3042} { 3043 10 110 210 310 110 10 - - 310 10 3044 20 120 220 320 120 20 - - 320 20 3045 30 130 230 330 130 30 230 30 330 30 3046 40 140 240 340 140 40 - - 340 40 3047 50 150 250 350 150 50 - - 350 50 3048 60 160 260 360 160 60 260 60 360 60 3049 70 170 270 370 170 70 - - 370 70 3050 80 180 280 380 180 80 - - 380 80 3051 90 190 290 390 190 90 290 90 390 90 3052 - - - - - - - - 300 0 3053 - - - - - - - - 305 5 3054 - - - - - - - - 315 15 3055 - - - - - - - - 325 25 3056 - - - - - - - - 335 35 3057 - - - - - - - - 345 45 3058 - - - - - - - - 355 55 3059 - - - - - - - - 365 65 3060 - - - - - - - - 375 75 3061 - - - - - - - - 385 85 3062 - - - - - - - - 395 95 3063} 3064do_execsql_test joinD-133 { 3065 SELECT t1.*, t2.*, t3.*, t4.* 3066 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 3067 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 3068 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 3069 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3070} { 3071 10 110 210 310 110 10 - - 310 10 3072 20 120 220 320 120 20 - - 320 20 3073 30 130 230 330 130 30 230 30 330 30 3074 40 140 240 340 140 40 - - 340 40 3075 50 150 250 350 150 50 - - 350 50 3076 60 160 260 360 160 60 260 60 360 60 3077 70 170 270 370 170 70 - - 370 70 3078 80 180 280 380 180 80 - - 380 80 3079 90 190 290 390 190 90 290 90 390 90 3080 - - - - - - - - 300 0 3081 - - - - - - - - 305 5 3082 - - - - - - - - 315 15 3083 - - - - - - - - 325 25 3084 - - - - - - - - 335 35 3085 - - - - - - - - 345 45 3086 - - - - - - - - 355 55 3087 - - - - - - - - 365 65 3088 - - - - - - - - 375 75 3089 - - - - - - - - 385 85 3090 - - - - - - - - 395 95 3091} 3092do_execsql_test joinD-134 { 3093 SELECT t1.*, t2.*, t3.*, t4.* 3094 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 3095 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3096 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3097 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3098} { 3099 2 102 202 302 102 2 - - - - 3100 4 104 204 304 104 4 - - - - 3101 6 106 206 306 106 6 206 6 - - 3102 8 108 208 308 108 8 - - - - 3103 10 110 210 310 110 10 - - 310 10 3104 12 112 212 312 112 12 212 12 - - 3105 14 114 214 314 114 14 - - - - 3106 16 116 216 316 116 16 - - - - 3107 18 118 218 318 118 18 218 18 - - 3108 20 120 220 320 120 20 - - 320 20 3109 22 122 222 322 122 22 - - - - 3110 24 124 224 324 124 24 224 24 - - 3111 26 126 226 326 126 26 - - - - 3112 28 128 228 328 128 28 - - - - 3113 30 130 230 330 130 30 230 30 330 30 3114 32 132 232 332 132 32 - - - - 3115 34 134 234 334 134 34 - - - - 3116 36 136 236 336 136 36 236 36 - - 3117 38 138 238 338 138 38 - - - - 3118 40 140 240 340 140 40 - - 340 40 3119 42 142 242 342 142 42 242 42 - - 3120 44 144 244 344 144 44 - - - - 3121 46 146 246 346 146 46 - - - - 3122 48 148 248 348 148 48 248 48 - - 3123 50 150 250 350 150 50 - - 350 50 3124 52 152 252 352 152 52 - - - - 3125 54 154 254 354 154 54 254 54 - - 3126 56 156 256 356 156 56 - - - - 3127 58 158 258 358 158 58 - - - - 3128 60 160 260 360 160 60 260 60 360 60 3129 62 162 262 362 162 62 - - - - 3130 64 164 264 364 164 64 - - - - 3131 66 166 266 366 166 66 266 66 - - 3132 68 168 268 368 168 68 - - - - 3133 70 170 270 370 170 70 - - 370 70 3134 72 172 272 372 172 72 272 72 - - 3135 74 174 274 374 174 74 - - - - 3136 76 176 276 376 176 76 - - - - 3137 78 178 278 378 178 78 278 78 - - 3138 80 180 280 380 180 80 - - 380 80 3139 82 182 282 382 182 82 - - - - 3140 84 184 284 384 184 84 284 84 - - 3141 86 186 286 386 186 86 - - - - 3142 88 188 288 388 188 88 - - - - 3143 90 190 290 390 190 90 290 90 390 90 3144 92 192 292 392 192 92 - - - - 3145 94 194 294 394 194 94 - - - - 3146 - - - - - - - - 300 0 3147 - - - - - - - - 305 5 3148 - - - - - - - - 315 15 3149 - - - - - - - - 325 25 3150 - - - - - - - - 335 35 3151 - - - - - - - - 345 45 3152 - - - - - - - - 355 55 3153 - - - - - - - - 365 65 3154 - - - - - - - - 375 75 3155 - - - - - - - - 385 85 3156 - - - - - - - - 395 95 3157} 3158do_execsql_test joinD-135 { 3159 SELECT t1.*, t2.*, t3.*, t4.* 3160 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 3161 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3162 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3163 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3164} { 3165 2 102 202 302 102 2 - - - - 3166 4 104 204 304 104 4 - - - - 3167 6 106 206 306 106 6 206 6 - - 3168 8 108 208 308 108 8 - - - - 3169 10 110 210 310 110 10 - - 310 10 3170 12 112 212 312 112 12 212 12 - - 3171 14 114 214 314 114 14 - - - - 3172 16 116 216 316 116 16 - - - - 3173 18 118 218 318 118 18 218 18 - - 3174 20 120 220 320 120 20 - - 320 20 3175 22 122 222 322 122 22 - - - - 3176 24 124 224 324 124 24 224 24 - - 3177 26 126 226 326 126 26 - - - - 3178 28 128 228 328 128 28 - - - - 3179 30 130 230 330 130 30 230 30 330 30 3180 32 132 232 332 132 32 - - - - 3181 34 134 234 334 134 34 - - - - 3182 36 136 236 336 136 36 236 36 - - 3183 38 138 238 338 138 38 - - - - 3184 40 140 240 340 140 40 - - 340 40 3185 42 142 242 342 142 42 242 42 - - 3186 44 144 244 344 144 44 - - - - 3187 46 146 246 346 146 46 - - - - 3188 48 148 248 348 148 48 248 48 - - 3189 50 150 250 350 150 50 - - 350 50 3190 52 152 252 352 152 52 - - - - 3191 54 154 254 354 154 54 254 54 - - 3192 56 156 256 356 156 56 - - - - 3193 58 158 258 358 158 58 - - - - 3194 60 160 260 360 160 60 260 60 360 60 3195 62 162 262 362 162 62 - - - - 3196 64 164 264 364 164 64 - - - - 3197 66 166 266 366 166 66 266 66 - - 3198 68 168 268 368 168 68 - - - - 3199 70 170 270 370 170 70 - - 370 70 3200 72 172 272 372 172 72 272 72 - - 3201 74 174 274 374 174 74 - - - - 3202 76 176 276 376 176 76 - - - - 3203 78 178 278 378 178 78 278 78 - - 3204 80 180 280 380 180 80 - - 380 80 3205 82 182 282 382 182 82 - - - - 3206 84 184 284 384 184 84 284 84 - - 3207 86 186 286 386 186 86 - - - - 3208 88 188 288 388 188 88 - - - - 3209 90 190 290 390 190 90 290 90 390 90 3210 92 192 292 392 192 92 - - - - 3211 94 194 294 394 194 94 - - - - 3212 - - - - - - - - 300 0 3213 - - - - - - - - 305 5 3214 - - - - - - - - 315 15 3215 - - - - - - - - 325 25 3216 - - - - - - - - 335 35 3217 - - - - - - - - 345 45 3218 - - - - - - - - 355 55 3219 - - - - - - - - 365 65 3220 - - - - - - - - 375 75 3221 - - - - - - - - 385 85 3222 - - - - - - - - 395 95 3223} 3224do_execsql_test joinD-136 { 3225 SELECT t1.*, t2.*, t3.*, t4.* 3226 FROM t1 INNER JOIN t2 ON t1.b=t2.b 3227 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3228 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3229 WHERE t2.x>0 3230 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3231} { 3232 2 102 202 302 102 2 - - - - 3233 4 104 204 304 104 4 - - - - 3234 6 106 206 306 106 6 206 6 - - 3235 8 108 208 308 108 8 - - - - 3236 10 110 210 310 110 10 - - 310 10 3237 12 112 212 312 112 12 212 12 - - 3238 14 114 214 314 114 14 - - - - 3239 16 116 216 316 116 16 - - - - 3240 18 118 218 318 118 18 218 18 - - 3241 20 120 220 320 120 20 - - 320 20 3242 22 122 222 322 122 22 - - - - 3243 24 124 224 324 124 24 224 24 - - 3244 26 126 226 326 126 26 - - - - 3245 28 128 228 328 128 28 - - - - 3246 30 130 230 330 130 30 230 30 330 30 3247 32 132 232 332 132 32 - - - - 3248 34 134 234 334 134 34 - - - - 3249 36 136 236 336 136 36 236 36 - - 3250 38 138 238 338 138 38 - - - - 3251 40 140 240 340 140 40 - - 340 40 3252 42 142 242 342 142 42 242 42 - - 3253 44 144 244 344 144 44 - - - - 3254 46 146 246 346 146 46 - - - - 3255 48 148 248 348 148 48 248 48 - - 3256 50 150 250 350 150 50 - - 350 50 3257 52 152 252 352 152 52 - - - - 3258 54 154 254 354 154 54 254 54 - - 3259 56 156 256 356 156 56 - - - - 3260 58 158 258 358 158 58 - - - - 3261 60 160 260 360 160 60 260 60 360 60 3262 62 162 262 362 162 62 - - - - 3263 64 164 264 364 164 64 - - - - 3264 66 166 266 366 166 66 266 66 - - 3265 68 168 268 368 168 68 - - - - 3266 70 170 270 370 170 70 - - 370 70 3267 72 172 272 372 172 72 272 72 - - 3268 74 174 274 374 174 74 - - - - 3269 76 176 276 376 176 76 - - - - 3270 78 178 278 378 178 78 278 78 - - 3271 80 180 280 380 180 80 - - 380 80 3272 82 182 282 382 182 82 - - - - 3273 84 184 284 384 184 84 284 84 - - 3274 86 186 286 386 186 86 - - - - 3275 88 188 288 388 188 88 - - - - 3276 90 190 290 390 190 90 290 90 390 90 3277 92 192 292 392 192 92 - - - - 3278 94 194 294 394 194 94 - - - - 3279} 3280do_execsql_test joinD-137 { 3281 SELECT t1.*, t2.*, t3.*, t4.* 3282 FROM t1 INNER JOIN t2 ON t1.b=t2.b 3283 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3284 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3285 WHERE (t2.x>0 OR t2.x IS NULL) 3286 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3287} { 3288 2 102 202 302 102 2 - - - - 3289 4 104 204 304 104 4 - - - - 3290 6 106 206 306 106 6 206 6 - - 3291 8 108 208 308 108 8 - - - - 3292 10 110 210 310 110 10 - - 310 10 3293 12 112 212 312 112 12 212 12 - - 3294 14 114 214 314 114 14 - - - - 3295 16 116 216 316 116 16 - - - - 3296 18 118 218 318 118 18 218 18 - - 3297 20 120 220 320 120 20 - - 320 20 3298 22 122 222 322 122 22 - - - - 3299 24 124 224 324 124 24 224 24 - - 3300 26 126 226 326 126 26 - - - - 3301 28 128 228 328 128 28 - - - - 3302 30 130 230 330 130 30 230 30 330 30 3303 32 132 232 332 132 32 - - - - 3304 34 134 234 334 134 34 - - - - 3305 36 136 236 336 136 36 236 36 - - 3306 38 138 238 338 138 38 - - - - 3307 40 140 240 340 140 40 - - 340 40 3308 42 142 242 342 142 42 242 42 - - 3309 44 144 244 344 144 44 - - - - 3310 46 146 246 346 146 46 - - - - 3311 48 148 248 348 148 48 248 48 - - 3312 50 150 250 350 150 50 - - 350 50 3313 52 152 252 352 152 52 - - - - 3314 54 154 254 354 154 54 254 54 - - 3315 56 156 256 356 156 56 - - - - 3316 58 158 258 358 158 58 - - - - 3317 60 160 260 360 160 60 260 60 360 60 3318 62 162 262 362 162 62 - - - - 3319 64 164 264 364 164 64 - - - - 3320 66 166 266 366 166 66 266 66 - - 3321 68 168 268 368 168 68 - - - - 3322 70 170 270 370 170 70 - - 370 70 3323 72 172 272 372 172 72 272 72 - - 3324 74 174 274 374 174 74 - - - - 3325 76 176 276 376 176 76 - - - - 3326 78 178 278 378 178 78 278 78 - - 3327 80 180 280 380 180 80 - - 380 80 3328 82 182 282 382 182 82 - - - - 3329 84 184 284 384 184 84 284 84 - - 3330 86 186 286 386 186 86 - - - - 3331 88 188 288 388 188 88 - - - - 3332 90 190 290 390 190 90 290 90 390 90 3333 92 192 292 392 192 92 - - - - 3334 94 194 294 394 194 94 - - - - 3335 - - - - - - - - 300 0 3336 - - - - - - - - 305 5 3337 - - - - - - - - 315 15 3338 - - - - - - - - 325 25 3339 - - - - - - - - 335 35 3340 - - - - - - - - 345 45 3341 - - - - - - - - 355 55 3342 - - - - - - - - 365 65 3343 - - - - - - - - 375 75 3344 - - - - - - - - 385 85 3345 - - - - - - - - 395 95 3346} 3347do_execsql_test joinD-138 { 3348 SELECT t1.*, t2.*, t3.*, t4.* 3349 FROM t1 INNER JOIN t2 ON true 3350 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3351 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3352 WHERE t1.b=t2.b AND t2.x>0 3353 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3354} { 3355 2 102 202 302 102 2 - - - - 3356 4 104 204 304 104 4 - - - - 3357 6 106 206 306 106 6 206 6 - - 3358 8 108 208 308 108 8 - - - - 3359 10 110 210 310 110 10 - - 310 10 3360 12 112 212 312 112 12 212 12 - - 3361 14 114 214 314 114 14 - - - - 3362 16 116 216 316 116 16 - - - - 3363 18 118 218 318 118 18 218 18 - - 3364 20 120 220 320 120 20 - - 320 20 3365 22 122 222 322 122 22 - - - - 3366 24 124 224 324 124 24 224 24 - - 3367 26 126 226 326 126 26 - - - - 3368 28 128 228 328 128 28 - - - - 3369 30 130 230 330 130 30 230 30 330 30 3370 32 132 232 332 132 32 - - - - 3371 34 134 234 334 134 34 - - - - 3372 36 136 236 336 136 36 236 36 - - 3373 38 138 238 338 138 38 - - - - 3374 40 140 240 340 140 40 - - 340 40 3375 42 142 242 342 142 42 242 42 - - 3376 44 144 244 344 144 44 - - - - 3377 46 146 246 346 146 46 - - - - 3378 48 148 248 348 148 48 248 48 - - 3379 50 150 250 350 150 50 - - 350 50 3380 52 152 252 352 152 52 - - - - 3381 54 154 254 354 154 54 254 54 - - 3382 56 156 256 356 156 56 - - - - 3383 58 158 258 358 158 58 - - - - 3384 60 160 260 360 160 60 260 60 360 60 3385 62 162 262 362 162 62 - - - - 3386 64 164 264 364 164 64 - - - - 3387 66 166 266 366 166 66 266 66 - - 3388 68 168 268 368 168 68 - - - - 3389 70 170 270 370 170 70 - - 370 70 3390 72 172 272 372 172 72 272 72 - - 3391 74 174 274 374 174 74 - - - - 3392 76 176 276 376 176 76 - - - - 3393 78 178 278 378 178 78 278 78 - - 3394 80 180 280 380 180 80 - - 380 80 3395 82 182 282 382 182 82 - - - - 3396 84 184 284 384 184 84 284 84 - - 3397 86 186 286 386 186 86 - - - - 3398 88 188 288 388 188 88 - - - - 3399 90 190 290 390 190 90 290 90 390 90 3400 92 192 292 392 192 92 - - - - 3401 94 194 294 394 194 94 - - - - 3402} 3403do_execsql_test joinD-139 { 3404 SELECT t1.*, t2.*, t3.*, t4.* 3405 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 3406 LEFT JOIN t3 ON t1.c=t3.c 3407 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3408 WHERE t3.y>0 3409 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3410} { 3411 6 106 206 306 106 6 206 6 - - 3412 12 112 212 312 112 12 212 12 - - 3413 18 118 218 318 118 18 218 18 - - 3414 24 124 224 324 124 24 224 24 - - 3415 30 130 230 330 130 30 230 30 330 30 3416 36 136 236 336 136 36 236 36 - - 3417 42 142 242 342 142 42 242 42 - - 3418 48 148 248 348 148 48 248 48 - - 3419 54 154 254 354 154 54 254 54 - - 3420 60 160 260 360 160 60 260 60 360 60 3421 66 166 266 366 166 66 266 66 - - 3422 72 172 272 372 172 72 272 72 - - 3423 78 178 278 378 178 78 278 78 - - 3424 84 184 284 384 184 84 284 84 - - 3425 90 190 290 390 190 90 290 90 390 90 3426} 3427do_execsql_test joinD-140 { 3428 SELECT t1.*, t2.*, t3.*, t4.* 3429 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 3430 LEFT JOIN t3 ON t1.c=t3.c 3431 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3432 WHERE t3.y>0 OR t3.y IS NULL 3433 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3434} { 3435 2 102 202 302 102 2 - - - - 3436 4 104 204 304 104 4 - - - - 3437 6 106 206 306 106 6 206 6 - - 3438 8 108 208 308 108 8 - - - - 3439 10 110 210 310 110 10 - - 310 10 3440 12 112 212 312 112 12 212 12 - - 3441 14 114 214 314 114 14 - - - - 3442 16 116 216 316 116 16 - - - - 3443 18 118 218 318 118 18 218 18 - - 3444 20 120 220 320 120 20 - - 320 20 3445 22 122 222 322 122 22 - - - - 3446 24 124 224 324 124 24 224 24 - - 3447 26 126 226 326 126 26 - - - - 3448 28 128 228 328 128 28 - - - - 3449 30 130 230 330 130 30 230 30 330 30 3450 32 132 232 332 132 32 - - - - 3451 34 134 234 334 134 34 - - - - 3452 36 136 236 336 136 36 236 36 - - 3453 38 138 238 338 138 38 - - - - 3454 40 140 240 340 140 40 - - 340 40 3455 42 142 242 342 142 42 242 42 - - 3456 44 144 244 344 144 44 - - - - 3457 46 146 246 346 146 46 - - - - 3458 48 148 248 348 148 48 248 48 - - 3459 50 150 250 350 150 50 - - 350 50 3460 52 152 252 352 152 52 - - - - 3461 54 154 254 354 154 54 254 54 - - 3462 56 156 256 356 156 56 - - - - 3463 58 158 258 358 158 58 - - - - 3464 60 160 260 360 160 60 260 60 360 60 3465 62 162 262 362 162 62 - - - - 3466 64 164 264 364 164 64 - - - - 3467 66 166 266 366 166 66 266 66 - - 3468 68 168 268 368 168 68 - - - - 3469 70 170 270 370 170 70 - - 370 70 3470 72 172 272 372 172 72 272 72 - - 3471 74 174 274 374 174 74 - - - - 3472 76 176 276 376 176 76 - - - - 3473 78 178 278 378 178 78 278 78 - - 3474 80 180 280 380 180 80 - - 380 80 3475 82 182 282 382 182 82 - - - - 3476 84 184 284 384 184 84 284 84 - - 3477 86 186 286 386 186 86 - - - - 3478 88 188 288 388 188 88 - - - - 3479 90 190 290 390 190 90 290 90 390 90 3480 92 192 292 392 192 92 - - - - 3481 94 194 294 394 194 94 - - - - 3482 - - - - - - - - 300 0 3483 - - - - - - - - 305 5 3484 - - - - - - - - 315 15 3485 - - - - - - - - 325 25 3486 - - - - - - - - 335 35 3487 - - - - - - - - 345 45 3488 - - - - - - - - 355 55 3489 - - - - - - - - 365 65 3490 - - - - - - - - 375 75 3491 - - - - - - - - 385 85 3492 - - - - - - - - 395 95 3493} 3494do_execsql_test joinD-141 { 3495 SELECT t1.*, t2.*, t3.*, t4.* 3496 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 3497 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3498 FULL JOIN t4 ON t1.d=t4.d 3499 WHERE t4.z>0 3500 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3501} { 3502 10 110 210 310 110 10 - - 310 10 3503 20 120 220 320 120 20 - - 320 20 3504 30 130 230 330 130 30 230 30 330 30 3505 40 140 240 340 140 40 - - 340 40 3506 50 150 250 350 150 50 - - 350 50 3507 60 160 260 360 160 60 260 60 360 60 3508 70 170 270 370 170 70 - - 370 70 3509 80 180 280 380 180 80 - - 380 80 3510 90 190 290 390 190 90 290 90 390 90 3511 - - - - - - - - 305 5 3512 - - - - - - - - 315 15 3513 - - - - - - - - 325 25 3514 - - - - - - - - 335 35 3515 - - - - - - - - 345 45 3516 - - - - - - - - 355 55 3517 - - - - - - - - 365 65 3518 - - - - - - - - 375 75 3519 - - - - - - - - 385 85 3520 - - - - - - - - 395 95 3521} 3522do_execsql_test joinD-142 { 3523 SELECT t1.*, t2.*, t3.*, t4.* 3524 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 3525 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3526 FULL JOIN t4 ON t1.d=t4.d 3527 WHERE t4.z IS NULL OR t4.z>0 3528 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3529} { 3530 2 102 202 302 102 2 - - - - 3531 4 104 204 304 104 4 - - - - 3532 6 106 206 306 106 6 206 6 - - 3533 8 108 208 308 108 8 - - - - 3534 10 110 210 310 110 10 - - 310 10 3535 12 112 212 312 112 12 212 12 - - 3536 14 114 214 314 114 14 - - - - 3537 16 116 216 316 116 16 - - - - 3538 18 118 218 318 118 18 218 18 - - 3539 20 120 220 320 120 20 - - 320 20 3540 22 122 222 322 122 22 - - - - 3541 24 124 224 324 124 24 224 24 - - 3542 26 126 226 326 126 26 - - - - 3543 28 128 228 328 128 28 - - - - 3544 30 130 230 330 130 30 230 30 330 30 3545 32 132 232 332 132 32 - - - - 3546 34 134 234 334 134 34 - - - - 3547 36 136 236 336 136 36 236 36 - - 3548 38 138 238 338 138 38 - - - - 3549 40 140 240 340 140 40 - - 340 40 3550 42 142 242 342 142 42 242 42 - - 3551 44 144 244 344 144 44 - - - - 3552 46 146 246 346 146 46 - - - - 3553 48 148 248 348 148 48 248 48 - - 3554 50 150 250 350 150 50 - - 350 50 3555 52 152 252 352 152 52 - - - - 3556 54 154 254 354 154 54 254 54 - - 3557 56 156 256 356 156 56 - - - - 3558 58 158 258 358 158 58 - - - - 3559 60 160 260 360 160 60 260 60 360 60 3560 62 162 262 362 162 62 - - - - 3561 64 164 264 364 164 64 - - - - 3562 66 166 266 366 166 66 266 66 - - 3563 68 168 268 368 168 68 - - - - 3564 70 170 270 370 170 70 - - 370 70 3565 72 172 272 372 172 72 272 72 - - 3566 74 174 274 374 174 74 - - - - 3567 76 176 276 376 176 76 - - - - 3568 78 178 278 378 178 78 278 78 - - 3569 80 180 280 380 180 80 - - 380 80 3570 82 182 282 382 182 82 - - - - 3571 84 184 284 384 184 84 284 84 - - 3572 86 186 286 386 186 86 - - - - 3573 88 188 288 388 188 88 - - - - 3574 90 190 290 390 190 90 290 90 390 90 3575 92 192 292 392 192 92 - - - - 3576 94 194 294 394 194 94 - - - - 3577 - - - - - - - - 305 5 3578 - - - - - - - - 315 15 3579 - - - - - - - - 325 25 3580 - - - - - - - - 335 35 3581 - - - - - - - - 345 45 3582 - - - - - - - - 355 55 3583 - - - - - - - - 365 65 3584 - - - - - - - - 375 75 3585 - - - - - - - - 385 85 3586 - - - - - - - - 395 95 3587} 3588do_execsql_test joinD-143 { 3589 SELECT t1.*, t2.*, t3.*, t4.* 3590 FROM t1 INNER JOIN t2 ON t1.b=t2.b 3591 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3592 FULL JOIN t4 ON t1.d=t4.d 3593 WHERE t2.x>0 AND t4.z>0 3594 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3595} { 3596 10 110 210 310 110 10 - - 310 10 3597 20 120 220 320 120 20 - - 320 20 3598 30 130 230 330 130 30 230 30 330 30 3599 40 140 240 340 140 40 - - 340 40 3600 50 150 250 350 150 50 - - 350 50 3601 60 160 260 360 160 60 260 60 360 60 3602 70 170 270 370 170 70 - - 370 70 3603 80 180 280 380 180 80 - - 380 80 3604 90 190 290 390 190 90 290 90 390 90 3605} 3606do_execsql_test joinD-144 { 3607 SELECT t1.*, t2.*, t3.*, t4.* 3608 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 3609 LEFT JOIN t3 ON t1.c=t3.c 3610 FULL JOIN t4 ON t1.d=t4.d 3611 WHERE t4.z>0 AND t3.y>0 3612 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3613} { 3614 30 130 230 330 130 30 230 30 330 30 3615 60 160 260 360 160 60 260 60 360 60 3616 90 190 290 390 190 90 290 90 390 90 3617} 3618do_execsql_test joinD-145 { 3619 SELECT t1.*, t2.*, t3.*, t4.* 3620 FROM t1 INNER JOIN t2 ON t1.b=t2.b 3621 LEFT JOIN t3 ON t1.c=t3.c 3622 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3623 WHERE t2.x>0 AND t3.y>0 3624 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3625} { 3626 6 106 206 306 106 6 206 6 - - 3627 12 112 212 312 112 12 212 12 - - 3628 18 118 218 318 118 18 218 18 - - 3629 24 124 224 324 124 24 224 24 - - 3630 30 130 230 330 130 30 230 30 330 30 3631 36 136 236 336 136 36 236 36 - - 3632 42 142 242 342 142 42 242 42 - - 3633 48 148 248 348 148 48 248 48 - - 3634 54 154 254 354 154 54 254 54 - - 3635 60 160 260 360 160 60 260 60 360 60 3636 66 166 266 366 166 66 266 66 - - 3637 72 172 272 372 172 72 272 72 - - 3638 78 178 278 378 178 78 278 78 - - 3639 84 184 284 384 184 84 284 84 - - 3640 90 190 290 390 190 90 290 90 390 90 3641} 3642do_execsql_test joinD-146 { 3643 SELECT t1.*, t2.*, t3.*, t4.* 3644 FROM t1 INNER JOIN t2 ON t1.b=t2.b 3645 LEFT JOIN t3 ON t1.c=t3.c 3646 FULL JOIN t4 ON t1.d=t4.d 3647 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 3648 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3649} { 3650 30 130 230 330 130 30 230 30 330 30 3651 60 160 260 360 160 60 260 60 360 60 3652 90 190 290 390 190 90 290 90 390 90 3653} 3654do_execsql_test joinD-147 { 3655 SELECT t1.*, t2.*, t3.*, t4.* 3656 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 3657 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 3658 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 3659 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3660} { 3661 2 102 202 302 102 2 - - - - 3662 4 104 204 304 104 4 - - - - 3663 6 106 206 306 106 6 206 6 - - 3664 8 108 208 308 108 8 - - - - 3665 10 110 210 310 110 10 - - 310 10 3666 12 112 212 312 112 12 212 12 - - 3667 14 114 214 314 114 14 - - - - 3668 16 116 216 316 116 16 - - - - 3669 18 118 218 318 118 18 218 18 - - 3670 20 120 220 320 120 20 - - 320 20 3671 22 122 222 322 122 22 - - - - 3672 24 124 224 324 124 24 224 24 - - 3673 26 126 226 326 126 26 - - - - 3674 28 128 228 328 128 28 - - - - 3675 30 130 230 330 130 30 230 30 330 30 3676 32 132 232 332 132 32 - - - - 3677 34 134 234 334 134 34 - - - - 3678 36 136 236 336 136 36 236 36 - - 3679 38 138 238 338 138 38 - - - - 3680 40 140 240 340 140 40 - - 340 40 3681 42 142 242 342 142 42 242 42 - - 3682 44 144 244 344 144 44 - - - - 3683 46 146 246 346 146 46 - - - - 3684 48 148 248 348 148 48 248 48 - - 3685 50 150 250 350 150 50 - - 350 50 3686 52 152 252 352 152 52 - - - - 3687 54 154 254 354 154 54 254 54 - - 3688 56 156 256 356 156 56 - - - - 3689 58 158 258 358 158 58 - - - - 3690 60 160 260 360 160 60 260 60 360 60 3691 62 162 262 362 162 62 - - - - 3692 64 164 264 364 164 64 - - - - 3693 66 166 266 366 166 66 266 66 - - 3694 68 168 268 368 168 68 - - - - 3695 70 170 270 370 170 70 - - 370 70 3696 72 172 272 372 172 72 272 72 - - 3697 74 174 274 374 174 74 - - - - 3698 76 176 276 376 176 76 - - - - 3699 78 178 278 378 178 78 278 78 - - 3700 80 180 280 380 180 80 - - 380 80 3701 82 182 282 382 182 82 - - - - 3702 84 184 284 384 184 84 284 84 - - 3703 86 186 286 386 186 86 - - - - 3704 88 188 288 388 188 88 - - - - 3705 90 190 290 390 190 90 290 90 390 90 3706 92 192 292 392 192 92 - - - - 3707 94 194 294 394 194 94 - - - - 3708 - - - - - - - - 300 0 3709 - - - - - - - - 305 5 3710 - - - - - - - - 315 15 3711 - - - - - - - - 325 25 3712 - - - - - - - - 335 35 3713 - - - - - - - - 345 45 3714 - - - - - - - - 355 55 3715 - - - - - - - - 365 65 3716 - - - - - - - - 375 75 3717 - - - - - - - - 385 85 3718 - - - - - - - - 395 95 3719} 3720do_execsql_test joinD-148 { 3721 SELECT t1.*, t2.*, t3.*, t4.* 3722 FROM t1 INNER JOIN t2 ON t2.x>0 3723 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 3724 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 3725 WHERE t1.b IS NOT DISTINCT FROM t2.b 3726 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3727} { 3728 2 102 202 302 102 2 - - - - 3729 4 104 204 304 104 4 - - - - 3730 6 106 206 306 106 6 206 6 - - 3731 8 108 208 308 108 8 - - - - 3732 10 110 210 310 110 10 - - 310 10 3733 12 112 212 312 112 12 212 12 - - 3734 14 114 214 314 114 14 - - - - 3735 16 116 216 316 116 16 - - - - 3736 18 118 218 318 118 18 218 18 - - 3737 20 120 220 320 120 20 - - 320 20 3738 22 122 222 322 122 22 - - - - 3739 24 124 224 324 124 24 224 24 - - 3740 26 126 226 326 126 26 - - - - 3741 28 128 228 328 128 28 - - - - 3742 30 130 230 330 130 30 230 30 330 30 3743 32 132 232 332 132 32 - - - - 3744 34 134 234 334 134 34 - - - - 3745 36 136 236 336 136 36 236 36 - - 3746 38 138 238 338 138 38 - - - - 3747 40 140 240 340 140 40 - - 340 40 3748 42 142 242 342 142 42 242 42 - - 3749 44 144 244 344 144 44 - - - - 3750 46 146 246 346 146 46 - - - - 3751 48 148 248 348 148 48 248 48 - - 3752 50 150 250 350 150 50 - - 350 50 3753 52 152 252 352 152 52 - - - - 3754 54 154 254 354 154 54 254 54 - - 3755 56 156 256 356 156 56 - - - - 3756 58 158 258 358 158 58 - - - - 3757 60 160 260 360 160 60 260 60 360 60 3758 62 162 262 362 162 62 - - - - 3759 64 164 264 364 164 64 - - - - 3760 66 166 266 366 166 66 266 66 - - 3761 68 168 268 368 168 68 - - - - 3762 70 170 270 370 170 70 - - 370 70 3763 72 172 272 372 172 72 272 72 - - 3764 74 174 274 374 174 74 - - - - 3765 76 176 276 376 176 76 - - - - 3766 78 178 278 378 178 78 278 78 - - 3767 80 180 280 380 180 80 - - 380 80 3768 82 182 282 382 182 82 - - - - 3769 84 184 284 384 184 84 284 84 - - 3770 86 186 286 386 186 86 - - - - 3771 88 188 288 388 188 88 - - - - 3772 90 190 290 390 190 90 290 90 390 90 3773 92 192 292 392 192 92 - - - - 3774 94 194 294 394 194 94 - - - - 3775 - - - - - - - - 300 0 3776} 3777do_execsql_test joinD-149 { 3778 SELECT t1.*, t2.*, t3.*, t4.* 3779 FROM t1 INNER JOIN t2 ON t2.x>0 3780 LEFT JOIN t3 ON t3.y>0 3781 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 3782 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 3783 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3784} { 3785 6 106 206 306 106 6 206 6 - - 3786 12 112 212 312 112 12 212 12 - - 3787 18 118 218 318 118 18 218 18 - - 3788 24 124 224 324 124 24 224 24 - - 3789 30 130 230 330 130 30 230 30 330 30 3790 36 136 236 336 136 36 236 36 - - 3791 42 142 242 342 142 42 242 42 - - 3792 48 148 248 348 148 48 248 48 - - 3793 54 154 254 354 154 54 254 54 - - 3794 60 160 260 360 160 60 260 60 360 60 3795 66 166 266 366 166 66 266 66 - - 3796 72 172 272 372 172 72 272 72 - - 3797 78 178 278 378 178 78 278 78 - - 3798 84 184 284 384 184 84 284 84 - - 3799 90 190 290 390 190 90 290 90 390 90 3800 - - - - - - - - 300 0 3801} 3802do_execsql_test joinD-150 { 3803 SELECT t1.*, t2.*, t3.*, t4.* 3804 FROM t1 INNER JOIN t2 ON t2.x>0 3805 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 3806 FULL JOIN t4 ON t4.z>0 3807 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 3808 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3809} { 3810 10 110 210 310 110 10 - - 310 10 3811 20 120 220 320 120 20 - - 320 20 3812 30 130 230 330 130 30 230 30 330 30 3813 40 140 240 340 140 40 - - 340 40 3814 50 150 250 350 150 50 - - 350 50 3815 60 160 260 360 160 60 260 60 360 60 3816 70 170 270 370 170 70 - - 370 70 3817 80 180 280 380 180 80 - - 380 80 3818 90 190 290 390 190 90 290 90 390 90 3819} 3820do_execsql_test joinD-151 { 3821 SELECT t1.*, t2.*, t3.*, t4.* 3822 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 3823 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3824 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3825 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3826} { 3827 2 102 202 302 102 2 - - - - 3828 4 104 204 304 104 4 - - - - 3829 6 106 206 306 106 6 206 6 - - 3830 8 108 208 308 108 8 - - - - 3831 10 110 210 310 110 10 - - 310 10 3832 12 112 212 312 112 12 212 12 - - 3833 14 114 214 314 114 14 - - - - 3834 16 116 216 316 116 16 - - - - 3835 18 118 218 318 118 18 218 18 - - 3836 20 120 220 320 120 20 - - 320 20 3837 22 122 222 322 122 22 - - - - 3838 24 124 224 324 124 24 224 24 - - 3839 26 126 226 326 126 26 - - - - 3840 28 128 228 328 128 28 - - - - 3841 30 130 230 330 130 30 230 30 330 30 3842 32 132 232 332 132 32 - - - - 3843 34 134 234 334 134 34 - - - - 3844 36 136 236 336 136 36 236 36 - - 3845 38 138 238 338 138 38 - - - - 3846 40 140 240 340 140 40 - - 340 40 3847 42 142 242 342 142 42 242 42 - - 3848 44 144 244 344 144 44 - - - - 3849 46 146 246 346 146 46 - - - - 3850 48 148 248 348 148 48 248 48 - - 3851 50 150 250 350 150 50 - - 350 50 3852 52 152 252 352 152 52 - - - - 3853 54 154 254 354 154 54 254 54 - - 3854 56 156 256 356 156 56 - - - - 3855 58 158 258 358 158 58 - - - - 3856 60 160 260 360 160 60 260 60 360 60 3857 62 162 262 362 162 62 - - - - 3858 64 164 264 364 164 64 - - - - 3859 66 166 266 366 166 66 266 66 - - 3860 68 168 268 368 168 68 - - - - 3861 70 170 270 370 170 70 - - 370 70 3862 72 172 272 372 172 72 272 72 - - 3863 74 174 274 374 174 74 - - - - 3864 76 176 276 376 176 76 - - - - 3865 78 178 278 378 178 78 278 78 - - 3866 80 180 280 380 180 80 - - 380 80 3867 82 182 282 382 182 82 - - - - 3868 84 184 284 384 184 84 284 84 - - 3869 86 186 286 386 186 86 - - - - 3870 88 188 288 388 188 88 - - - - 3871 90 190 290 390 190 90 290 90 390 90 3872 92 192 292 392 192 92 - - - - 3873 94 194 294 394 194 94 - - - - 3874 - - - - - - - - 300 0 3875 - - - - - - - - 305 5 3876 - - - - - - - - 315 15 3877 - - - - - - - - 325 25 3878 - - - - - - - - 335 35 3879 - - - - - - - - 345 45 3880 - - - - - - - - 355 55 3881 - - - - - - - - 365 65 3882 - - - - - - - - 375 75 3883 - - - - - - - - 385 85 3884 - - - - - - - - 395 95 3885} 3886do_execsql_test joinD-152 { 3887 SELECT t1.*, t2.*, t3.*, t4.* 3888 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 3889 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 3890 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3891 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3892} { 3893 2 102 202 302 102 2 - - - - 3894 4 104 204 304 104 4 - - - - 3895 6 106 206 306 106 6 206 6 - - 3896 8 108 208 308 108 8 - - - - 3897 10 110 210 310 110 10 - - 310 10 3898 12 112 212 312 112 12 212 12 - - 3899 14 114 214 314 114 14 - - - - 3900 16 116 216 316 116 16 - - - - 3901 18 118 218 318 118 18 218 18 - - 3902 20 120 220 320 120 20 - - 320 20 3903 22 122 222 322 122 22 - - - - 3904 24 124 224 324 124 24 224 24 - - 3905 26 126 226 326 126 26 - - - - 3906 28 128 228 328 128 28 - - - - 3907 30 130 230 330 130 30 230 30 330 30 3908 32 132 232 332 132 32 - - - - 3909 34 134 234 334 134 34 - - - - 3910 36 136 236 336 136 36 236 36 - - 3911 38 138 238 338 138 38 - - - - 3912 40 140 240 340 140 40 - - 340 40 3913 42 142 242 342 142 42 242 42 - - 3914 44 144 244 344 144 44 - - - - 3915 46 146 246 346 146 46 - - - - 3916 48 148 248 348 148 48 248 48 - - 3917 50 150 250 350 150 50 - - 350 50 3918 52 152 252 352 152 52 - - - - 3919 54 154 254 354 154 54 254 54 - - 3920 56 156 256 356 156 56 - - - - 3921 58 158 258 358 158 58 - - - - 3922 60 160 260 360 160 60 260 60 360 60 3923 62 162 262 362 162 62 - - - - 3924 64 164 264 364 164 64 - - - - 3925 66 166 266 366 166 66 266 66 - - 3926 68 168 268 368 168 68 - - - - 3927 70 170 270 370 170 70 - - 370 70 3928 72 172 272 372 172 72 272 72 - - 3929 74 174 274 374 174 74 - - - - 3930 76 176 276 376 176 76 - - - - 3931 78 178 278 378 178 78 278 78 - - 3932 80 180 280 380 180 80 - - 380 80 3933 82 182 282 382 182 82 - - - - 3934 84 184 284 384 184 84 284 84 - - 3935 86 186 286 386 186 86 - - - - 3936 88 188 288 388 188 88 - - - - 3937 90 190 290 390 190 90 290 90 390 90 3938 92 192 292 392 192 92 - - - - 3939 94 194 294 394 194 94 - - - - 3940 - - - - - - - - 300 0 3941 - - - - - - - - 305 5 3942 - - - - - - - - 315 15 3943 - - - - - - - - 325 25 3944 - - - - - - - - 335 35 3945 - - - - - - - - 345 45 3946 - - - - - - - - 355 55 3947 - - - - - - - - 365 65 3948 - - - - - - - - 375 75 3949 - - - - - - - - 385 85 3950 - - - - - - - - 395 95 3951} 3952do_execsql_test joinD-153 { 3953 SELECT t1.*, t2.*, t3.*, t4.* 3954 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 3955 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 3956 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 3957 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3958} { 3959 30 130 230 330 130 30 230 30 330 30 3960 60 160 260 360 160 60 260 60 360 60 3961 90 190 290 390 190 90 290 90 390 90 3962} 3963do_execsql_test joinD-154 { 3964 SELECT t1.*, t2.*, t3.*, t4.* 3965 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 3966 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 3967 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 3968 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3969} { 3970 30 130 230 330 130 30 230 30 330 30 3971 60 160 260 360 160 60 260 60 360 60 3972 90 190 290 390 190 90 290 90 390 90 3973} 3974do_execsql_test joinD-155 { 3975 SELECT t1.*, t2.*, t3.*, t4.* 3976 FROM t1 INNER JOIN t2 ON t1.b=t2.b 3977 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 3978 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 3979 WHERE t2.x>0 3980 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3981} { 3982 30 130 230 330 130 30 230 30 330 30 3983 60 160 260 360 160 60 260 60 360 60 3984 90 190 290 390 190 90 290 90 390 90 3985} 3986do_execsql_test joinD-156 { 3987 SELECT t1.*, t2.*, t3.*, t4.* 3988 FROM t1 INNER JOIN t2 ON t1.b=t2.b 3989 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 3990 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 3991 WHERE (t2.x>0 OR t2.x IS NULL) 3992 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3993} { 3994 30 130 230 330 130 30 230 30 330 30 3995 60 160 260 360 160 60 260 60 360 60 3996 90 190 290 390 190 90 290 90 390 90 3997} 3998do_execsql_test joinD-157 { 3999 SELECT t1.*, t2.*, t3.*, t4.* 4000 FROM t1 INNER JOIN t2 ON true 4001 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4002 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 4003 WHERE t1.b=t2.b AND t2.x>0 4004 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4005} { 4006 30 130 230 330 130 30 230 30 330 30 4007 60 160 260 360 160 60 260 60 360 60 4008 90 190 290 390 190 90 290 90 390 90 4009} 4010do_execsql_test joinD-158 { 4011 SELECT t1.*, t2.*, t3.*, t4.* 4012 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4013 RIGHT JOIN t3 ON t1.c=t3.c 4014 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 4015 WHERE t3.y>0 4016 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4017} { 4018 30 130 230 330 130 30 230 30 330 30 4019 60 160 260 360 160 60 260 60 360 60 4020 90 190 290 390 190 90 290 90 390 90 4021} 4022do_execsql_test joinD-159 { 4023 SELECT t1.*, t2.*, t3.*, t4.* 4024 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4025 RIGHT JOIN t3 ON t1.c=t3.c 4026 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 4027 WHERE t3.y>0 OR t3.y IS NULL 4028 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4029} { 4030 30 130 230 330 130 30 230 30 330 30 4031 60 160 260 360 160 60 260 60 360 60 4032 90 190 290 390 190 90 290 90 390 90 4033} 4034do_execsql_test joinD-160 { 4035 SELECT t1.*, t2.*, t3.*, t4.* 4036 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4037 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4038 INNER JOIN t4 ON t1.d=t4.d 4039 WHERE t4.z>0 4040 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4041} { 4042 30 130 230 330 130 30 230 30 330 30 4043 60 160 260 360 160 60 260 60 360 60 4044 90 190 290 390 190 90 290 90 390 90 4045} 4046do_execsql_test joinD-161 { 4047 SELECT t1.*, t2.*, t3.*, t4.* 4048 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4049 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4050 INNER JOIN t4 ON t1.d=t4.d 4051 WHERE t4.z IS NULL OR t4.z>0 4052 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4053} { 4054 30 130 230 330 130 30 230 30 330 30 4055 60 160 260 360 160 60 260 60 360 60 4056 90 190 290 390 190 90 290 90 390 90 4057} 4058do_execsql_test joinD-162 { 4059 SELECT t1.*, t2.*, t3.*, t4.* 4060 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4061 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4062 INNER JOIN t4 ON t1.d=t4.d 4063 WHERE t2.x>0 AND t4.z>0 4064 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4065} { 4066 30 130 230 330 130 30 230 30 330 30 4067 60 160 260 360 160 60 260 60 360 60 4068 90 190 290 390 190 90 290 90 390 90 4069} 4070do_execsql_test joinD-163 { 4071 SELECT t1.*, t2.*, t3.*, t4.* 4072 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4073 RIGHT JOIN t3 ON t1.c=t3.c 4074 INNER JOIN t4 ON t1.d=t4.d 4075 WHERE t4.z>0 AND t3.y>0 4076 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4077} { 4078 30 130 230 330 130 30 230 30 330 30 4079 60 160 260 360 160 60 260 60 360 60 4080 90 190 290 390 190 90 290 90 390 90 4081} 4082do_execsql_test joinD-164 { 4083 SELECT t1.*, t2.*, t3.*, t4.* 4084 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4085 RIGHT JOIN t3 ON t1.c=t3.c 4086 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 4087 WHERE t2.x>0 AND t3.y>0 4088 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4089} { 4090 30 130 230 330 130 30 230 30 330 30 4091 60 160 260 360 160 60 260 60 360 60 4092 90 190 290 390 190 90 290 90 390 90 4093} 4094do_execsql_test joinD-165 { 4095 SELECT t1.*, t2.*, t3.*, t4.* 4096 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4097 RIGHT JOIN t3 ON t1.c=t3.c 4098 INNER JOIN t4 ON t1.d=t4.d 4099 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 4100 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4101} { 4102 30 130 230 330 130 30 230 30 330 30 4103 60 160 260 360 160 60 260 60 360 60 4104 90 190 290 390 190 90 290 90 390 90 4105} 4106do_execsql_test joinD-166 { 4107 SELECT t1.*, t2.*, t3.*, t4.* 4108 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 4109 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 4110 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 4111 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4112} { 4113 30 130 230 330 130 30 230 30 330 30 4114 60 160 260 360 160 60 260 60 360 60 4115 90 190 290 390 190 90 290 90 390 90 4116} 4117do_execsql_test joinD-167 { 4118 SELECT t1.*, t2.*, t3.*, t4.* 4119 FROM t1 INNER JOIN t2 ON t2.x>0 4120 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 4121 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 4122 WHERE t1.b IS NOT DISTINCT FROM t2.b 4123 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4124} { 4125 30 130 230 330 130 30 230 30 330 30 4126 60 160 260 360 160 60 260 60 360 60 4127 90 190 290 390 190 90 290 90 390 90 4128} 4129do_execsql_test joinD-168 { 4130 SELECT t1.*, t2.*, t3.*, t4.* 4131 FROM t1 INNER JOIN t2 ON t2.x>0 4132 RIGHT JOIN t3 ON t3.y>0 4133 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 4134 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 4135 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4136} { 4137 30 130 230 330 130 30 230 30 330 30 4138 60 160 260 360 160 60 260 60 360 60 4139 90 190 290 390 190 90 290 90 390 90 4140} 4141do_execsql_test joinD-169 { 4142 SELECT t1.*, t2.*, t3.*, t4.* 4143 FROM t1 INNER JOIN t2 ON t2.x>0 4144 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 4145 INNER JOIN t4 ON t4.z>0 4146 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 4147 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4148} { 4149 30 130 230 330 130 30 230 30 330 30 4150 60 160 260 360 160 60 260 60 360 60 4151 90 190 290 390 190 90 290 90 390 90 4152} 4153do_execsql_test joinD-170 { 4154 SELECT t1.*, t2.*, t3.*, t4.* 4155 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 4156 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4157 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 4158 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4159} { 4160 30 130 230 330 130 30 230 30 330 30 4161 60 160 260 360 160 60 260 60 360 60 4162 90 190 290 390 190 90 290 90 390 90 4163} 4164do_execsql_test joinD-171 { 4165 SELECT t1.*, t2.*, t3.*, t4.* 4166 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4167 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 4168 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 4169 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4170} { 4171 30 130 230 330 130 30 230 30 330 30 4172 60 160 260 360 160 60 260 60 360 60 4173 90 190 290 390 190 90 290 90 390 90 4174} 4175do_execsql_test joinD-172 { 4176 SELECT t1.*, t2.*, t3.*, t4.* 4177 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4178 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4179 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4180 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4181} { 4182 6 106 206 306 106 6 206 6 - - 4183 12 112 212 312 112 12 212 12 - - 4184 18 118 218 318 118 18 218 18 - - 4185 24 124 224 324 124 24 224 24 - - 4186 30 130 230 330 130 30 230 30 330 30 4187 36 136 236 336 136 36 236 36 - - 4188 42 142 242 342 142 42 242 42 - - 4189 48 148 248 348 148 48 248 48 - - 4190 54 154 254 354 154 54 254 54 - - 4191 60 160 260 360 160 60 260 60 360 60 4192 66 166 266 366 166 66 266 66 - - 4193 72 172 272 372 172 72 272 72 - - 4194 78 178 278 378 178 78 278 78 - - 4195 84 184 284 384 184 84 284 84 - - 4196 90 190 290 390 190 90 290 90 390 90 4197 - - - - - - 200 0 - - 4198 - - - - - - 203 3 - - 4199 - - - - - - 209 9 - - 4200 - - - - - - 215 15 - - 4201 - - - - - - 221 21 - - 4202 - - - - - - 227 27 - - 4203 - - - - - - 233 33 - - 4204 - - - - - - 239 39 - - 4205 - - - - - - 245 45 - - 4206 - - - - - - 251 51 - - 4207 - - - - - - 257 57 - - 4208 - - - - - - 263 63 - - 4209 - - - - - - 269 69 - - 4210 - - - - - - 275 75 - - 4211 - - - - - - 281 81 - - 4212 - - - - - - 287 87 - - 4213 - - - - - - 293 93 - - 4214} 4215do_execsql_test joinD-173 { 4216 SELECT t1.*, t2.*, t3.*, t4.* 4217 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 4218 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4219 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4220 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4221} { 4222 6 106 206 306 106 6 206 6 - - 4223 12 112 212 312 112 12 212 12 - - 4224 18 118 218 318 118 18 218 18 - - 4225 24 124 224 324 124 24 224 24 - - 4226 30 130 230 330 130 30 230 30 330 30 4227 36 136 236 336 136 36 236 36 - - 4228 42 142 242 342 142 42 242 42 - - 4229 48 148 248 348 148 48 248 48 - - 4230 54 154 254 354 154 54 254 54 - - 4231 60 160 260 360 160 60 260 60 360 60 4232 66 166 266 366 166 66 266 66 - - 4233 72 172 272 372 172 72 272 72 - - 4234 78 178 278 378 178 78 278 78 - - 4235 84 184 284 384 184 84 284 84 - - 4236 90 190 290 390 190 90 290 90 390 90 4237 - - - - - - 200 0 - - 4238 - - - - - - 203 3 - - 4239 - - - - - - 209 9 - - 4240 - - - - - - 215 15 - - 4241 - - - - - - 221 21 - - 4242 - - - - - - 227 27 - - 4243 - - - - - - 233 33 - - 4244 - - - - - - 239 39 - - 4245 - - - - - - 245 45 - - 4246 - - - - - - 251 51 - - 4247 - - - - - - 257 57 - - 4248 - - - - - - 263 63 - - 4249 - - - - - - 269 69 - - 4250 - - - - - - 275 75 - - 4251 - - - - - - 281 81 - - 4252 - - - - - - 287 87 - - 4253 - - - - - - 293 93 - - 4254} 4255do_execsql_test joinD-174 { 4256 SELECT t1.*, t2.*, t3.*, t4.* 4257 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4258 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4259 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4260 WHERE t2.x>0 4261 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4262} { 4263 6 106 206 306 106 6 206 6 - - 4264 12 112 212 312 112 12 212 12 - - 4265 18 118 218 318 118 18 218 18 - - 4266 24 124 224 324 124 24 224 24 - - 4267 30 130 230 330 130 30 230 30 330 30 4268 36 136 236 336 136 36 236 36 - - 4269 42 142 242 342 142 42 242 42 - - 4270 48 148 248 348 148 48 248 48 - - 4271 54 154 254 354 154 54 254 54 - - 4272 60 160 260 360 160 60 260 60 360 60 4273 66 166 266 366 166 66 266 66 - - 4274 72 172 272 372 172 72 272 72 - - 4275 78 178 278 378 178 78 278 78 - - 4276 84 184 284 384 184 84 284 84 - - 4277 90 190 290 390 190 90 290 90 390 90 4278} 4279do_execsql_test joinD-175 { 4280 SELECT t1.*, t2.*, t3.*, t4.* 4281 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4282 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4283 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4284 WHERE (t2.x>0 OR t2.x IS NULL) 4285 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4286} { 4287 6 106 206 306 106 6 206 6 - - 4288 12 112 212 312 112 12 212 12 - - 4289 18 118 218 318 118 18 218 18 - - 4290 24 124 224 324 124 24 224 24 - - 4291 30 130 230 330 130 30 230 30 330 30 4292 36 136 236 336 136 36 236 36 - - 4293 42 142 242 342 142 42 242 42 - - 4294 48 148 248 348 148 48 248 48 - - 4295 54 154 254 354 154 54 254 54 - - 4296 60 160 260 360 160 60 260 60 360 60 4297 66 166 266 366 166 66 266 66 - - 4298 72 172 272 372 172 72 272 72 - - 4299 78 178 278 378 178 78 278 78 - - 4300 84 184 284 384 184 84 284 84 - - 4301 90 190 290 390 190 90 290 90 390 90 4302 - - - - - - 200 0 - - 4303 - - - - - - 203 3 - - 4304 - - - - - - 209 9 - - 4305 - - - - - - 215 15 - - 4306 - - - - - - 221 21 - - 4307 - - - - - - 227 27 - - 4308 - - - - - - 233 33 - - 4309 - - - - - - 239 39 - - 4310 - - - - - - 245 45 - - 4311 - - - - - - 251 51 - - 4312 - - - - - - 257 57 - - 4313 - - - - - - 263 63 - - 4314 - - - - - - 269 69 - - 4315 - - - - - - 275 75 - - 4316 - - - - - - 281 81 - - 4317 - - - - - - 287 87 - - 4318 - - - - - - 293 93 - - 4319} 4320do_execsql_test joinD-176 { 4321 SELECT t1.*, t2.*, t3.*, t4.* 4322 FROM t1 INNER JOIN t2 ON true 4323 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4324 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4325 WHERE t1.b=t2.b AND t2.x>0 4326 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4327} { 4328 6 106 206 306 106 6 206 6 - - 4329 12 112 212 312 112 12 212 12 - - 4330 18 118 218 318 118 18 218 18 - - 4331 24 124 224 324 124 24 224 24 - - 4332 30 130 230 330 130 30 230 30 330 30 4333 36 136 236 336 136 36 236 36 - - 4334 42 142 242 342 142 42 242 42 - - 4335 48 148 248 348 148 48 248 48 - - 4336 54 154 254 354 154 54 254 54 - - 4337 60 160 260 360 160 60 260 60 360 60 4338 66 166 266 366 166 66 266 66 - - 4339 72 172 272 372 172 72 272 72 - - 4340 78 178 278 378 178 78 278 78 - - 4341 84 184 284 384 184 84 284 84 - - 4342 90 190 290 390 190 90 290 90 390 90 4343} 4344do_execsql_test joinD-177 { 4345 SELECT t1.*, t2.*, t3.*, t4.* 4346 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4347 RIGHT JOIN t3 ON t1.c=t3.c 4348 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4349 WHERE t3.y>0 4350 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4351} { 4352 6 106 206 306 106 6 206 6 - - 4353 12 112 212 312 112 12 212 12 - - 4354 18 118 218 318 118 18 218 18 - - 4355 24 124 224 324 124 24 224 24 - - 4356 30 130 230 330 130 30 230 30 330 30 4357 36 136 236 336 136 36 236 36 - - 4358 42 142 242 342 142 42 242 42 - - 4359 48 148 248 348 148 48 248 48 - - 4360 54 154 254 354 154 54 254 54 - - 4361 60 160 260 360 160 60 260 60 360 60 4362 66 166 266 366 166 66 266 66 - - 4363 72 172 272 372 172 72 272 72 - - 4364 78 178 278 378 178 78 278 78 - - 4365 84 184 284 384 184 84 284 84 - - 4366 90 190 290 390 190 90 290 90 390 90 4367 - - - - - - 203 3 - - 4368 - - - - - - 209 9 - - 4369 - - - - - - 215 15 - - 4370 - - - - - - 221 21 - - 4371 - - - - - - 227 27 - - 4372 - - - - - - 233 33 - - 4373 - - - - - - 239 39 - - 4374 - - - - - - 245 45 - - 4375 - - - - - - 251 51 - - 4376 - - - - - - 257 57 - - 4377 - - - - - - 263 63 - - 4378 - - - - - - 269 69 - - 4379 - - - - - - 275 75 - - 4380 - - - - - - 281 81 - - 4381 - - - - - - 287 87 - - 4382 - - - - - - 293 93 - - 4383} 4384do_execsql_test joinD-178 { 4385 SELECT t1.*, t2.*, t3.*, t4.* 4386 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4387 RIGHT JOIN t3 ON t1.c=t3.c 4388 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4389 WHERE t3.y>0 OR t3.y IS NULL 4390 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4391} { 4392 6 106 206 306 106 6 206 6 - - 4393 12 112 212 312 112 12 212 12 - - 4394 18 118 218 318 118 18 218 18 - - 4395 24 124 224 324 124 24 224 24 - - 4396 30 130 230 330 130 30 230 30 330 30 4397 36 136 236 336 136 36 236 36 - - 4398 42 142 242 342 142 42 242 42 - - 4399 48 148 248 348 148 48 248 48 - - 4400 54 154 254 354 154 54 254 54 - - 4401 60 160 260 360 160 60 260 60 360 60 4402 66 166 266 366 166 66 266 66 - - 4403 72 172 272 372 172 72 272 72 - - 4404 78 178 278 378 178 78 278 78 - - 4405 84 184 284 384 184 84 284 84 - - 4406 90 190 290 390 190 90 290 90 390 90 4407 - - - - - - 203 3 - - 4408 - - - - - - 209 9 - - 4409 - - - - - - 215 15 - - 4410 - - - - - - 221 21 - - 4411 - - - - - - 227 27 - - 4412 - - - - - - 233 33 - - 4413 - - - - - - 239 39 - - 4414 - - - - - - 245 45 - - 4415 - - - - - - 251 51 - - 4416 - - - - - - 257 57 - - 4417 - - - - - - 263 63 - - 4418 - - - - - - 269 69 - - 4419 - - - - - - 275 75 - - 4420 - - - - - - 281 81 - - 4421 - - - - - - 287 87 - - 4422 - - - - - - 293 93 - - 4423} 4424do_execsql_test joinD-179 { 4425 SELECT t1.*, t2.*, t3.*, t4.* 4426 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4427 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4428 LEFT JOIN t4 ON t1.d=t4.d 4429 WHERE t4.z>0 4430 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4431} { 4432 30 130 230 330 130 30 230 30 330 30 4433 60 160 260 360 160 60 260 60 360 60 4434 90 190 290 390 190 90 290 90 390 90 4435} 4436do_execsql_test joinD-180 { 4437 SELECT t1.*, t2.*, t3.*, t4.* 4438 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4439 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4440 LEFT JOIN t4 ON t1.d=t4.d 4441 WHERE t4.z IS NULL OR t4.z>0 4442 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4443} { 4444 6 106 206 306 106 6 206 6 - - 4445 12 112 212 312 112 12 212 12 - - 4446 18 118 218 318 118 18 218 18 - - 4447 24 124 224 324 124 24 224 24 - - 4448 30 130 230 330 130 30 230 30 330 30 4449 36 136 236 336 136 36 236 36 - - 4450 42 142 242 342 142 42 242 42 - - 4451 48 148 248 348 148 48 248 48 - - 4452 54 154 254 354 154 54 254 54 - - 4453 60 160 260 360 160 60 260 60 360 60 4454 66 166 266 366 166 66 266 66 - - 4455 72 172 272 372 172 72 272 72 - - 4456 78 178 278 378 178 78 278 78 - - 4457 84 184 284 384 184 84 284 84 - - 4458 90 190 290 390 190 90 290 90 390 90 4459 - - - - - - 200 0 - - 4460 - - - - - - 203 3 - - 4461 - - - - - - 209 9 - - 4462 - - - - - - 215 15 - - 4463 - - - - - - 221 21 - - 4464 - - - - - - 227 27 - - 4465 - - - - - - 233 33 - - 4466 - - - - - - 239 39 - - 4467 - - - - - - 245 45 - - 4468 - - - - - - 251 51 - - 4469 - - - - - - 257 57 - - 4470 - - - - - - 263 63 - - 4471 - - - - - - 269 69 - - 4472 - - - - - - 275 75 - - 4473 - - - - - - 281 81 - - 4474 - - - - - - 287 87 - - 4475 - - - - - - 293 93 - - 4476} 4477do_execsql_test joinD-181 { 4478 SELECT t1.*, t2.*, t3.*, t4.* 4479 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4480 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4481 LEFT JOIN t4 ON t1.d=t4.d 4482 WHERE t2.x>0 AND t4.z>0 4483 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4484} { 4485 30 130 230 330 130 30 230 30 330 30 4486 60 160 260 360 160 60 260 60 360 60 4487 90 190 290 390 190 90 290 90 390 90 4488} 4489do_execsql_test joinD-182 { 4490 SELECT t1.*, t2.*, t3.*, t4.* 4491 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4492 RIGHT JOIN t3 ON t1.c=t3.c 4493 LEFT JOIN t4 ON t1.d=t4.d 4494 WHERE t4.z>0 AND t3.y>0 4495 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4496} { 4497 30 130 230 330 130 30 230 30 330 30 4498 60 160 260 360 160 60 260 60 360 60 4499 90 190 290 390 190 90 290 90 390 90 4500} 4501do_execsql_test joinD-183 { 4502 SELECT t1.*, t2.*, t3.*, t4.* 4503 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4504 RIGHT JOIN t3 ON t1.c=t3.c 4505 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4506 WHERE t2.x>0 AND t3.y>0 4507 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4508} { 4509 6 106 206 306 106 6 206 6 - - 4510 12 112 212 312 112 12 212 12 - - 4511 18 118 218 318 118 18 218 18 - - 4512 24 124 224 324 124 24 224 24 - - 4513 30 130 230 330 130 30 230 30 330 30 4514 36 136 236 336 136 36 236 36 - - 4515 42 142 242 342 142 42 242 42 - - 4516 48 148 248 348 148 48 248 48 - - 4517 54 154 254 354 154 54 254 54 - - 4518 60 160 260 360 160 60 260 60 360 60 4519 66 166 266 366 166 66 266 66 - - 4520 72 172 272 372 172 72 272 72 - - 4521 78 178 278 378 178 78 278 78 - - 4522 84 184 284 384 184 84 284 84 - - 4523 90 190 290 390 190 90 290 90 390 90 4524} 4525do_execsql_test joinD-184 { 4526 SELECT t1.*, t2.*, t3.*, t4.* 4527 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4528 RIGHT JOIN t3 ON t1.c=t3.c 4529 LEFT JOIN t4 ON t1.d=t4.d 4530 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 4531 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4532} { 4533 30 130 230 330 130 30 230 30 330 30 4534 60 160 260 360 160 60 260 60 360 60 4535 90 190 290 390 190 90 290 90 390 90 4536} 4537do_execsql_test joinD-185 { 4538 SELECT t1.*, t2.*, t3.*, t4.* 4539 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 4540 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 4541 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 4542 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4543} { 4544 6 106 206 306 106 6 206 6 - - 4545 12 112 212 312 112 12 212 12 - - 4546 18 118 218 318 118 18 218 18 - - 4547 24 124 224 324 124 24 224 24 - - 4548 30 130 230 330 130 30 230 30 330 30 4549 36 136 236 336 136 36 236 36 - - 4550 42 142 242 342 142 42 242 42 - - 4551 48 148 248 348 148 48 248 48 - - 4552 54 154 254 354 154 54 254 54 - - 4553 60 160 260 360 160 60 260 60 360 60 4554 66 166 266 366 166 66 266 66 - - 4555 72 172 272 372 172 72 272 72 - - 4556 78 178 278 378 178 78 278 78 - - 4557 84 184 284 384 184 84 284 84 - - 4558 90 190 290 390 190 90 290 90 390 90 4559 - - - - - - 200 0 - - 4560 - - - - - - 203 3 - - 4561 - - - - - - 209 9 - - 4562 - - - - - - 215 15 - - 4563 - - - - - - 221 21 - - 4564 - - - - - - 227 27 - - 4565 - - - - - - 233 33 - - 4566 - - - - - - 239 39 - - 4567 - - - - - - 245 45 - - 4568 - - - - - - 251 51 - - 4569 - - - - - - 257 57 - - 4570 - - - - - - 263 63 - - 4571 - - - - - - 269 69 - - 4572 - - - - - - 275 75 - - 4573 - - - - - - 281 81 - - 4574 - - - - - - 287 87 - - 4575 - - - - - - 293 93 - - 4576} 4577do_execsql_test joinD-186 { 4578 SELECT t1.*, t2.*, t3.*, t4.* 4579 FROM t1 INNER JOIN t2 ON t2.x>0 4580 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 4581 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 4582 WHERE t1.b IS NOT DISTINCT FROM t2.b 4583 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4584} { 4585 6 106 206 306 106 6 206 6 - - 4586 12 112 212 312 112 12 212 12 - - 4587 18 118 218 318 118 18 218 18 - - 4588 24 124 224 324 124 24 224 24 - - 4589 30 130 230 330 130 30 230 30 330 30 4590 36 136 236 336 136 36 236 36 - - 4591 42 142 242 342 142 42 242 42 - - 4592 48 148 248 348 148 48 248 48 - - 4593 54 154 254 354 154 54 254 54 - - 4594 60 160 260 360 160 60 260 60 360 60 4595 66 166 266 366 166 66 266 66 - - 4596 72 172 272 372 172 72 272 72 - - 4597 78 178 278 378 178 78 278 78 - - 4598 84 184 284 384 184 84 284 84 - - 4599 90 190 290 390 190 90 290 90 390 90 4600 - - - - - - 200 0 - - 4601} 4602do_execsql_test joinD-187 { 4603 SELECT t1.*, t2.*, t3.*, t4.* 4604 FROM t1 INNER JOIN t2 ON t2.x>0 4605 RIGHT JOIN t3 ON t3.y>0 4606 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 4607 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 4608 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4609} { 4610 6 106 206 306 106 6 206 6 - - 4611 12 112 212 312 112 12 212 12 - - 4612 18 118 218 318 118 18 218 18 - - 4613 24 124 224 324 124 24 224 24 - - 4614 30 130 230 330 130 30 230 30 330 30 4615 36 136 236 336 136 36 236 36 - - 4616 42 142 242 342 142 42 242 42 - - 4617 48 148 248 348 148 48 248 48 - - 4618 54 154 254 354 154 54 254 54 - - 4619 60 160 260 360 160 60 260 60 360 60 4620 66 166 266 366 166 66 266 66 - - 4621 72 172 272 372 172 72 272 72 - - 4622 78 178 278 378 178 78 278 78 - - 4623 84 184 284 384 184 84 284 84 - - 4624 90 190 290 390 190 90 290 90 390 90 4625} 4626do_execsql_test joinD-188 { 4627 SELECT t1.*, t2.*, t3.*, t4.* 4628 FROM t1 INNER JOIN t2 ON t2.x>0 4629 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 4630 LEFT JOIN t4 ON t4.z>0 4631 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 4632 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4633} { 4634 30 130 230 330 130 30 230 30 330 30 4635 60 160 260 360 160 60 260 60 360 60 4636 90 190 290 390 190 90 290 90 390 90 4637} 4638do_execsql_test joinD-189 { 4639 SELECT t1.*, t2.*, t3.*, t4.* 4640 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 4641 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4642 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4643 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4644} { 4645 6 106 206 306 106 6 206 6 - - 4646 12 112 212 312 112 12 212 12 - - 4647 18 118 218 318 118 18 218 18 - - 4648 24 124 224 324 124 24 224 24 - - 4649 30 130 230 330 130 30 230 30 330 30 4650 36 136 236 336 136 36 236 36 - - 4651 42 142 242 342 142 42 242 42 - - 4652 48 148 248 348 148 48 248 48 - - 4653 54 154 254 354 154 54 254 54 - - 4654 60 160 260 360 160 60 260 60 360 60 4655 66 166 266 366 166 66 266 66 - - 4656 72 172 272 372 172 72 272 72 - - 4657 78 178 278 378 178 78 278 78 - - 4658 84 184 284 384 184 84 284 84 - - 4659 90 190 290 390 190 90 290 90 390 90 4660 - - - - - - 200 0 - - 4661 - - - - - - 203 3 - - 4662 - - - - - - 209 9 - - 4663 - - - - - - 215 15 - - 4664 - - - - - - 221 21 - - 4665 - - - - - - 227 27 - - 4666 - - - - - - 233 33 - - 4667 - - - - - - 239 39 - - 4668 - - - - - - 245 45 - - 4669 - - - - - - 251 51 - - 4670 - - - - - - 257 57 - - 4671 - - - - - - 263 63 - - 4672 - - - - - - 269 69 - - 4673 - - - - - - 275 75 - - 4674 - - - - - - 281 81 - - 4675 - - - - - - 287 87 - - 4676 - - - - - - 293 93 - - 4677} 4678do_execsql_test joinD-190 { 4679 SELECT t1.*, t2.*, t3.*, t4.* 4680 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4681 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 4682 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4683 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4684} { 4685 6 106 206 306 106 6 206 6 - - 4686 12 112 212 312 112 12 212 12 - - 4687 18 118 218 318 118 18 218 18 - - 4688 24 124 224 324 124 24 224 24 - - 4689 30 130 230 330 130 30 230 30 330 30 4690 36 136 236 336 136 36 236 36 - - 4691 42 142 242 342 142 42 242 42 - - 4692 48 148 248 348 148 48 248 48 - - 4693 54 154 254 354 154 54 254 54 - - 4694 60 160 260 360 160 60 260 60 360 60 4695 66 166 266 366 166 66 266 66 - - 4696 72 172 272 372 172 72 272 72 - - 4697 78 178 278 378 178 78 278 78 - - 4698 84 184 284 384 184 84 284 84 - - 4699 90 190 290 390 190 90 290 90 390 90 4700 - - - - - - 200 0 - - 4701 - - - - - - 203 3 - - 4702 - - - - - - 209 9 - - 4703 - - - - - - 215 15 - - 4704 - - - - - - 221 21 - - 4705 - - - - - - 227 27 - - 4706 - - - - - - 233 33 - - 4707 - - - - - - 239 39 - - 4708 - - - - - - 245 45 - - 4709 - - - - - - 251 51 - - 4710 - - - - - - 257 57 - - 4711 - - - - - - 263 63 - - 4712 - - - - - - 269 69 - - 4713 - - - - - - 275 75 - - 4714 - - - - - - 281 81 - - 4715 - - - - - - 287 87 - - 4716 - - - - - - 293 93 - - 4717} 4718do_execsql_test joinD-191 { 4719 SELECT t1.*, t2.*, t3.*, t4.* 4720 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4721 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4722 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 4723 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4724} { 4725 30 130 230 330 130 30 230 30 330 30 4726 60 160 260 360 160 60 260 60 360 60 4727 90 190 290 390 190 90 290 90 390 90 4728 - - - - - - - - 300 0 4729 - - - - - - - - 305 5 4730 - - - - - - - - 310 10 4731 - - - - - - - - 315 15 4732 - - - - - - - - 320 20 4733 - - - - - - - - 325 25 4734 - - - - - - - - 335 35 4735 - - - - - - - - 340 40 4736 - - - - - - - - 345 45 4737 - - - - - - - - 350 50 4738 - - - - - - - - 355 55 4739 - - - - - - - - 365 65 4740 - - - - - - - - 370 70 4741 - - - - - - - - 375 75 4742 - - - - - - - - 380 80 4743 - - - - - - - - 385 85 4744 - - - - - - - - 395 95 4745} 4746do_execsql_test joinD-192 { 4747 SELECT t1.*, t2.*, t3.*, t4.* 4748 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 4749 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4750 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 4751 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4752} { 4753 30 130 230 330 130 30 230 30 330 30 4754 60 160 260 360 160 60 260 60 360 60 4755 90 190 290 390 190 90 290 90 390 90 4756 - - - - - - - - 300 0 4757 - - - - - - - - 305 5 4758 - - - - - - - - 310 10 4759 - - - - - - - - 315 15 4760 - - - - - - - - 320 20 4761 - - - - - - - - 325 25 4762 - - - - - - - - 335 35 4763 - - - - - - - - 340 40 4764 - - - - - - - - 345 45 4765 - - - - - - - - 350 50 4766 - - - - - - - - 355 55 4767 - - - - - - - - 365 65 4768 - - - - - - - - 370 70 4769 - - - - - - - - 375 75 4770 - - - - - - - - 380 80 4771 - - - - - - - - 385 85 4772 - - - - - - - - 395 95 4773} 4774do_execsql_test joinD-193 { 4775 SELECT t1.*, t2.*, t3.*, t4.* 4776 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4777 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4778 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 4779 WHERE t2.x>0 4780 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4781} { 4782 30 130 230 330 130 30 230 30 330 30 4783 60 160 260 360 160 60 260 60 360 60 4784 90 190 290 390 190 90 290 90 390 90 4785} 4786do_execsql_test joinD-194 { 4787 SELECT t1.*, t2.*, t3.*, t4.* 4788 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4789 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4790 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 4791 WHERE (t2.x>0 OR t2.x IS NULL) 4792 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4793} { 4794 30 130 230 330 130 30 230 30 330 30 4795 60 160 260 360 160 60 260 60 360 60 4796 90 190 290 390 190 90 290 90 390 90 4797 - - - - - - - - 300 0 4798 - - - - - - - - 305 5 4799 - - - - - - - - 310 10 4800 - - - - - - - - 315 15 4801 - - - - - - - - 320 20 4802 - - - - - - - - 325 25 4803 - - - - - - - - 335 35 4804 - - - - - - - - 340 40 4805 - - - - - - - - 345 45 4806 - - - - - - - - 350 50 4807 - - - - - - - - 355 55 4808 - - - - - - - - 365 65 4809 - - - - - - - - 370 70 4810 - - - - - - - - 375 75 4811 - - - - - - - - 380 80 4812 - - - - - - - - 385 85 4813 - - - - - - - - 395 95 4814} 4815do_execsql_test joinD-195 { 4816 SELECT t1.*, t2.*, t3.*, t4.* 4817 FROM t1 INNER JOIN t2 ON true 4818 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4819 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 4820 WHERE t1.b=t2.b AND t2.x>0 4821 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4822} { 4823 30 130 230 330 130 30 230 30 330 30 4824 60 160 260 360 160 60 260 60 360 60 4825 90 190 290 390 190 90 290 90 390 90 4826} 4827do_execsql_test joinD-196 { 4828 SELECT t1.*, t2.*, t3.*, t4.* 4829 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4830 RIGHT JOIN t3 ON t1.c=t3.c 4831 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 4832 WHERE t3.y>0 4833 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4834} { 4835 30 130 230 330 130 30 230 30 330 30 4836 60 160 260 360 160 60 260 60 360 60 4837 90 190 290 390 190 90 290 90 390 90 4838} 4839do_execsql_test joinD-197 { 4840 SELECT t1.*, t2.*, t3.*, t4.* 4841 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4842 RIGHT JOIN t3 ON t1.c=t3.c 4843 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 4844 WHERE t3.y>0 OR t3.y IS NULL 4845 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4846} { 4847 30 130 230 330 130 30 230 30 330 30 4848 60 160 260 360 160 60 260 60 360 60 4849 90 190 290 390 190 90 290 90 390 90 4850 - - - - - - - - 300 0 4851 - - - - - - - - 305 5 4852 - - - - - - - - 310 10 4853 - - - - - - - - 315 15 4854 - - - - - - - - 320 20 4855 - - - - - - - - 325 25 4856 - - - - - - - - 335 35 4857 - - - - - - - - 340 40 4858 - - - - - - - - 345 45 4859 - - - - - - - - 350 50 4860 - - - - - - - - 355 55 4861 - - - - - - - - 365 65 4862 - - - - - - - - 370 70 4863 - - - - - - - - 375 75 4864 - - - - - - - - 380 80 4865 - - - - - - - - 385 85 4866 - - - - - - - - 395 95 4867} 4868do_execsql_test joinD-198 { 4869 SELECT t1.*, t2.*, t3.*, t4.* 4870 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4871 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4872 RIGHT JOIN t4 ON t1.d=t4.d 4873 WHERE t4.z>0 4874 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4875} { 4876 30 130 230 330 130 30 230 30 330 30 4877 60 160 260 360 160 60 260 60 360 60 4878 90 190 290 390 190 90 290 90 390 90 4879 - - - - - - - - 305 5 4880 - - - - - - - - 310 10 4881 - - - - - - - - 315 15 4882 - - - - - - - - 320 20 4883 - - - - - - - - 325 25 4884 - - - - - - - - 335 35 4885 - - - - - - - - 340 40 4886 - - - - - - - - 345 45 4887 - - - - - - - - 350 50 4888 - - - - - - - - 355 55 4889 - - - - - - - - 365 65 4890 - - - - - - - - 370 70 4891 - - - - - - - - 375 75 4892 - - - - - - - - 380 80 4893 - - - - - - - - 385 85 4894 - - - - - - - - 395 95 4895} 4896do_execsql_test joinD-199 { 4897 SELECT t1.*, t2.*, t3.*, t4.* 4898 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4899 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4900 RIGHT JOIN t4 ON t1.d=t4.d 4901 WHERE t4.z IS NULL OR t4.z>0 4902 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4903} { 4904 30 130 230 330 130 30 230 30 330 30 4905 60 160 260 360 160 60 260 60 360 60 4906 90 190 290 390 190 90 290 90 390 90 4907 - - - - - - - - 305 5 4908 - - - - - - - - 310 10 4909 - - - - - - - - 315 15 4910 - - - - - - - - 320 20 4911 - - - - - - - - 325 25 4912 - - - - - - - - 335 35 4913 - - - - - - - - 340 40 4914 - - - - - - - - 345 45 4915 - - - - - - - - 350 50 4916 - - - - - - - - 355 55 4917 - - - - - - - - 365 65 4918 - - - - - - - - 370 70 4919 - - - - - - - - 375 75 4920 - - - - - - - - 380 80 4921 - - - - - - - - 385 85 4922 - - - - - - - - 395 95 4923} 4924do_execsql_test joinD-200 { 4925 SELECT t1.*, t2.*, t3.*, t4.* 4926 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4927 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4928 RIGHT JOIN t4 ON t1.d=t4.d 4929 WHERE t2.x>0 AND t4.z>0 4930 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4931} { 4932 30 130 230 330 130 30 230 30 330 30 4933 60 160 260 360 160 60 260 60 360 60 4934 90 190 290 390 190 90 290 90 390 90 4935} 4936do_execsql_test joinD-201 { 4937 SELECT t1.*, t2.*, t3.*, t4.* 4938 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4939 RIGHT JOIN t3 ON t1.c=t3.c 4940 RIGHT JOIN t4 ON t1.d=t4.d 4941 WHERE t4.z>0 AND t3.y>0 4942 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4943} { 4944 30 130 230 330 130 30 230 30 330 30 4945 60 160 260 360 160 60 260 60 360 60 4946 90 190 290 390 190 90 290 90 390 90 4947} 4948do_execsql_test joinD-202 { 4949 SELECT t1.*, t2.*, t3.*, t4.* 4950 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4951 RIGHT JOIN t3 ON t1.c=t3.c 4952 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 4953 WHERE t2.x>0 AND t3.y>0 4954 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4955} { 4956 30 130 230 330 130 30 230 30 330 30 4957 60 160 260 360 160 60 260 60 360 60 4958 90 190 290 390 190 90 290 90 390 90 4959} 4960do_execsql_test joinD-203 { 4961 SELECT t1.*, t2.*, t3.*, t4.* 4962 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4963 RIGHT JOIN t3 ON t1.c=t3.c 4964 RIGHT JOIN t4 ON t1.d=t4.d 4965 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 4966 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4967} { 4968 30 130 230 330 130 30 230 30 330 30 4969 60 160 260 360 160 60 260 60 360 60 4970 90 190 290 390 190 90 290 90 390 90 4971} 4972do_execsql_test joinD-204 { 4973 SELECT t1.*, t2.*, t3.*, t4.* 4974 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 4975 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 4976 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 4977 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4978} { 4979 30 130 230 330 130 30 230 30 330 30 4980 60 160 260 360 160 60 260 60 360 60 4981 90 190 290 390 190 90 290 90 390 90 4982 - - - - - - - - 300 0 4983 - - - - - - - - 305 5 4984 - - - - - - - - 310 10 4985 - - - - - - - - 315 15 4986 - - - - - - - - 320 20 4987 - - - - - - - - 325 25 4988 - - - - - - - - 335 35 4989 - - - - - - - - 340 40 4990 - - - - - - - - 345 45 4991 - - - - - - - - 350 50 4992 - - - - - - - - 355 55 4993 - - - - - - - - 365 65 4994 - - - - - - - - 370 70 4995 - - - - - - - - 375 75 4996 - - - - - - - - 380 80 4997 - - - - - - - - 385 85 4998 - - - - - - - - 395 95 4999} 5000do_execsql_test joinD-205 { 5001 SELECT t1.*, t2.*, t3.*, t4.* 5002 FROM t1 INNER JOIN t2 ON t2.x>0 5003 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 5004 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 5005 WHERE t1.b IS NOT DISTINCT FROM t2.b 5006 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5007} { 5008 30 130 230 330 130 30 230 30 330 30 5009 60 160 260 360 160 60 260 60 360 60 5010 90 190 290 390 190 90 290 90 390 90 5011 - - - - - - - - 300 0 5012 - - - - - - - - 305 5 5013 - - - - - - - - 310 10 5014 - - - - - - - - 320 20 5015 - - - - - - - - 325 25 5016 - - - - - - - - 335 35 5017 - - - - - - - - 340 40 5018 - - - - - - - - 350 50 5019 - - - - - - - - 355 55 5020 - - - - - - - - 365 65 5021 - - - - - - - - 370 70 5022 - - - - - - - - 380 80 5023 - - - - - - - - 385 85 5024 - - - - - - - - 395 95 5025} 5026do_execsql_test joinD-206 { 5027 SELECT t1.*, t2.*, t3.*, t4.* 5028 FROM t1 INNER JOIN t2 ON t2.x>0 5029 RIGHT JOIN t3 ON t3.y>0 5030 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 5031 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 5032 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5033} { 5034 30 130 230 330 130 30 230 30 330 30 5035 60 160 260 360 160 60 260 60 360 60 5036 90 190 290 390 190 90 290 90 390 90 5037 - - - - - - - - 300 0 5038} 5039do_execsql_test joinD-207 { 5040 SELECT t1.*, t2.*, t3.*, t4.* 5041 FROM t1 INNER JOIN t2 ON t2.x>0 5042 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 5043 RIGHT JOIN t4 ON t4.z>0 5044 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 5045 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5046} { 5047 30 130 230 330 130 30 230 30 330 30 5048 60 160 260 360 160 60 260 60 360 60 5049 90 190 290 390 190 90 290 90 390 90 5050} 5051do_execsql_test joinD-208 { 5052 SELECT t1.*, t2.*, t3.*, t4.* 5053 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 5054 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5055 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 5056 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5057} { 5058 30 130 230 330 130 30 230 30 330 30 5059 60 160 260 360 160 60 260 60 360 60 5060 90 190 290 390 190 90 290 90 390 90 5061 - - - - - - - - 300 0 5062 - - - - - - - - 305 5 5063 - - - - - - - - 310 10 5064 - - - - - - - - 315 15 5065 - - - - - - - - 320 20 5066 - - - - - - - - 325 25 5067 - - - - - - - - 335 35 5068 - - - - - - - - 340 40 5069 - - - - - - - - 345 45 5070 - - - - - - - - 350 50 5071 - - - - - - - - 355 55 5072 - - - - - - - - 365 65 5073 - - - - - - - - 370 70 5074 - - - - - - - - 375 75 5075 - - - - - - - - 380 80 5076 - - - - - - - - 385 85 5077 - - - - - - - - 395 95 5078} 5079do_execsql_test joinD-209 { 5080 SELECT t1.*, t2.*, t3.*, t4.* 5081 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5082 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 5083 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 5084 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5085} { 5086 30 130 230 330 130 30 230 30 330 30 5087 60 160 260 360 160 60 260 60 360 60 5088 90 190 290 390 190 90 290 90 390 90 5089 - - - - - - - - 300 0 5090 - - - - - - - - 305 5 5091 - - - - - - - - 310 10 5092 - - - - - - - - 315 15 5093 - - - - - - - - 320 20 5094 - - - - - - - - 325 25 5095 - - - - - - - - 335 35 5096 - - - - - - - - 340 40 5097 - - - - - - - - 345 45 5098 - - - - - - - - 350 50 5099 - - - - - - - - 355 55 5100 - - - - - - - - 365 65 5101 - - - - - - - - 370 70 5102 - - - - - - - - 375 75 5103 - - - - - - - - 380 80 5104 - - - - - - - - 385 85 5105 - - - - - - - - 395 95 5106} 5107do_execsql_test joinD-210 { 5108 SELECT t1.*, t2.*, t3.*, t4.* 5109 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5110 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5111 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5112 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5113} { 5114 6 106 206 306 106 6 206 6 - - 5115 12 112 212 312 112 12 212 12 - - 5116 18 118 218 318 118 18 218 18 - - 5117 24 124 224 324 124 24 224 24 - - 5118 30 130 230 330 130 30 230 30 330 30 5119 36 136 236 336 136 36 236 36 - - 5120 42 142 242 342 142 42 242 42 - - 5121 48 148 248 348 148 48 248 48 - - 5122 54 154 254 354 154 54 254 54 - - 5123 60 160 260 360 160 60 260 60 360 60 5124 66 166 266 366 166 66 266 66 - - 5125 72 172 272 372 172 72 272 72 - - 5126 78 178 278 378 178 78 278 78 - - 5127 84 184 284 384 184 84 284 84 - - 5128 90 190 290 390 190 90 290 90 390 90 5129 - - - - - - 200 0 - - 5130 - - - - - - 203 3 - - 5131 - - - - - - 209 9 - - 5132 - - - - - - 215 15 - - 5133 - - - - - - 221 21 - - 5134 - - - - - - 227 27 - - 5135 - - - - - - 233 33 - - 5136 - - - - - - 239 39 - - 5137 - - - - - - 245 45 - - 5138 - - - - - - 251 51 - - 5139 - - - - - - 257 57 - - 5140 - - - - - - 263 63 - - 5141 - - - - - - 269 69 - - 5142 - - - - - - 275 75 - - 5143 - - - - - - 281 81 - - 5144 - - - - - - 287 87 - - 5145 - - - - - - 293 93 - - 5146 - - - - - - - - 300 0 5147 - - - - - - - - 305 5 5148 - - - - - - - - 310 10 5149 - - - - - - - - 315 15 5150 - - - - - - - - 320 20 5151 - - - - - - - - 325 25 5152 - - - - - - - - 335 35 5153 - - - - - - - - 340 40 5154 - - - - - - - - 345 45 5155 - - - - - - - - 350 50 5156 - - - - - - - - 355 55 5157 - - - - - - - - 365 65 5158 - - - - - - - - 370 70 5159 - - - - - - - - 375 75 5160 - - - - - - - - 380 80 5161 - - - - - - - - 385 85 5162 - - - - - - - - 395 95 5163} 5164do_execsql_test joinD-211 { 5165 SELECT t1.*, t2.*, t3.*, t4.* 5166 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 5167 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5168 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5169 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5170} { 5171 6 106 206 306 106 6 206 6 - - 5172 12 112 212 312 112 12 212 12 - - 5173 18 118 218 318 118 18 218 18 - - 5174 24 124 224 324 124 24 224 24 - - 5175 30 130 230 330 130 30 230 30 330 30 5176 36 136 236 336 136 36 236 36 - - 5177 42 142 242 342 142 42 242 42 - - 5178 48 148 248 348 148 48 248 48 - - 5179 54 154 254 354 154 54 254 54 - - 5180 60 160 260 360 160 60 260 60 360 60 5181 66 166 266 366 166 66 266 66 - - 5182 72 172 272 372 172 72 272 72 - - 5183 78 178 278 378 178 78 278 78 - - 5184 84 184 284 384 184 84 284 84 - - 5185 90 190 290 390 190 90 290 90 390 90 5186 - - - - - - 200 0 - - 5187 - - - - - - 203 3 - - 5188 - - - - - - 209 9 - - 5189 - - - - - - 215 15 - - 5190 - - - - - - 221 21 - - 5191 - - - - - - 227 27 - - 5192 - - - - - - 233 33 - - 5193 - - - - - - 239 39 - - 5194 - - - - - - 245 45 - - 5195 - - - - - - 251 51 - - 5196 - - - - - - 257 57 - - 5197 - - - - - - 263 63 - - 5198 - - - - - - 269 69 - - 5199 - - - - - - 275 75 - - 5200 - - - - - - 281 81 - - 5201 - - - - - - 287 87 - - 5202 - - - - - - 293 93 - - 5203 - - - - - - - - 300 0 5204 - - - - - - - - 305 5 5205 - - - - - - - - 310 10 5206 - - - - - - - - 315 15 5207 - - - - - - - - 320 20 5208 - - - - - - - - 325 25 5209 - - - - - - - - 335 35 5210 - - - - - - - - 340 40 5211 - - - - - - - - 345 45 5212 - - - - - - - - 350 50 5213 - - - - - - - - 355 55 5214 - - - - - - - - 365 65 5215 - - - - - - - - 370 70 5216 - - - - - - - - 375 75 5217 - - - - - - - - 380 80 5218 - - - - - - - - 385 85 5219 - - - - - - - - 395 95 5220} 5221do_execsql_test joinD-212 { 5222 SELECT t1.*, t2.*, t3.*, t4.* 5223 FROM t1 INNER JOIN t2 ON t1.b=t2.b 5224 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5225 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5226 WHERE t2.x>0 5227 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5228} { 5229 6 106 206 306 106 6 206 6 - - 5230 12 112 212 312 112 12 212 12 - - 5231 18 118 218 318 118 18 218 18 - - 5232 24 124 224 324 124 24 224 24 - - 5233 30 130 230 330 130 30 230 30 330 30 5234 36 136 236 336 136 36 236 36 - - 5235 42 142 242 342 142 42 242 42 - - 5236 48 148 248 348 148 48 248 48 - - 5237 54 154 254 354 154 54 254 54 - - 5238 60 160 260 360 160 60 260 60 360 60 5239 66 166 266 366 166 66 266 66 - - 5240 72 172 272 372 172 72 272 72 - - 5241 78 178 278 378 178 78 278 78 - - 5242 84 184 284 384 184 84 284 84 - - 5243 90 190 290 390 190 90 290 90 390 90 5244} 5245do_execsql_test joinD-213 { 5246 SELECT t1.*, t2.*, t3.*, t4.* 5247 FROM t1 INNER JOIN t2 ON t1.b=t2.b 5248 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5249 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5250 WHERE (t2.x>0 OR t2.x IS NULL) 5251 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5252} { 5253 6 106 206 306 106 6 206 6 - - 5254 12 112 212 312 112 12 212 12 - - 5255 18 118 218 318 118 18 218 18 - - 5256 24 124 224 324 124 24 224 24 - - 5257 30 130 230 330 130 30 230 30 330 30 5258 36 136 236 336 136 36 236 36 - - 5259 42 142 242 342 142 42 242 42 - - 5260 48 148 248 348 148 48 248 48 - - 5261 54 154 254 354 154 54 254 54 - - 5262 60 160 260 360 160 60 260 60 360 60 5263 66 166 266 366 166 66 266 66 - - 5264 72 172 272 372 172 72 272 72 - - 5265 78 178 278 378 178 78 278 78 - - 5266 84 184 284 384 184 84 284 84 - - 5267 90 190 290 390 190 90 290 90 390 90 5268 - - - - - - 200 0 - - 5269 - - - - - - 203 3 - - 5270 - - - - - - 209 9 - - 5271 - - - - - - 215 15 - - 5272 - - - - - - 221 21 - - 5273 - - - - - - 227 27 - - 5274 - - - - - - 233 33 - - 5275 - - - - - - 239 39 - - 5276 - - - - - - 245 45 - - 5277 - - - - - - 251 51 - - 5278 - - - - - - 257 57 - - 5279 - - - - - - 263 63 - - 5280 - - - - - - 269 69 - - 5281 - - - - - - 275 75 - - 5282 - - - - - - 281 81 - - 5283 - - - - - - 287 87 - - 5284 - - - - - - 293 93 - - 5285 - - - - - - - - 300 0 5286 - - - - - - - - 305 5 5287 - - - - - - - - 310 10 5288 - - - - - - - - 315 15 5289 - - - - - - - - 320 20 5290 - - - - - - - - 325 25 5291 - - - - - - - - 335 35 5292 - - - - - - - - 340 40 5293 - - - - - - - - 345 45 5294 - - - - - - - - 350 50 5295 - - - - - - - - 355 55 5296 - - - - - - - - 365 65 5297 - - - - - - - - 370 70 5298 - - - - - - - - 375 75 5299 - - - - - - - - 380 80 5300 - - - - - - - - 385 85 5301 - - - - - - - - 395 95 5302} 5303do_execsql_test joinD-214 { 5304 SELECT t1.*, t2.*, t3.*, t4.* 5305 FROM t1 INNER JOIN t2 ON true 5306 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5307 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5308 WHERE t1.b=t2.b AND t2.x>0 5309 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5310} { 5311 6 106 206 306 106 6 206 6 - - 5312 12 112 212 312 112 12 212 12 - - 5313 18 118 218 318 118 18 218 18 - - 5314 24 124 224 324 124 24 224 24 - - 5315 30 130 230 330 130 30 230 30 330 30 5316 36 136 236 336 136 36 236 36 - - 5317 42 142 242 342 142 42 242 42 - - 5318 48 148 248 348 148 48 248 48 - - 5319 54 154 254 354 154 54 254 54 - - 5320 60 160 260 360 160 60 260 60 360 60 5321 66 166 266 366 166 66 266 66 - - 5322 72 172 272 372 172 72 272 72 - - 5323 78 178 278 378 178 78 278 78 - - 5324 84 184 284 384 184 84 284 84 - - 5325 90 190 290 390 190 90 290 90 390 90 5326} 5327do_execsql_test joinD-215 { 5328 SELECT t1.*, t2.*, t3.*, t4.* 5329 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5330 RIGHT JOIN t3 ON t1.c=t3.c 5331 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5332 WHERE t3.y>0 5333 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5334} { 5335 6 106 206 306 106 6 206 6 - - 5336 12 112 212 312 112 12 212 12 - - 5337 18 118 218 318 118 18 218 18 - - 5338 24 124 224 324 124 24 224 24 - - 5339 30 130 230 330 130 30 230 30 330 30 5340 36 136 236 336 136 36 236 36 - - 5341 42 142 242 342 142 42 242 42 - - 5342 48 148 248 348 148 48 248 48 - - 5343 54 154 254 354 154 54 254 54 - - 5344 60 160 260 360 160 60 260 60 360 60 5345 66 166 266 366 166 66 266 66 - - 5346 72 172 272 372 172 72 272 72 - - 5347 78 178 278 378 178 78 278 78 - - 5348 84 184 284 384 184 84 284 84 - - 5349 90 190 290 390 190 90 290 90 390 90 5350 - - - - - - 203 3 - - 5351 - - - - - - 209 9 - - 5352 - - - - - - 215 15 - - 5353 - - - - - - 221 21 - - 5354 - - - - - - 227 27 - - 5355 - - - - - - 233 33 - - 5356 - - - - - - 239 39 - - 5357 - - - - - - 245 45 - - 5358 - - - - - - 251 51 - - 5359 - - - - - - 257 57 - - 5360 - - - - - - 263 63 - - 5361 - - - - - - 269 69 - - 5362 - - - - - - 275 75 - - 5363 - - - - - - 281 81 - - 5364 - - - - - - 287 87 - - 5365 - - - - - - 293 93 - - 5366} 5367do_execsql_test joinD-216 { 5368 SELECT t1.*, t2.*, t3.*, t4.* 5369 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5370 RIGHT JOIN t3 ON t1.c=t3.c 5371 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5372 WHERE t3.y>0 OR t3.y IS NULL 5373 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5374} { 5375 6 106 206 306 106 6 206 6 - - 5376 12 112 212 312 112 12 212 12 - - 5377 18 118 218 318 118 18 218 18 - - 5378 24 124 224 324 124 24 224 24 - - 5379 30 130 230 330 130 30 230 30 330 30 5380 36 136 236 336 136 36 236 36 - - 5381 42 142 242 342 142 42 242 42 - - 5382 48 148 248 348 148 48 248 48 - - 5383 54 154 254 354 154 54 254 54 - - 5384 60 160 260 360 160 60 260 60 360 60 5385 66 166 266 366 166 66 266 66 - - 5386 72 172 272 372 172 72 272 72 - - 5387 78 178 278 378 178 78 278 78 - - 5388 84 184 284 384 184 84 284 84 - - 5389 90 190 290 390 190 90 290 90 390 90 5390 - - - - - - 203 3 - - 5391 - - - - - - 209 9 - - 5392 - - - - - - 215 15 - - 5393 - - - - - - 221 21 - - 5394 - - - - - - 227 27 - - 5395 - - - - - - 233 33 - - 5396 - - - - - - 239 39 - - 5397 - - - - - - 245 45 - - 5398 - - - - - - 251 51 - - 5399 - - - - - - 257 57 - - 5400 - - - - - - 263 63 - - 5401 - - - - - - 269 69 - - 5402 - - - - - - 275 75 - - 5403 - - - - - - 281 81 - - 5404 - - - - - - 287 87 - - 5405 - - - - - - 293 93 - - 5406 - - - - - - - - 300 0 5407 - - - - - - - - 305 5 5408 - - - - - - - - 310 10 5409 - - - - - - - - 315 15 5410 - - - - - - - - 320 20 5411 - - - - - - - - 325 25 5412 - - - - - - - - 335 35 5413 - - - - - - - - 340 40 5414 - - - - - - - - 345 45 5415 - - - - - - - - 350 50 5416 - - - - - - - - 355 55 5417 - - - - - - - - 365 65 5418 - - - - - - - - 370 70 5419 - - - - - - - - 375 75 5420 - - - - - - - - 380 80 5421 - - - - - - - - 385 85 5422 - - - - - - - - 395 95 5423} 5424do_execsql_test joinD-217 { 5425 SELECT t1.*, t2.*, t3.*, t4.* 5426 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5427 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5428 FULL JOIN t4 ON t1.d=t4.d 5429 WHERE t4.z>0 5430 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5431} { 5432 30 130 230 330 130 30 230 30 330 30 5433 60 160 260 360 160 60 260 60 360 60 5434 90 190 290 390 190 90 290 90 390 90 5435 - - - - - - - - 305 5 5436 - - - - - - - - 310 10 5437 - - - - - - - - 315 15 5438 - - - - - - - - 320 20 5439 - - - - - - - - 325 25 5440 - - - - - - - - 335 35 5441 - - - - - - - - 340 40 5442 - - - - - - - - 345 45 5443 - - - - - - - - 350 50 5444 - - - - - - - - 355 55 5445 - - - - - - - - 365 65 5446 - - - - - - - - 370 70 5447 - - - - - - - - 375 75 5448 - - - - - - - - 380 80 5449 - - - - - - - - 385 85 5450 - - - - - - - - 395 95 5451} 5452do_execsql_test joinD-218 { 5453 SELECT t1.*, t2.*, t3.*, t4.* 5454 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5455 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5456 FULL JOIN t4 ON t1.d=t4.d 5457 WHERE t4.z IS NULL OR t4.z>0 5458 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5459} { 5460 6 106 206 306 106 6 206 6 - - 5461 12 112 212 312 112 12 212 12 - - 5462 18 118 218 318 118 18 218 18 - - 5463 24 124 224 324 124 24 224 24 - - 5464 30 130 230 330 130 30 230 30 330 30 5465 36 136 236 336 136 36 236 36 - - 5466 42 142 242 342 142 42 242 42 - - 5467 48 148 248 348 148 48 248 48 - - 5468 54 154 254 354 154 54 254 54 - - 5469 60 160 260 360 160 60 260 60 360 60 5470 66 166 266 366 166 66 266 66 - - 5471 72 172 272 372 172 72 272 72 - - 5472 78 178 278 378 178 78 278 78 - - 5473 84 184 284 384 184 84 284 84 - - 5474 90 190 290 390 190 90 290 90 390 90 5475 - - - - - - 200 0 - - 5476 - - - - - - 203 3 - - 5477 - - - - - - 209 9 - - 5478 - - - - - - 215 15 - - 5479 - - - - - - 221 21 - - 5480 - - - - - - 227 27 - - 5481 - - - - - - 233 33 - - 5482 - - - - - - 239 39 - - 5483 - - - - - - 245 45 - - 5484 - - - - - - 251 51 - - 5485 - - - - - - 257 57 - - 5486 - - - - - - 263 63 - - 5487 - - - - - - 269 69 - - 5488 - - - - - - 275 75 - - 5489 - - - - - - 281 81 - - 5490 - - - - - - 287 87 - - 5491 - - - - - - 293 93 - - 5492 - - - - - - - - 305 5 5493 - - - - - - - - 310 10 5494 - - - - - - - - 315 15 5495 - - - - - - - - 320 20 5496 - - - - - - - - 325 25 5497 - - - - - - - - 335 35 5498 - - - - - - - - 340 40 5499 - - - - - - - - 345 45 5500 - - - - - - - - 350 50 5501 - - - - - - - - 355 55 5502 - - - - - - - - 365 65 5503 - - - - - - - - 370 70 5504 - - - - - - - - 375 75 5505 - - - - - - - - 380 80 5506 - - - - - - - - 385 85 5507 - - - - - - - - 395 95 5508} 5509do_execsql_test joinD-219 { 5510 SELECT t1.*, t2.*, t3.*, t4.* 5511 FROM t1 INNER JOIN t2 ON t1.b=t2.b 5512 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5513 FULL JOIN t4 ON t1.d=t4.d 5514 WHERE t2.x>0 AND t4.z>0 5515 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5516} { 5517 30 130 230 330 130 30 230 30 330 30 5518 60 160 260 360 160 60 260 60 360 60 5519 90 190 290 390 190 90 290 90 390 90 5520} 5521do_execsql_test joinD-220 { 5522 SELECT t1.*, t2.*, t3.*, t4.* 5523 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5524 RIGHT JOIN t3 ON t1.c=t3.c 5525 FULL JOIN t4 ON t1.d=t4.d 5526 WHERE t4.z>0 AND t3.y>0 5527 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5528} { 5529 30 130 230 330 130 30 230 30 330 30 5530 60 160 260 360 160 60 260 60 360 60 5531 90 190 290 390 190 90 290 90 390 90 5532} 5533do_execsql_test joinD-221 { 5534 SELECT t1.*, t2.*, t3.*, t4.* 5535 FROM t1 INNER JOIN t2 ON t1.b=t2.b 5536 RIGHT JOIN t3 ON t1.c=t3.c 5537 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5538 WHERE t2.x>0 AND t3.y>0 5539 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5540} { 5541 6 106 206 306 106 6 206 6 - - 5542 12 112 212 312 112 12 212 12 - - 5543 18 118 218 318 118 18 218 18 - - 5544 24 124 224 324 124 24 224 24 - - 5545 30 130 230 330 130 30 230 30 330 30 5546 36 136 236 336 136 36 236 36 - - 5547 42 142 242 342 142 42 242 42 - - 5548 48 148 248 348 148 48 248 48 - - 5549 54 154 254 354 154 54 254 54 - - 5550 60 160 260 360 160 60 260 60 360 60 5551 66 166 266 366 166 66 266 66 - - 5552 72 172 272 372 172 72 272 72 - - 5553 78 178 278 378 178 78 278 78 - - 5554 84 184 284 384 184 84 284 84 - - 5555 90 190 290 390 190 90 290 90 390 90 5556} 5557do_execsql_test joinD-222 { 5558 SELECT t1.*, t2.*, t3.*, t4.* 5559 FROM t1 INNER JOIN t2 ON t1.b=t2.b 5560 RIGHT JOIN t3 ON t1.c=t3.c 5561 FULL JOIN t4 ON t1.d=t4.d 5562 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 5563 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5564} { 5565 30 130 230 330 130 30 230 30 330 30 5566 60 160 260 360 160 60 260 60 360 60 5567 90 190 290 390 190 90 290 90 390 90 5568} 5569do_execsql_test joinD-223 { 5570 SELECT t1.*, t2.*, t3.*, t4.* 5571 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 5572 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 5573 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 5574 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5575} { 5576 6 106 206 306 106 6 206 6 - - 5577 12 112 212 312 112 12 212 12 - - 5578 18 118 218 318 118 18 218 18 - - 5579 24 124 224 324 124 24 224 24 - - 5580 30 130 230 330 130 30 230 30 330 30 5581 36 136 236 336 136 36 236 36 - - 5582 42 142 242 342 142 42 242 42 - - 5583 48 148 248 348 148 48 248 48 - - 5584 54 154 254 354 154 54 254 54 - - 5585 60 160 260 360 160 60 260 60 360 60 5586 66 166 266 366 166 66 266 66 - - 5587 72 172 272 372 172 72 272 72 - - 5588 78 178 278 378 178 78 278 78 - - 5589 84 184 284 384 184 84 284 84 - - 5590 90 190 290 390 190 90 290 90 390 90 5591 - - - - - - 200 0 - - 5592 - - - - - - 203 3 - - 5593 - - - - - - 209 9 - - 5594 - - - - - - 215 15 - - 5595 - - - - - - 221 21 - - 5596 - - - - - - 227 27 - - 5597 - - - - - - 233 33 - - 5598 - - - - - - 239 39 - - 5599 - - - - - - 245 45 - - 5600 - - - - - - 251 51 - - 5601 - - - - - - 257 57 - - 5602 - - - - - - 263 63 - - 5603 - - - - - - 269 69 - - 5604 - - - - - - 275 75 - - 5605 - - - - - - 281 81 - - 5606 - - - - - - 287 87 - - 5607 - - - - - - 293 93 - - 5608 - - - - - - - - 300 0 5609 - - - - - - - - 305 5 5610 - - - - - - - - 310 10 5611 - - - - - - - - 315 15 5612 - - - - - - - - 320 20 5613 - - - - - - - - 325 25 5614 - - - - - - - - 335 35 5615 - - - - - - - - 340 40 5616 - - - - - - - - 345 45 5617 - - - - - - - - 350 50 5618 - - - - - - - - 355 55 5619 - - - - - - - - 365 65 5620 - - - - - - - - 370 70 5621 - - - - - - - - 375 75 5622 - - - - - - - - 380 80 5623 - - - - - - - - 385 85 5624 - - - - - - - - 395 95 5625} 5626do_execsql_test joinD-224 { 5627 SELECT t1.*, t2.*, t3.*, t4.* 5628 FROM t1 INNER JOIN t2 ON t2.x>0 5629 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 5630 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 5631 WHERE t1.b IS NOT DISTINCT FROM t2.b 5632 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5633} { 5634 6 106 206 306 106 6 206 6 - - 5635 12 112 212 312 112 12 212 12 - - 5636 18 118 218 318 118 18 218 18 - - 5637 24 124 224 324 124 24 224 24 - - 5638 30 130 230 330 130 30 230 30 330 30 5639 36 136 236 336 136 36 236 36 - - 5640 42 142 242 342 142 42 242 42 - - 5641 48 148 248 348 148 48 248 48 - - 5642 54 154 254 354 154 54 254 54 - - 5643 60 160 260 360 160 60 260 60 360 60 5644 66 166 266 366 166 66 266 66 - - 5645 72 172 272 372 172 72 272 72 - - 5646 78 178 278 378 178 78 278 78 - - 5647 84 184 284 384 184 84 284 84 - - 5648 90 190 290 390 190 90 290 90 390 90 5649 - - - - - - 200 0 - - 5650 - - - - - - - - 300 0 5651 - - - - - - - - 305 5 5652 - - - - - - - - 310 10 5653 - - - - - - - - 320 20 5654 - - - - - - - - 325 25 5655 - - - - - - - - 335 35 5656 - - - - - - - - 340 40 5657 - - - - - - - - 350 50 5658 - - - - - - - - 355 55 5659 - - - - - - - - 365 65 5660 - - - - - - - - 370 70 5661 - - - - - - - - 380 80 5662 - - - - - - - - 385 85 5663 - - - - - - - - 395 95 5664} 5665do_execsql_test joinD-225 { 5666 SELECT t1.*, t2.*, t3.*, t4.* 5667 FROM t1 INNER JOIN t2 ON t2.x>0 5668 RIGHT JOIN t3 ON t3.y>0 5669 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 5670 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 5671 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5672} { 5673 6 106 206 306 106 6 206 6 - - 5674 12 112 212 312 112 12 212 12 - - 5675 18 118 218 318 118 18 218 18 - - 5676 24 124 224 324 124 24 224 24 - - 5677 30 130 230 330 130 30 230 30 330 30 5678 36 136 236 336 136 36 236 36 - - 5679 42 142 242 342 142 42 242 42 - - 5680 48 148 248 348 148 48 248 48 - - 5681 54 154 254 354 154 54 254 54 - - 5682 60 160 260 360 160 60 260 60 360 60 5683 66 166 266 366 166 66 266 66 - - 5684 72 172 272 372 172 72 272 72 - - 5685 78 178 278 378 178 78 278 78 - - 5686 84 184 284 384 184 84 284 84 - - 5687 90 190 290 390 190 90 290 90 390 90 5688 - - - - - - - - 300 0 5689} 5690do_execsql_test joinD-226 { 5691 SELECT t1.*, t2.*, t3.*, t4.* 5692 FROM t1 INNER JOIN t2 ON t2.x>0 5693 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 5694 FULL JOIN t4 ON t4.z>0 5695 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 5696 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5697} { 5698 30 130 230 330 130 30 230 30 330 30 5699 60 160 260 360 160 60 260 60 360 60 5700 90 190 290 390 190 90 290 90 390 90 5701} 5702do_execsql_test joinD-227 { 5703 SELECT t1.*, t2.*, t3.*, t4.* 5704 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 5705 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5706 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5707 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5708} { 5709 6 106 206 306 106 6 206 6 - - 5710 12 112 212 312 112 12 212 12 - - 5711 18 118 218 318 118 18 218 18 - - 5712 24 124 224 324 124 24 224 24 - - 5713 30 130 230 330 130 30 230 30 330 30 5714 36 136 236 336 136 36 236 36 - - 5715 42 142 242 342 142 42 242 42 - - 5716 48 148 248 348 148 48 248 48 - - 5717 54 154 254 354 154 54 254 54 - - 5718 60 160 260 360 160 60 260 60 360 60 5719 66 166 266 366 166 66 266 66 - - 5720 72 172 272 372 172 72 272 72 - - 5721 78 178 278 378 178 78 278 78 - - 5722 84 184 284 384 184 84 284 84 - - 5723 90 190 290 390 190 90 290 90 390 90 5724 - - - - - - 200 0 - - 5725 - - - - - - 203 3 - - 5726 - - - - - - 209 9 - - 5727 - - - - - - 215 15 - - 5728 - - - - - - 221 21 - - 5729 - - - - - - 227 27 - - 5730 - - - - - - 233 33 - - 5731 - - - - - - 239 39 - - 5732 - - - - - - 245 45 - - 5733 - - - - - - 251 51 - - 5734 - - - - - - 257 57 - - 5735 - - - - - - 263 63 - - 5736 - - - - - - 269 69 - - 5737 - - - - - - 275 75 - - 5738 - - - - - - 281 81 - - 5739 - - - - - - 287 87 - - 5740 - - - - - - 293 93 - - 5741 - - - - - - - - 300 0 5742 - - - - - - - - 305 5 5743 - - - - - - - - 310 10 5744 - - - - - - - - 315 15 5745 - - - - - - - - 320 20 5746 - - - - - - - - 325 25 5747 - - - - - - - - 335 35 5748 - - - - - - - - 340 40 5749 - - - - - - - - 345 45 5750 - - - - - - - - 350 50 5751 - - - - - - - - 355 55 5752 - - - - - - - - 365 65 5753 - - - - - - - - 370 70 5754 - - - - - - - - 375 75 5755 - - - - - - - - 380 80 5756 - - - - - - - - 385 85 5757 - - - - - - - - 395 95 5758} 5759do_execsql_test joinD-228 { 5760 SELECT t1.*, t2.*, t3.*, t4.* 5761 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5762 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 5763 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5764 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5765} { 5766 6 106 206 306 106 6 206 6 - - 5767 12 112 212 312 112 12 212 12 - - 5768 18 118 218 318 118 18 218 18 - - 5769 24 124 224 324 124 24 224 24 - - 5770 30 130 230 330 130 30 230 30 330 30 5771 36 136 236 336 136 36 236 36 - - 5772 42 142 242 342 142 42 242 42 - - 5773 48 148 248 348 148 48 248 48 - - 5774 54 154 254 354 154 54 254 54 - - 5775 60 160 260 360 160 60 260 60 360 60 5776 66 166 266 366 166 66 266 66 - - 5777 72 172 272 372 172 72 272 72 - - 5778 78 178 278 378 178 78 278 78 - - 5779 84 184 284 384 184 84 284 84 - - 5780 90 190 290 390 190 90 290 90 390 90 5781 - - - - - - 200 0 - - 5782 - - - - - - 203 3 - - 5783 - - - - - - 209 9 - - 5784 - - - - - - 215 15 - - 5785 - - - - - - 221 21 - - 5786 - - - - - - 227 27 - - 5787 - - - - - - 233 33 - - 5788 - - - - - - 239 39 - - 5789 - - - - - - 245 45 - - 5790 - - - - - - 251 51 - - 5791 - - - - - - 257 57 - - 5792 - - - - - - 263 63 - - 5793 - - - - - - 269 69 - - 5794 - - - - - - 275 75 - - 5795 - - - - - - 281 81 - - 5796 - - - - - - 287 87 - - 5797 - - - - - - 293 93 - - 5798 - - - - - - - - 300 0 5799 - - - - - - - - 305 5 5800 - - - - - - - - 310 10 5801 - - - - - - - - 315 15 5802 - - - - - - - - 320 20 5803 - - - - - - - - 325 25 5804 - - - - - - - - 335 35 5805 - - - - - - - - 340 40 5806 - - - - - - - - 345 45 5807 - - - - - - - - 350 50 5808 - - - - - - - - 355 55 5809 - - - - - - - - 365 65 5810 - - - - - - - - 370 70 5811 - - - - - - - - 375 75 5812 - - - - - - - - 380 80 5813 - - - - - - - - 385 85 5814 - - - - - - - - 395 95 5815} 5816do_execsql_test joinD-229 { 5817 SELECT t1.*, t2.*, t3.*, t4.* 5818 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5819 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 5820 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 5821 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5822} { 5823 10 110 210 310 110 10 - - 310 10 5824 20 120 220 320 120 20 - - 320 20 5825 30 130 230 330 130 30 230 30 330 30 5826 40 140 240 340 140 40 - - 340 40 5827 50 150 250 350 150 50 - - 350 50 5828 60 160 260 360 160 60 260 60 360 60 5829 70 170 270 370 170 70 - - 370 70 5830 80 180 280 380 180 80 - - 380 80 5831 90 190 290 390 190 90 290 90 390 90 5832} 5833do_execsql_test joinD-230 { 5834 SELECT t1.*, t2.*, t3.*, t4.* 5835 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 5836 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 5837 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 5838 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5839} { 5840 10 110 210 310 110 10 - - 310 10 5841 20 120 220 320 120 20 - - 320 20 5842 30 130 230 330 130 30 230 30 330 30 5843 40 140 240 340 140 40 - - 340 40 5844 50 150 250 350 150 50 - - 350 50 5845 60 160 260 360 160 60 260 60 360 60 5846 70 170 270 370 170 70 - - 370 70 5847 80 180 280 380 180 80 - - 380 80 5848 90 190 290 390 190 90 290 90 390 90 5849} 5850do_execsql_test joinD-231 { 5851 SELECT t1.*, t2.*, t3.*, t4.* 5852 FROM t1 INNER JOIN t2 ON t1.b=t2.b 5853 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 5854 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 5855 WHERE t2.x>0 5856 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5857} { 5858 10 110 210 310 110 10 - - 310 10 5859 20 120 220 320 120 20 - - 320 20 5860 30 130 230 330 130 30 230 30 330 30 5861 40 140 240 340 140 40 - - 340 40 5862 50 150 250 350 150 50 - - 350 50 5863 60 160 260 360 160 60 260 60 360 60 5864 70 170 270 370 170 70 - - 370 70 5865 80 180 280 380 180 80 - - 380 80 5866 90 190 290 390 190 90 290 90 390 90 5867} 5868do_execsql_test joinD-232 { 5869 SELECT t1.*, t2.*, t3.*, t4.* 5870 FROM t1 INNER JOIN t2 ON t1.b=t2.b 5871 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 5872 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 5873 WHERE (t2.x>0 OR t2.x IS NULL) 5874 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5875} { 5876 10 110 210 310 110 10 - - 310 10 5877 20 120 220 320 120 20 - - 320 20 5878 30 130 230 330 130 30 230 30 330 30 5879 40 140 240 340 140 40 - - 340 40 5880 50 150 250 350 150 50 - - 350 50 5881 60 160 260 360 160 60 260 60 360 60 5882 70 170 270 370 170 70 - - 370 70 5883 80 180 280 380 180 80 - - 380 80 5884 90 190 290 390 190 90 290 90 390 90 5885} 5886do_execsql_test joinD-233 { 5887 SELECT t1.*, t2.*, t3.*, t4.* 5888 FROM t1 INNER JOIN t2 ON true 5889 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 5890 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 5891 WHERE t1.b=t2.b AND t2.x>0 5892 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5893} { 5894 10 110 210 310 110 10 - - 310 10 5895 20 120 220 320 120 20 - - 320 20 5896 30 130 230 330 130 30 230 30 330 30 5897 40 140 240 340 140 40 - - 340 40 5898 50 150 250 350 150 50 - - 350 50 5899 60 160 260 360 160 60 260 60 360 60 5900 70 170 270 370 170 70 - - 370 70 5901 80 180 280 380 180 80 - - 380 80 5902 90 190 290 390 190 90 290 90 390 90 5903} 5904do_execsql_test joinD-234 { 5905 SELECT t1.*, t2.*, t3.*, t4.* 5906 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5907 FULL JOIN t3 ON t1.c=t3.c 5908 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 5909 WHERE t3.y>0 5910 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5911} { 5912 30 130 230 330 130 30 230 30 330 30 5913 60 160 260 360 160 60 260 60 360 60 5914 90 190 290 390 190 90 290 90 390 90 5915} 5916do_execsql_test joinD-235 { 5917 SELECT t1.*, t2.*, t3.*, t4.* 5918 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5919 FULL JOIN t3 ON t1.c=t3.c 5920 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 5921 WHERE t3.y>0 OR t3.y IS NULL 5922 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5923} { 5924 10 110 210 310 110 10 - - 310 10 5925 20 120 220 320 120 20 - - 320 20 5926 30 130 230 330 130 30 230 30 330 30 5927 40 140 240 340 140 40 - - 340 40 5928 50 150 250 350 150 50 - - 350 50 5929 60 160 260 360 160 60 260 60 360 60 5930 70 170 270 370 170 70 - - 370 70 5931 80 180 280 380 180 80 - - 380 80 5932 90 190 290 390 190 90 290 90 390 90 5933} 5934do_execsql_test joinD-236 { 5935 SELECT t1.*, t2.*, t3.*, t4.* 5936 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5937 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 5938 INNER JOIN t4 ON t1.d=t4.d 5939 WHERE t4.z>0 5940 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5941} { 5942 10 110 210 310 110 10 - - 310 10 5943 20 120 220 320 120 20 - - 320 20 5944 30 130 230 330 130 30 230 30 330 30 5945 40 140 240 340 140 40 - - 340 40 5946 50 150 250 350 150 50 - - 350 50 5947 60 160 260 360 160 60 260 60 360 60 5948 70 170 270 370 170 70 - - 370 70 5949 80 180 280 380 180 80 - - 380 80 5950 90 190 290 390 190 90 290 90 390 90 5951} 5952do_execsql_test joinD-237 { 5953 SELECT t1.*, t2.*, t3.*, t4.* 5954 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5955 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 5956 INNER JOIN t4 ON t1.d=t4.d 5957 WHERE t4.z IS NULL OR t4.z>0 5958 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5959} { 5960 10 110 210 310 110 10 - - 310 10 5961 20 120 220 320 120 20 - - 320 20 5962 30 130 230 330 130 30 230 30 330 30 5963 40 140 240 340 140 40 - - 340 40 5964 50 150 250 350 150 50 - - 350 50 5965 60 160 260 360 160 60 260 60 360 60 5966 70 170 270 370 170 70 - - 370 70 5967 80 180 280 380 180 80 - - 380 80 5968 90 190 290 390 190 90 290 90 390 90 5969} 5970do_execsql_test joinD-238 { 5971 SELECT t1.*, t2.*, t3.*, t4.* 5972 FROM t1 INNER JOIN t2 ON t1.b=t2.b 5973 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 5974 INNER JOIN t4 ON t1.d=t4.d 5975 WHERE t2.x>0 AND t4.z>0 5976 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5977} { 5978 10 110 210 310 110 10 - - 310 10 5979 20 120 220 320 120 20 - - 320 20 5980 30 130 230 330 130 30 230 30 330 30 5981 40 140 240 340 140 40 - - 340 40 5982 50 150 250 350 150 50 - - 350 50 5983 60 160 260 360 160 60 260 60 360 60 5984 70 170 270 370 170 70 - - 370 70 5985 80 180 280 380 180 80 - - 380 80 5986 90 190 290 390 190 90 290 90 390 90 5987} 5988do_execsql_test joinD-239 { 5989 SELECT t1.*, t2.*, t3.*, t4.* 5990 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5991 FULL JOIN t3 ON t1.c=t3.c 5992 INNER JOIN t4 ON t1.d=t4.d 5993 WHERE t4.z>0 AND t3.y>0 5994 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5995} { 5996 30 130 230 330 130 30 230 30 330 30 5997 60 160 260 360 160 60 260 60 360 60 5998 90 190 290 390 190 90 290 90 390 90 5999} 6000do_execsql_test joinD-240 { 6001 SELECT t1.*, t2.*, t3.*, t4.* 6002 FROM t1 INNER JOIN t2 ON t1.b=t2.b 6003 FULL JOIN t3 ON t1.c=t3.c 6004 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 6005 WHERE t2.x>0 AND t3.y>0 6006 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6007} { 6008 30 130 230 330 130 30 230 30 330 30 6009 60 160 260 360 160 60 260 60 360 60 6010 90 190 290 390 190 90 290 90 390 90 6011} 6012do_execsql_test joinD-241 { 6013 SELECT t1.*, t2.*, t3.*, t4.* 6014 FROM t1 INNER JOIN t2 ON t1.b=t2.b 6015 FULL JOIN t3 ON t1.c=t3.c 6016 INNER JOIN t4 ON t1.d=t4.d 6017 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 6018 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6019} { 6020 30 130 230 330 130 30 230 30 330 30 6021 60 160 260 360 160 60 260 60 360 60 6022 90 190 290 390 190 90 290 90 390 90 6023} 6024do_execsql_test joinD-242 { 6025 SELECT t1.*, t2.*, t3.*, t4.* 6026 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 6027 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 6028 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 6029 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6030} { 6031 10 110 210 310 110 10 - - 310 10 6032 20 120 220 320 120 20 - - 320 20 6033 30 130 230 330 130 30 230 30 330 30 6034 40 140 240 340 140 40 - - 340 40 6035 50 150 250 350 150 50 - - 350 50 6036 60 160 260 360 160 60 260 60 360 60 6037 70 170 270 370 170 70 - - 370 70 6038 80 180 280 380 180 80 - - 380 80 6039 90 190 290 390 190 90 290 90 390 90 6040} 6041do_execsql_test joinD-243 { 6042 SELECT t1.*, t2.*, t3.*, t4.* 6043 FROM t1 INNER JOIN t2 ON t2.x>0 6044 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 6045 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 6046 WHERE t1.b IS NOT DISTINCT FROM t2.b 6047 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6048} { 6049 10 110 210 310 110 10 - - 310 10 6050 20 120 220 320 120 20 - - 320 20 6051 30 130 230 330 130 30 230 30 330 30 6052 40 140 240 340 140 40 - - 340 40 6053 50 150 250 350 150 50 - - 350 50 6054 60 160 260 360 160 60 260 60 360 60 6055 70 170 270 370 170 70 - - 370 70 6056 80 180 280 380 180 80 - - 380 80 6057 90 190 290 390 190 90 290 90 390 90 6058} 6059do_execsql_test joinD-244 { 6060 SELECT t1.*, t2.*, t3.*, t4.* 6061 FROM t1 INNER JOIN t2 ON t2.x>0 6062 FULL JOIN t3 ON t3.y>0 6063 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 6064 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 6065 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6066} { 6067 30 130 230 330 130 30 230 30 330 30 6068 60 160 260 360 160 60 260 60 360 60 6069 90 190 290 390 190 90 290 90 390 90 6070} 6071do_execsql_test joinD-245 { 6072 SELECT t1.*, t2.*, t3.*, t4.* 6073 FROM t1 INNER JOIN t2 ON t2.x>0 6074 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 6075 INNER JOIN t4 ON t4.z>0 6076 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 6077 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6078} { 6079 10 110 210 310 110 10 - - 310 10 6080 20 120 220 320 120 20 - - 320 20 6081 30 130 230 330 130 30 230 30 330 30 6082 40 140 240 340 140 40 - - 340 40 6083 50 150 250 350 150 50 - - 350 50 6084 60 160 260 360 160 60 260 60 360 60 6085 70 170 270 370 170 70 - - 370 70 6086 80 180 280 380 180 80 - - 380 80 6087 90 190 290 390 190 90 290 90 390 90 6088} 6089do_execsql_test joinD-246 { 6090 SELECT t1.*, t2.*, t3.*, t4.* 6091 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 6092 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6093 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 6094 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6095} { 6096 10 110 210 310 110 10 - - 310 10 6097 20 120 220 320 120 20 - - 320 20 6098 30 130 230 330 130 30 230 30 330 30 6099 40 140 240 340 140 40 - - 340 40 6100 50 150 250 350 150 50 - - 350 50 6101 60 160 260 360 160 60 260 60 360 60 6102 70 170 270 370 170 70 - - 370 70 6103 80 180 280 380 180 80 - - 380 80 6104 90 190 290 390 190 90 290 90 390 90 6105} 6106do_execsql_test joinD-247 { 6107 SELECT t1.*, t2.*, t3.*, t4.* 6108 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 6109 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6110 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 6111 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6112} { 6113 2 102 202 302 102 2 - - - - 6114 4 104 204 304 104 4 - - - - 6115 6 106 206 306 106 6 206 6 - - 6116 8 108 208 308 108 8 - - - - 6117 10 110 210 310 110 10 - - 310 10 6118 12 112 212 312 112 12 212 12 - - 6119 14 114 214 314 114 14 - - - - 6120 16 116 216 316 116 16 - - - - 6121 18 118 218 318 118 18 218 18 - - 6122 20 120 220 320 120 20 - - 320 20 6123 22 122 222 322 122 22 - - - - 6124 24 124 224 324 124 24 224 24 - - 6125 26 126 226 326 126 26 - - - - 6126 28 128 228 328 128 28 - - - - 6127 30 130 230 330 130 30 230 30 330 30 6128 32 132 232 332 132 32 - - - - 6129 34 134 234 334 134 34 - - - - 6130 36 136 236 336 136 36 236 36 - - 6131 38 138 238 338 138 38 - - - - 6132 40 140 240 340 140 40 - - 340 40 6133 42 142 242 342 142 42 242 42 - - 6134 44 144 244 344 144 44 - - - - 6135 46 146 246 346 146 46 - - - - 6136 48 148 248 348 148 48 248 48 - - 6137 50 150 250 350 150 50 - - 350 50 6138 52 152 252 352 152 52 - - - - 6139 54 154 254 354 154 54 254 54 - - 6140 56 156 256 356 156 56 - - - - 6141 58 158 258 358 158 58 - - - - 6142 60 160 260 360 160 60 260 60 360 60 6143 62 162 262 362 162 62 - - - - 6144 64 164 264 364 164 64 - - - - 6145 66 166 266 366 166 66 266 66 - - 6146 68 168 268 368 168 68 - - - - 6147 70 170 270 370 170 70 - - 370 70 6148 72 172 272 372 172 72 272 72 - - 6149 74 174 274 374 174 74 - - - - 6150 76 176 276 376 176 76 - - - - 6151 78 178 278 378 178 78 278 78 - - 6152 80 180 280 380 180 80 - - 380 80 6153 82 182 282 382 182 82 - - - - 6154 84 184 284 384 184 84 284 84 - - 6155 86 186 286 386 186 86 - - - - 6156 88 188 288 388 188 88 - - - - 6157 90 190 290 390 190 90 290 90 390 90 6158 92 192 292 392 192 92 - - - - 6159 94 194 294 394 194 94 - - - - 6160 - - - - - - 200 0 - - 6161 - - - - - - 203 3 - - 6162 - - - - - - 209 9 - - 6163 - - - - - - 215 15 - - 6164 - - - - - - 221 21 - - 6165 - - - - - - 227 27 - - 6166 - - - - - - 233 33 - - 6167 - - - - - - 239 39 - - 6168 - - - - - - 245 45 - - 6169 - - - - - - 251 51 - - 6170 - - - - - - 257 57 - - 6171 - - - - - - 263 63 - - 6172 - - - - - - 269 69 - - 6173 - - - - - - 275 75 - - 6174 - - - - - - 281 81 - - 6175 - - - - - - 287 87 - - 6176 - - - - - - 293 93 - - 6177} 6178do_execsql_test joinD-248 { 6179 SELECT t1.*, t2.*, t3.*, t4.* 6180 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 6181 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6182 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 6183 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6184} { 6185 2 102 202 302 102 2 - - - - 6186 4 104 204 304 104 4 - - - - 6187 6 106 206 306 106 6 206 6 - - 6188 8 108 208 308 108 8 - - - - 6189 10 110 210 310 110 10 - - 310 10 6190 12 112 212 312 112 12 212 12 - - 6191 14 114 214 314 114 14 - - - - 6192 16 116 216 316 116 16 - - - - 6193 18 118 218 318 118 18 218 18 - - 6194 20 120 220 320 120 20 - - 320 20 6195 22 122 222 322 122 22 - - - - 6196 24 124 224 324 124 24 224 24 - - 6197 26 126 226 326 126 26 - - - - 6198 28 128 228 328 128 28 - - - - 6199 30 130 230 330 130 30 230 30 330 30 6200 32 132 232 332 132 32 - - - - 6201 34 134 234 334 134 34 - - - - 6202 36 136 236 336 136 36 236 36 - - 6203 38 138 238 338 138 38 - - - - 6204 40 140 240 340 140 40 - - 340 40 6205 42 142 242 342 142 42 242 42 - - 6206 44 144 244 344 144 44 - - - - 6207 46 146 246 346 146 46 - - - - 6208 48 148 248 348 148 48 248 48 - - 6209 50 150 250 350 150 50 - - 350 50 6210 52 152 252 352 152 52 - - - - 6211 54 154 254 354 154 54 254 54 - - 6212 56 156 256 356 156 56 - - - - 6213 58 158 258 358 158 58 - - - - 6214 60 160 260 360 160 60 260 60 360 60 6215 62 162 262 362 162 62 - - - - 6216 64 164 264 364 164 64 - - - - 6217 66 166 266 366 166 66 266 66 - - 6218 68 168 268 368 168 68 - - - - 6219 70 170 270 370 170 70 - - 370 70 6220 72 172 272 372 172 72 272 72 - - 6221 74 174 274 374 174 74 - - - - 6222 76 176 276 376 176 76 - - - - 6223 78 178 278 378 178 78 278 78 - - 6224 80 180 280 380 180 80 - - 380 80 6225 82 182 282 382 182 82 - - - - 6226 84 184 284 384 184 84 284 84 - - 6227 86 186 286 386 186 86 - - - - 6228 88 188 288 388 188 88 - - - - 6229 90 190 290 390 190 90 290 90 390 90 6230 92 192 292 392 192 92 - - - - 6231 94 194 294 394 194 94 - - - - 6232 - - - - - - 200 0 - - 6233 - - - - - - 203 3 - - 6234 - - - - - - 209 9 - - 6235 - - - - - - 215 15 - - 6236 - - - - - - 221 21 - - 6237 - - - - - - 227 27 - - 6238 - - - - - - 233 33 - - 6239 - - - - - - 239 39 - - 6240 - - - - - - 245 45 - - 6241 - - - - - - 251 51 - - 6242 - - - - - - 257 57 - - 6243 - - - - - - 263 63 - - 6244 - - - - - - 269 69 - - 6245 - - - - - - 275 75 - - 6246 - - - - - - 281 81 - - 6247 - - - - - - 287 87 - - 6248 - - - - - - 293 93 - - 6249} 6250do_execsql_test joinD-249 { 6251 SELECT t1.*, t2.*, t3.*, t4.* 6252 FROM t1 INNER JOIN t2 ON t1.b=t2.b 6253 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6254 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 6255 WHERE t2.x>0 6256 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6257} { 6258 2 102 202 302 102 2 - - - - 6259 4 104 204 304 104 4 - - - - 6260 6 106 206 306 106 6 206 6 - - 6261 8 108 208 308 108 8 - - - - 6262 10 110 210 310 110 10 - - 310 10 6263 12 112 212 312 112 12 212 12 - - 6264 14 114 214 314 114 14 - - - - 6265 16 116 216 316 116 16 - - - - 6266 18 118 218 318 118 18 218 18 - - 6267 20 120 220 320 120 20 - - 320 20 6268 22 122 222 322 122 22 - - - - 6269 24 124 224 324 124 24 224 24 - - 6270 26 126 226 326 126 26 - - - - 6271 28 128 228 328 128 28 - - - - 6272 30 130 230 330 130 30 230 30 330 30 6273 32 132 232 332 132 32 - - - - 6274 34 134 234 334 134 34 - - - - 6275 36 136 236 336 136 36 236 36 - - 6276 38 138 238 338 138 38 - - - - 6277 40 140 240 340 140 40 - - 340 40 6278 42 142 242 342 142 42 242 42 - - 6279 44 144 244 344 144 44 - - - - 6280 46 146 246 346 146 46 - - - - 6281 48 148 248 348 148 48 248 48 - - 6282 50 150 250 350 150 50 - - 350 50 6283 52 152 252 352 152 52 - - - - 6284 54 154 254 354 154 54 254 54 - - 6285 56 156 256 356 156 56 - - - - 6286 58 158 258 358 158 58 - - - - 6287 60 160 260 360 160 60 260 60 360 60 6288 62 162 262 362 162 62 - - - - 6289 64 164 264 364 164 64 - - - - 6290 66 166 266 366 166 66 266 66 - - 6291 68 168 268 368 168 68 - - - - 6292 70 170 270 370 170 70 - - 370 70 6293 72 172 272 372 172 72 272 72 - - 6294 74 174 274 374 174 74 - - - - 6295 76 176 276 376 176 76 - - - - 6296 78 178 278 378 178 78 278 78 - - 6297 80 180 280 380 180 80 - - 380 80 6298 82 182 282 382 182 82 - - - - 6299 84 184 284 384 184 84 284 84 - - 6300 86 186 286 386 186 86 - - - - 6301 88 188 288 388 188 88 - - - - 6302 90 190 290 390 190 90 290 90 390 90 6303 92 192 292 392 192 92 - - - - 6304 94 194 294 394 194 94 - - - - 6305} 6306do_execsql_test joinD-250 { 6307 SELECT t1.*, t2.*, t3.*, t4.* 6308 FROM t1 INNER JOIN t2 ON t1.b=t2.b 6309 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6310 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 6311 WHERE (t2.x>0 OR t2.x IS NULL) 6312 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6313} { 6314 2 102 202 302 102 2 - - - - 6315 4 104 204 304 104 4 - - - - 6316 6 106 206 306 106 6 206 6 - - 6317 8 108 208 308 108 8 - - - - 6318 10 110 210 310 110 10 - - 310 10 6319 12 112 212 312 112 12 212 12 - - 6320 14 114 214 314 114 14 - - - - 6321 16 116 216 316 116 16 - - - - 6322 18 118 218 318 118 18 218 18 - - 6323 20 120 220 320 120 20 - - 320 20 6324 22 122 222 322 122 22 - - - - 6325 24 124 224 324 124 24 224 24 - - 6326 26 126 226 326 126 26 - - - - 6327 28 128 228 328 128 28 - - - - 6328 30 130 230 330 130 30 230 30 330 30 6329 32 132 232 332 132 32 - - - - 6330 34 134 234 334 134 34 - - - - 6331 36 136 236 336 136 36 236 36 - - 6332 38 138 238 338 138 38 - - - - 6333 40 140 240 340 140 40 - - 340 40 6334 42 142 242 342 142 42 242 42 - - 6335 44 144 244 344 144 44 - - - - 6336 46 146 246 346 146 46 - - - - 6337 48 148 248 348 148 48 248 48 - - 6338 50 150 250 350 150 50 - - 350 50 6339 52 152 252 352 152 52 - - - - 6340 54 154 254 354 154 54 254 54 - - 6341 56 156 256 356 156 56 - - - - 6342 58 158 258 358 158 58 - - - - 6343 60 160 260 360 160 60 260 60 360 60 6344 62 162 262 362 162 62 - - - - 6345 64 164 264 364 164 64 - - - - 6346 66 166 266 366 166 66 266 66 - - 6347 68 168 268 368 168 68 - - - - 6348 70 170 270 370 170 70 - - 370 70 6349 72 172 272 372 172 72 272 72 - - 6350 74 174 274 374 174 74 - - - - 6351 76 176 276 376 176 76 - - - - 6352 78 178 278 378 178 78 278 78 - - 6353 80 180 280 380 180 80 - - 380 80 6354 82 182 282 382 182 82 - - - - 6355 84 184 284 384 184 84 284 84 - - 6356 86 186 286 386 186 86 - - - - 6357 88 188 288 388 188 88 - - - - 6358 90 190 290 390 190 90 290 90 390 90 6359 92 192 292 392 192 92 - - - - 6360 94 194 294 394 194 94 - - - - 6361 - - - - - - 200 0 - - 6362 - - - - - - 203 3 - - 6363 - - - - - - 209 9 - - 6364 - - - - - - 215 15 - - 6365 - - - - - - 221 21 - - 6366 - - - - - - 227 27 - - 6367 - - - - - - 233 33 - - 6368 - - - - - - 239 39 - - 6369 - - - - - - 245 45 - - 6370 - - - - - - 251 51 - - 6371 - - - - - - 257 57 - - 6372 - - - - - - 263 63 - - 6373 - - - - - - 269 69 - - 6374 - - - - - - 275 75 - - 6375 - - - - - - 281 81 - - 6376 - - - - - - 287 87 - - 6377 - - - - - - 293 93 - - 6378} 6379do_execsql_test joinD-251 { 6380 SELECT t1.*, t2.*, t3.*, t4.* 6381 FROM t1 INNER JOIN t2 ON true 6382 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6383 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 6384 WHERE t1.b=t2.b AND t2.x>0 6385 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6386} { 6387 2 102 202 302 102 2 - - - - 6388 4 104 204 304 104 4 - - - - 6389 6 106 206 306 106 6 206 6 - - 6390 8 108 208 308 108 8 - - - - 6391 10 110 210 310 110 10 - - 310 10 6392 12 112 212 312 112 12 212 12 - - 6393 14 114 214 314 114 14 - - - - 6394 16 116 216 316 116 16 - - - - 6395 18 118 218 318 118 18 218 18 - - 6396 20 120 220 320 120 20 - - 320 20 6397 22 122 222 322 122 22 - - - - 6398 24 124 224 324 124 24 224 24 - - 6399 26 126 226 326 126 26 - - - - 6400 28 128 228 328 128 28 - - - - 6401 30 130 230 330 130 30 230 30 330 30 6402 32 132 232 332 132 32 - - - - 6403 34 134 234 334 134 34 - - - - 6404 36 136 236 336 136 36 236 36 - - 6405 38 138 238 338 138 38 - - - - 6406 40 140 240 340 140 40 - - 340 40 6407 42 142 242 342 142 42 242 42 - - 6408 44 144 244 344 144 44 - - - - 6409 46 146 246 346 146 46 - - - - 6410 48 148 248 348 148 48 248 48 - - 6411 50 150 250 350 150 50 - - 350 50 6412 52 152 252 352 152 52 - - - - 6413 54 154 254 354 154 54 254 54 - - 6414 56 156 256 356 156 56 - - - - 6415 58 158 258 358 158 58 - - - - 6416 60 160 260 360 160 60 260 60 360 60 6417 62 162 262 362 162 62 - - - - 6418 64 164 264 364 164 64 - - - - 6419 66 166 266 366 166 66 266 66 - - 6420 68 168 268 368 168 68 - - - - 6421 70 170 270 370 170 70 - - 370 70 6422 72 172 272 372 172 72 272 72 - - 6423 74 174 274 374 174 74 - - - - 6424 76 176 276 376 176 76 - - - - 6425 78 178 278 378 178 78 278 78 - - 6426 80 180 280 380 180 80 - - 380 80 6427 82 182 282 382 182 82 - - - - 6428 84 184 284 384 184 84 284 84 - - 6429 86 186 286 386 186 86 - - - - 6430 88 188 288 388 188 88 - - - - 6431 90 190 290 390 190 90 290 90 390 90 6432 92 192 292 392 192 92 - - - - 6433 94 194 294 394 194 94 - - - - 6434} 6435do_execsql_test joinD-252 { 6436 SELECT t1.*, t2.*, t3.*, t4.* 6437 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 6438 FULL JOIN t3 ON t1.c=t3.c 6439 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 6440 WHERE t3.y>0 6441 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6442} { 6443 6 106 206 306 106 6 206 6 - - 6444 12 112 212 312 112 12 212 12 - - 6445 18 118 218 318 118 18 218 18 - - 6446 24 124 224 324 124 24 224 24 - - 6447 30 130 230 330 130 30 230 30 330 30 6448 36 136 236 336 136 36 236 36 - - 6449 42 142 242 342 142 42 242 42 - - 6450 48 148 248 348 148 48 248 48 - - 6451 54 154 254 354 154 54 254 54 - - 6452 60 160 260 360 160 60 260 60 360 60 6453 66 166 266 366 166 66 266 66 - - 6454 72 172 272 372 172 72 272 72 - - 6455 78 178 278 378 178 78 278 78 - - 6456 84 184 284 384 184 84 284 84 - - 6457 90 190 290 390 190 90 290 90 390 90 6458 - - - - - - 203 3 - - 6459 - - - - - - 209 9 - - 6460 - - - - - - 215 15 - - 6461 - - - - - - 221 21 - - 6462 - - - - - - 227 27 - - 6463 - - - - - - 233 33 - - 6464 - - - - - - 239 39 - - 6465 - - - - - - 245 45 - - 6466 - - - - - - 251 51 - - 6467 - - - - - - 257 57 - - 6468 - - - - - - 263 63 - - 6469 - - - - - - 269 69 - - 6470 - - - - - - 275 75 - - 6471 - - - - - - 281 81 - - 6472 - - - - - - 287 87 - - 6473 - - - - - - 293 93 - - 6474} 6475do_execsql_test joinD-253 { 6476 SELECT t1.*, t2.*, t3.*, t4.* 6477 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 6478 FULL JOIN t3 ON t1.c=t3.c 6479 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 6480 WHERE t3.y>0 OR t3.y IS NULL 6481 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6482} { 6483 2 102 202 302 102 2 - - - - 6484 4 104 204 304 104 4 - - - - 6485 6 106 206 306 106 6 206 6 - - 6486 8 108 208 308 108 8 - - - - 6487 10 110 210 310 110 10 - - 310 10 6488 12 112 212 312 112 12 212 12 - - 6489 14 114 214 314 114 14 - - - - 6490 16 116 216 316 116 16 - - - - 6491 18 118 218 318 118 18 218 18 - - 6492 20 120 220 320 120 20 - - 320 20 6493 22 122 222 322 122 22 - - - - 6494 24 124 224 324 124 24 224 24 - - 6495 26 126 226 326 126 26 - - - - 6496 28 128 228 328 128 28 - - - - 6497 30 130 230 330 130 30 230 30 330 30 6498 32 132 232 332 132 32 - - - - 6499 34 134 234 334 134 34 - - - - 6500 36 136 236 336 136 36 236 36 - - 6501 38 138 238 338 138 38 - - - - 6502 40 140 240 340 140 40 - - 340 40 6503 42 142 242 342 142 42 242 42 - - 6504 44 144 244 344 144 44 - - - - 6505 46 146 246 346 146 46 - - - - 6506 48 148 248 348 148 48 248 48 - - 6507 50 150 250 350 150 50 - - 350 50 6508 52 152 252 352 152 52 - - - - 6509 54 154 254 354 154 54 254 54 - - 6510 56 156 256 356 156 56 - - - - 6511 58 158 258 358 158 58 - - - - 6512 60 160 260 360 160 60 260 60 360 60 6513 62 162 262 362 162 62 - - - - 6514 64 164 264 364 164 64 - - - - 6515 66 166 266 366 166 66 266 66 - - 6516 68 168 268 368 168 68 - - - - 6517 70 170 270 370 170 70 - - 370 70 6518 72 172 272 372 172 72 272 72 - - 6519 74 174 274 374 174 74 - - - - 6520 76 176 276 376 176 76 - - - - 6521 78 178 278 378 178 78 278 78 - - 6522 80 180 280 380 180 80 - - 380 80 6523 82 182 282 382 182 82 - - - - 6524 84 184 284 384 184 84 284 84 - - 6525 86 186 286 386 186 86 - - - - 6526 88 188 288 388 188 88 - - - - 6527 90 190 290 390 190 90 290 90 390 90 6528 92 192 292 392 192 92 - - - - 6529 94 194 294 394 194 94 - - - - 6530 - - - - - - 203 3 - - 6531 - - - - - - 209 9 - - 6532 - - - - - - 215 15 - - 6533 - - - - - - 221 21 - - 6534 - - - - - - 227 27 - - 6535 - - - - - - 233 33 - - 6536 - - - - - - 239 39 - - 6537 - - - - - - 245 45 - - 6538 - - - - - - 251 51 - - 6539 - - - - - - 257 57 - - 6540 - - - - - - 263 63 - - 6541 - - - - - - 269 69 - - 6542 - - - - - - 275 75 - - 6543 - - - - - - 281 81 - - 6544 - - - - - - 287 87 - - 6545 - - - - - - 293 93 - - 6546} 6547do_execsql_test joinD-254 { 6548 SELECT t1.*, t2.*, t3.*, t4.* 6549 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 6550 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6551 LEFT JOIN t4 ON t1.d=t4.d 6552 WHERE t4.z>0 6553 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6554} { 6555 10 110 210 310 110 10 - - 310 10 6556 20 120 220 320 120 20 - - 320 20 6557 30 130 230 330 130 30 230 30 330 30 6558 40 140 240 340 140 40 - - 340 40 6559 50 150 250 350 150 50 - - 350 50 6560 60 160 260 360 160 60 260 60 360 60 6561 70 170 270 370 170 70 - - 370 70 6562 80 180 280 380 180 80 - - 380 80 6563 90 190 290 390 190 90 290 90 390 90 6564} 6565do_execsql_test joinD-255 { 6566 SELECT t1.*, t2.*, t3.*, t4.* 6567 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 6568 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6569 LEFT JOIN t4 ON t1.d=t4.d 6570 WHERE t4.z IS NULL OR t4.z>0 6571 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6572} { 6573 2 102 202 302 102 2 - - - - 6574 4 104 204 304 104 4 - - - - 6575 6 106 206 306 106 6 206 6 - - 6576 8 108 208 308 108 8 - - - - 6577 10 110 210 310 110 10 - - 310 10 6578 12 112 212 312 112 12 212 12 - - 6579 14 114 214 314 114 14 - - - - 6580 16 116 216 316 116 16 - - - - 6581 18 118 218 318 118 18 218 18 - - 6582 20 120 220 320 120 20 - - 320 20 6583 22 122 222 322 122 22 - - - - 6584 24 124 224 324 124 24 224 24 - - 6585 26 126 226 326 126 26 - - - - 6586 28 128 228 328 128 28 - - - - 6587 30 130 230 330 130 30 230 30 330 30 6588 32 132 232 332 132 32 - - - - 6589 34 134 234 334 134 34 - - - - 6590 36 136 236 336 136 36 236 36 - - 6591 38 138 238 338 138 38 - - - - 6592 40 140 240 340 140 40 - - 340 40 6593 42 142 242 342 142 42 242 42 - - 6594 44 144 244 344 144 44 - - - - 6595 46 146 246 346 146 46 - - - - 6596 48 148 248 348 148 48 248 48 - - 6597 50 150 250 350 150 50 - - 350 50 6598 52 152 252 352 152 52 - - - - 6599 54 154 254 354 154 54 254 54 - - 6600 56 156 256 356 156 56 - - - - 6601 58 158 258 358 158 58 - - - - 6602 60 160 260 360 160 60 260 60 360 60 6603 62 162 262 362 162 62 - - - - 6604 64 164 264 364 164 64 - - - - 6605 66 166 266 366 166 66 266 66 - - 6606 68 168 268 368 168 68 - - - - 6607 70 170 270 370 170 70 - - 370 70 6608 72 172 272 372 172 72 272 72 - - 6609 74 174 274 374 174 74 - - - - 6610 76 176 276 376 176 76 - - - - 6611 78 178 278 378 178 78 278 78 - - 6612 80 180 280 380 180 80 - - 380 80 6613 82 182 282 382 182 82 - - - - 6614 84 184 284 384 184 84 284 84 - - 6615 86 186 286 386 186 86 - - - - 6616 88 188 288 388 188 88 - - - - 6617 90 190 290 390 190 90 290 90 390 90 6618 92 192 292 392 192 92 - - - - 6619 94 194 294 394 194 94 - - - - 6620 - - - - - - 200 0 - - 6621 - - - - - - 203 3 - - 6622 - - - - - - 209 9 - - 6623 - - - - - - 215 15 - - 6624 - - - - - - 221 21 - - 6625 - - - - - - 227 27 - - 6626 - - - - - - 233 33 - - 6627 - - - - - - 239 39 - - 6628 - - - - - - 245 45 - - 6629 - - - - - - 251 51 - - 6630 - - - - - - 257 57 - - 6631 - - - - - - 263 63 - - 6632 - - - - - - 269 69 - - 6633 - - - - - - 275 75 - - 6634 - - - - - - 281 81 - - 6635 - - - - - - 287 87 - - 6636 - - - - - - 293 93 - - 6637} 6638do_execsql_test joinD-256 { 6639 SELECT t1.*, t2.*, t3.*, t4.* 6640 FROM t1 INNER JOIN t2 ON t1.b=t2.b 6641 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6642 LEFT JOIN t4 ON t1.d=t4.d 6643 WHERE t2.x>0 AND t4.z>0 6644 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6645} { 6646 10 110 210 310 110 10 - - 310 10 6647 20 120 220 320 120 20 - - 320 20 6648 30 130 230 330 130 30 230 30 330 30 6649 40 140 240 340 140 40 - - 340 40 6650 50 150 250 350 150 50 - - 350 50 6651 60 160 260 360 160 60 260 60 360 60 6652 70 170 270 370 170 70 - - 370 70 6653 80 180 280 380 180 80 - - 380 80 6654 90 190 290 390 190 90 290 90 390 90 6655} 6656do_execsql_test joinD-257 { 6657 SELECT t1.*, t2.*, t3.*, t4.* 6658 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 6659 FULL JOIN t3 ON t1.c=t3.c 6660 LEFT JOIN t4 ON t1.d=t4.d 6661 WHERE t4.z>0 AND t3.y>0 6662 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6663} { 6664 30 130 230 330 130 30 230 30 330 30 6665 60 160 260 360 160 60 260 60 360 60 6666 90 190 290 390 190 90 290 90 390 90 6667} 6668do_execsql_test joinD-258 { 6669 SELECT t1.*, t2.*, t3.*, t4.* 6670 FROM t1 INNER JOIN t2 ON t1.b=t2.b 6671 FULL JOIN t3 ON t1.c=t3.c 6672 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 6673 WHERE t2.x>0 AND t3.y>0 6674 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6675} { 6676 6 106 206 306 106 6 206 6 - - 6677 12 112 212 312 112 12 212 12 - - 6678 18 118 218 318 118 18 218 18 - - 6679 24 124 224 324 124 24 224 24 - - 6680 30 130 230 330 130 30 230 30 330 30 6681 36 136 236 336 136 36 236 36 - - 6682 42 142 242 342 142 42 242 42 - - 6683 48 148 248 348 148 48 248 48 - - 6684 54 154 254 354 154 54 254 54 - - 6685 60 160 260 360 160 60 260 60 360 60 6686 66 166 266 366 166 66 266 66 - - 6687 72 172 272 372 172 72 272 72 - - 6688 78 178 278 378 178 78 278 78 - - 6689 84 184 284 384 184 84 284 84 - - 6690 90 190 290 390 190 90 290 90 390 90 6691} 6692do_execsql_test joinD-259 { 6693 SELECT t1.*, t2.*, t3.*, t4.* 6694 FROM t1 INNER JOIN t2 ON t1.b=t2.b 6695 FULL JOIN t3 ON t1.c=t3.c 6696 LEFT JOIN t4 ON t1.d=t4.d 6697 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 6698 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6699} { 6700 30 130 230 330 130 30 230 30 330 30 6701 60 160 260 360 160 60 260 60 360 60 6702 90 190 290 390 190 90 290 90 390 90 6703} 6704do_execsql_test joinD-260 { 6705 SELECT t1.*, t2.*, t3.*, t4.* 6706 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 6707 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 6708 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 6709 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6710} { 6711 2 102 202 302 102 2 - - - - 6712 4 104 204 304 104 4 - - - - 6713 6 106 206 306 106 6 206 6 - - 6714 8 108 208 308 108 8 - - - - 6715 10 110 210 310 110 10 - - 310 10 6716 12 112 212 312 112 12 212 12 - - 6717 14 114 214 314 114 14 - - - - 6718 16 116 216 316 116 16 - - - - 6719 18 118 218 318 118 18 218 18 - - 6720 20 120 220 320 120 20 - - 320 20 6721 22 122 222 322 122 22 - - - - 6722 24 124 224 324 124 24 224 24 - - 6723 26 126 226 326 126 26 - - - - 6724 28 128 228 328 128 28 - - - - 6725 30 130 230 330 130 30 230 30 330 30 6726 32 132 232 332 132 32 - - - - 6727 34 134 234 334 134 34 - - - - 6728 36 136 236 336 136 36 236 36 - - 6729 38 138 238 338 138 38 - - - - 6730 40 140 240 340 140 40 - - 340 40 6731 42 142 242 342 142 42 242 42 - - 6732 44 144 244 344 144 44 - - - - 6733 46 146 246 346 146 46 - - - - 6734 48 148 248 348 148 48 248 48 - - 6735 50 150 250 350 150 50 - - 350 50 6736 52 152 252 352 152 52 - - - - 6737 54 154 254 354 154 54 254 54 - - 6738 56 156 256 356 156 56 - - - - 6739 58 158 258 358 158 58 - - - - 6740 60 160 260 360 160 60 260 60 360 60 6741 62 162 262 362 162 62 - - - - 6742 64 164 264 364 164 64 - - - - 6743 66 166 266 366 166 66 266 66 - - 6744 68 168 268 368 168 68 - - - - 6745 70 170 270 370 170 70 - - 370 70 6746 72 172 272 372 172 72 272 72 - - 6747 74 174 274 374 174 74 - - - - 6748 76 176 276 376 176 76 - - - - 6749 78 178 278 378 178 78 278 78 - - 6750 80 180 280 380 180 80 - - 380 80 6751 82 182 282 382 182 82 - - - - 6752 84 184 284 384 184 84 284 84 - - 6753 86 186 286 386 186 86 - - - - 6754 88 188 288 388 188 88 - - - - 6755 90 190 290 390 190 90 290 90 390 90 6756 92 192 292 392 192 92 - - - - 6757 94 194 294 394 194 94 - - - - 6758 - - - - - - 200 0 - - 6759 - - - - - - 203 3 - - 6760 - - - - - - 209 9 - - 6761 - - - - - - 215 15 - - 6762 - - - - - - 221 21 - - 6763 - - - - - - 227 27 - - 6764 - - - - - - 233 33 - - 6765 - - - - - - 239 39 - - 6766 - - - - - - 245 45 - - 6767 - - - - - - 251 51 - - 6768 - - - - - - 257 57 - - 6769 - - - - - - 263 63 - - 6770 - - - - - - 269 69 - - 6771 - - - - - - 275 75 - - 6772 - - - - - - 281 81 - - 6773 - - - - - - 287 87 - - 6774 - - - - - - 293 93 - - 6775} 6776do_execsql_test joinD-261 { 6777 SELECT t1.*, t2.*, t3.*, t4.* 6778 FROM t1 INNER JOIN t2 ON t2.x>0 6779 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 6780 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 6781 WHERE t1.b IS NOT DISTINCT FROM t2.b 6782 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6783} { 6784 2 102 202 302 102 2 - - - - 6785 4 104 204 304 104 4 - - - - 6786 6 106 206 306 106 6 206 6 - - 6787 8 108 208 308 108 8 - - - - 6788 10 110 210 310 110 10 - - 310 10 6789 12 112 212 312 112 12 212 12 - - 6790 14 114 214 314 114 14 - - - - 6791 16 116 216 316 116 16 - - - - 6792 18 118 218 318 118 18 218 18 - - 6793 20 120 220 320 120 20 - - 320 20 6794 22 122 222 322 122 22 - - - - 6795 24 124 224 324 124 24 224 24 - - 6796 26 126 226 326 126 26 - - - - 6797 28 128 228 328 128 28 - - - - 6798 30 130 230 330 130 30 230 30 330 30 6799 32 132 232 332 132 32 - - - - 6800 34 134 234 334 134 34 - - - - 6801 36 136 236 336 136 36 236 36 - - 6802 38 138 238 338 138 38 - - - - 6803 40 140 240 340 140 40 - - 340 40 6804 42 142 242 342 142 42 242 42 - - 6805 44 144 244 344 144 44 - - - - 6806 46 146 246 346 146 46 - - - - 6807 48 148 248 348 148 48 248 48 - - 6808 50 150 250 350 150 50 - - 350 50 6809 52 152 252 352 152 52 - - - - 6810 54 154 254 354 154 54 254 54 - - 6811 56 156 256 356 156 56 - - - - 6812 58 158 258 358 158 58 - - - - 6813 60 160 260 360 160 60 260 60 360 60 6814 62 162 262 362 162 62 - - - - 6815 64 164 264 364 164 64 - - - - 6816 66 166 266 366 166 66 266 66 - - 6817 68 168 268 368 168 68 - - - - 6818 70 170 270 370 170 70 - - 370 70 6819 72 172 272 372 172 72 272 72 - - 6820 74 174 274 374 174 74 - - - - 6821 76 176 276 376 176 76 - - - - 6822 78 178 278 378 178 78 278 78 - - 6823 80 180 280 380 180 80 - - 380 80 6824 82 182 282 382 182 82 - - - - 6825 84 184 284 384 184 84 284 84 - - 6826 86 186 286 386 186 86 - - - - 6827 88 188 288 388 188 88 - - - - 6828 90 190 290 390 190 90 290 90 390 90 6829 92 192 292 392 192 92 - - - - 6830 94 194 294 394 194 94 - - - - 6831 - - - - - - 200 0 - - 6832} 6833do_execsql_test joinD-262 { 6834 SELECT t1.*, t2.*, t3.*, t4.* 6835 FROM t1 INNER JOIN t2 ON t2.x>0 6836 FULL JOIN t3 ON t3.y>0 6837 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 6838 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 6839 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6840} { 6841 6 106 206 306 106 6 206 6 - - 6842 12 112 212 312 112 12 212 12 - - 6843 18 118 218 318 118 18 218 18 - - 6844 24 124 224 324 124 24 224 24 - - 6845 30 130 230 330 130 30 230 30 330 30 6846 36 136 236 336 136 36 236 36 - - 6847 42 142 242 342 142 42 242 42 - - 6848 48 148 248 348 148 48 248 48 - - 6849 54 154 254 354 154 54 254 54 - - 6850 60 160 260 360 160 60 260 60 360 60 6851 66 166 266 366 166 66 266 66 - - 6852 72 172 272 372 172 72 272 72 - - 6853 78 178 278 378 178 78 278 78 - - 6854 84 184 284 384 184 84 284 84 - - 6855 90 190 290 390 190 90 290 90 390 90 6856} 6857do_execsql_test joinD-263 { 6858 SELECT t1.*, t2.*, t3.*, t4.* 6859 FROM t1 INNER JOIN t2 ON t2.x>0 6860 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 6861 LEFT JOIN t4 ON t4.z>0 6862 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 6863 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6864} { 6865 10 110 210 310 110 10 - - 310 10 6866 20 120 220 320 120 20 - - 320 20 6867 30 130 230 330 130 30 230 30 330 30 6868 40 140 240 340 140 40 - - 340 40 6869 50 150 250 350 150 50 - - 350 50 6870 60 160 260 360 160 60 260 60 360 60 6871 70 170 270 370 170 70 - - 370 70 6872 80 180 280 380 180 80 - - 380 80 6873 90 190 290 390 190 90 290 90 390 90 6874} 6875do_execsql_test joinD-264 { 6876 SELECT t1.*, t2.*, t3.*, t4.* 6877 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 6878 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6879 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 6880 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6881} { 6882 2 102 202 302 102 2 - - - - 6883 4 104 204 304 104 4 - - - - 6884 6 106 206 306 106 6 206 6 - - 6885 8 108 208 308 108 8 - - - - 6886 10 110 210 310 110 10 - - 310 10 6887 12 112 212 312 112 12 212 12 - - 6888 14 114 214 314 114 14 - - - - 6889 16 116 216 316 116 16 - - - - 6890 18 118 218 318 118 18 218 18 - - 6891 20 120 220 320 120 20 - - 320 20 6892 22 122 222 322 122 22 - - - - 6893 24 124 224 324 124 24 224 24 - - 6894 26 126 226 326 126 26 - - - - 6895 28 128 228 328 128 28 - - - - 6896 30 130 230 330 130 30 230 30 330 30 6897 32 132 232 332 132 32 - - - - 6898 34 134 234 334 134 34 - - - - 6899 36 136 236 336 136 36 236 36 - - 6900 38 138 238 338 138 38 - - - - 6901 40 140 240 340 140 40 - - 340 40 6902 42 142 242 342 142 42 242 42 - - 6903 44 144 244 344 144 44 - - - - 6904 46 146 246 346 146 46 - - - - 6905 48 148 248 348 148 48 248 48 - - 6906 50 150 250 350 150 50 - - 350 50 6907 52 152 252 352 152 52 - - - - 6908 54 154 254 354 154 54 254 54 - - 6909 56 156 256 356 156 56 - - - - 6910 58 158 258 358 158 58 - - - - 6911 60 160 260 360 160 60 260 60 360 60 6912 62 162 262 362 162 62 - - - - 6913 64 164 264 364 164 64 - - - - 6914 66 166 266 366 166 66 266 66 - - 6915 68 168 268 368 168 68 - - - - 6916 70 170 270 370 170 70 - - 370 70 6917 72 172 272 372 172 72 272 72 - - 6918 74 174 274 374 174 74 - - - - 6919 76 176 276 376 176 76 - - - - 6920 78 178 278 378 178 78 278 78 - - 6921 80 180 280 380 180 80 - - 380 80 6922 82 182 282 382 182 82 - - - - 6923 84 184 284 384 184 84 284 84 - - 6924 86 186 286 386 186 86 - - - - 6925 88 188 288 388 188 88 - - - - 6926 90 190 290 390 190 90 290 90 390 90 6927 92 192 292 392 192 92 - - - - 6928 94 194 294 394 194 94 - - - - 6929 - - - - - - 200 0 - - 6930 - - - - - - 203 3 - - 6931 - - - - - - 209 9 - - 6932 - - - - - - 215 15 - - 6933 - - - - - - 221 21 - - 6934 - - - - - - 227 27 - - 6935 - - - - - - 233 33 - - 6936 - - - - - - 239 39 - - 6937 - - - - - - 245 45 - - 6938 - - - - - - 251 51 - - 6939 - - - - - - 257 57 - - 6940 - - - - - - 263 63 - - 6941 - - - - - - 269 69 - - 6942 - - - - - - 275 75 - - 6943 - - - - - - 281 81 - - 6944 - - - - - - 287 87 - - 6945 - - - - - - 293 93 - - 6946} 6947do_execsql_test joinD-265 { 6948 SELECT t1.*, t2.*, t3.*, t4.* 6949 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 6950 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6951 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 6952 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6953} { 6954 10 110 210 310 110 10 - - 310 10 6955 20 120 220 320 120 20 - - 320 20 6956 30 130 230 330 130 30 230 30 330 30 6957 40 140 240 340 140 40 - - 340 40 6958 50 150 250 350 150 50 - - 350 50 6959 60 160 260 360 160 60 260 60 360 60 6960 70 170 270 370 170 70 - - 370 70 6961 80 180 280 380 180 80 - - 380 80 6962 90 190 290 390 190 90 290 90 390 90 6963 - - - - - - - - 300 0 6964 - - - - - - - - 305 5 6965 - - - - - - - - 315 15 6966 - - - - - - - - 325 25 6967 - - - - - - - - 335 35 6968 - - - - - - - - 345 45 6969 - - - - - - - - 355 55 6970 - - - - - - - - 365 65 6971 - - - - - - - - 375 75 6972 - - - - - - - - 385 85 6973 - - - - - - - - 395 95 6974} 6975do_execsql_test joinD-266 { 6976 SELECT t1.*, t2.*, t3.*, t4.* 6977 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 6978 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6979 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 6980 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6981} { 6982 10 110 210 310 110 10 - - 310 10 6983 20 120 220 320 120 20 - - 320 20 6984 30 130 230 330 130 30 230 30 330 30 6985 40 140 240 340 140 40 - - 340 40 6986 50 150 250 350 150 50 - - 350 50 6987 60 160 260 360 160 60 260 60 360 60 6988 70 170 270 370 170 70 - - 370 70 6989 80 180 280 380 180 80 - - 380 80 6990 90 190 290 390 190 90 290 90 390 90 6991 - - - - - - - - 300 0 6992 - - - - - - - - 305 5 6993 - - - - - - - - 315 15 6994 - - - - - - - - 325 25 6995 - - - - - - - - 335 35 6996 - - - - - - - - 345 45 6997 - - - - - - - - 355 55 6998 - - - - - - - - 365 65 6999 - - - - - - - - 375 75 7000 - - - - - - - - 385 85 7001 - - - - - - - - 395 95 7002} 7003do_execsql_test joinD-267 { 7004 SELECT t1.*, t2.*, t3.*, t4.* 7005 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7006 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7007 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 7008 WHERE t2.x>0 7009 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7010} { 7011 10 110 210 310 110 10 - - 310 10 7012 20 120 220 320 120 20 - - 320 20 7013 30 130 230 330 130 30 230 30 330 30 7014 40 140 240 340 140 40 - - 340 40 7015 50 150 250 350 150 50 - - 350 50 7016 60 160 260 360 160 60 260 60 360 60 7017 70 170 270 370 170 70 - - 370 70 7018 80 180 280 380 180 80 - - 380 80 7019 90 190 290 390 190 90 290 90 390 90 7020} 7021do_execsql_test joinD-268 { 7022 SELECT t1.*, t2.*, t3.*, t4.* 7023 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7024 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7025 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 7026 WHERE (t2.x>0 OR t2.x IS NULL) 7027 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7028} { 7029 10 110 210 310 110 10 - - 310 10 7030 20 120 220 320 120 20 - - 320 20 7031 30 130 230 330 130 30 230 30 330 30 7032 40 140 240 340 140 40 - - 340 40 7033 50 150 250 350 150 50 - - 350 50 7034 60 160 260 360 160 60 260 60 360 60 7035 70 170 270 370 170 70 - - 370 70 7036 80 180 280 380 180 80 - - 380 80 7037 90 190 290 390 190 90 290 90 390 90 7038 - - - - - - - - 300 0 7039 - - - - - - - - 305 5 7040 - - - - - - - - 315 15 7041 - - - - - - - - 325 25 7042 - - - - - - - - 335 35 7043 - - - - - - - - 345 45 7044 - - - - - - - - 355 55 7045 - - - - - - - - 365 65 7046 - - - - - - - - 375 75 7047 - - - - - - - - 385 85 7048 - - - - - - - - 395 95 7049} 7050do_execsql_test joinD-269 { 7051 SELECT t1.*, t2.*, t3.*, t4.* 7052 FROM t1 INNER JOIN t2 ON true 7053 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7054 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 7055 WHERE t1.b=t2.b AND t2.x>0 7056 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7057} { 7058 10 110 210 310 110 10 - - 310 10 7059 20 120 220 320 120 20 - - 320 20 7060 30 130 230 330 130 30 230 30 330 30 7061 40 140 240 340 140 40 - - 340 40 7062 50 150 250 350 150 50 - - 350 50 7063 60 160 260 360 160 60 260 60 360 60 7064 70 170 270 370 170 70 - - 370 70 7065 80 180 280 380 180 80 - - 380 80 7066 90 190 290 390 190 90 290 90 390 90 7067} 7068do_execsql_test joinD-270 { 7069 SELECT t1.*, t2.*, t3.*, t4.* 7070 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7071 FULL JOIN t3 ON t1.c=t3.c 7072 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 7073 WHERE t3.y>0 7074 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7075} { 7076 30 130 230 330 130 30 230 30 330 30 7077 60 160 260 360 160 60 260 60 360 60 7078 90 190 290 390 190 90 290 90 390 90 7079} 7080do_execsql_test joinD-271 { 7081 SELECT t1.*, t2.*, t3.*, t4.* 7082 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7083 FULL JOIN t3 ON t1.c=t3.c 7084 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 7085 WHERE t3.y>0 OR t3.y IS NULL 7086 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7087} { 7088 10 110 210 310 110 10 - - 310 10 7089 20 120 220 320 120 20 - - 320 20 7090 30 130 230 330 130 30 230 30 330 30 7091 40 140 240 340 140 40 - - 340 40 7092 50 150 250 350 150 50 - - 350 50 7093 60 160 260 360 160 60 260 60 360 60 7094 70 170 270 370 170 70 - - 370 70 7095 80 180 280 380 180 80 - - 380 80 7096 90 190 290 390 190 90 290 90 390 90 7097 - - - - - - - - 300 0 7098 - - - - - - - - 305 5 7099 - - - - - - - - 315 15 7100 - - - - - - - - 325 25 7101 - - - - - - - - 335 35 7102 - - - - - - - - 345 45 7103 - - - - - - - - 355 55 7104 - - - - - - - - 365 65 7105 - - - - - - - - 375 75 7106 - - - - - - - - 385 85 7107 - - - - - - - - 395 95 7108} 7109do_execsql_test joinD-272 { 7110 SELECT t1.*, t2.*, t3.*, t4.* 7111 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7112 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7113 RIGHT JOIN t4 ON t1.d=t4.d 7114 WHERE t4.z>0 7115 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7116} { 7117 10 110 210 310 110 10 - - 310 10 7118 20 120 220 320 120 20 - - 320 20 7119 30 130 230 330 130 30 230 30 330 30 7120 40 140 240 340 140 40 - - 340 40 7121 50 150 250 350 150 50 - - 350 50 7122 60 160 260 360 160 60 260 60 360 60 7123 70 170 270 370 170 70 - - 370 70 7124 80 180 280 380 180 80 - - 380 80 7125 90 190 290 390 190 90 290 90 390 90 7126 - - - - - - - - 305 5 7127 - - - - - - - - 315 15 7128 - - - - - - - - 325 25 7129 - - - - - - - - 335 35 7130 - - - - - - - - 345 45 7131 - - - - - - - - 355 55 7132 - - - - - - - - 365 65 7133 - - - - - - - - 375 75 7134 - - - - - - - - 385 85 7135 - - - - - - - - 395 95 7136} 7137do_execsql_test joinD-273 { 7138 SELECT t1.*, t2.*, t3.*, t4.* 7139 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7140 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7141 RIGHT JOIN t4 ON t1.d=t4.d 7142 WHERE t4.z IS NULL OR t4.z>0 7143 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7144} { 7145 10 110 210 310 110 10 - - 310 10 7146 20 120 220 320 120 20 - - 320 20 7147 30 130 230 330 130 30 230 30 330 30 7148 40 140 240 340 140 40 - - 340 40 7149 50 150 250 350 150 50 - - 350 50 7150 60 160 260 360 160 60 260 60 360 60 7151 70 170 270 370 170 70 - - 370 70 7152 80 180 280 380 180 80 - - 380 80 7153 90 190 290 390 190 90 290 90 390 90 7154 - - - - - - - - 305 5 7155 - - - - - - - - 315 15 7156 - - - - - - - - 325 25 7157 - - - - - - - - 335 35 7158 - - - - - - - - 345 45 7159 - - - - - - - - 355 55 7160 - - - - - - - - 365 65 7161 - - - - - - - - 375 75 7162 - - - - - - - - 385 85 7163 - - - - - - - - 395 95 7164} 7165do_execsql_test joinD-274 { 7166 SELECT t1.*, t2.*, t3.*, t4.* 7167 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7168 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7169 RIGHT JOIN t4 ON t1.d=t4.d 7170 WHERE t2.x>0 AND t4.z>0 7171 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7172} { 7173 10 110 210 310 110 10 - - 310 10 7174 20 120 220 320 120 20 - - 320 20 7175 30 130 230 330 130 30 230 30 330 30 7176 40 140 240 340 140 40 - - 340 40 7177 50 150 250 350 150 50 - - 350 50 7178 60 160 260 360 160 60 260 60 360 60 7179 70 170 270 370 170 70 - - 370 70 7180 80 180 280 380 180 80 - - 380 80 7181 90 190 290 390 190 90 290 90 390 90 7182} 7183do_execsql_test joinD-275 { 7184 SELECT t1.*, t2.*, t3.*, t4.* 7185 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7186 FULL JOIN t3 ON t1.c=t3.c 7187 RIGHT JOIN t4 ON t1.d=t4.d 7188 WHERE t4.z>0 AND t3.y>0 7189 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7190} { 7191 30 130 230 330 130 30 230 30 330 30 7192 60 160 260 360 160 60 260 60 360 60 7193 90 190 290 390 190 90 290 90 390 90 7194} 7195do_execsql_test joinD-276 { 7196 SELECT t1.*, t2.*, t3.*, t4.* 7197 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7198 FULL JOIN t3 ON t1.c=t3.c 7199 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 7200 WHERE t2.x>0 AND t3.y>0 7201 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7202} { 7203 30 130 230 330 130 30 230 30 330 30 7204 60 160 260 360 160 60 260 60 360 60 7205 90 190 290 390 190 90 290 90 390 90 7206} 7207do_execsql_test joinD-277 { 7208 SELECT t1.*, t2.*, t3.*, t4.* 7209 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7210 FULL JOIN t3 ON t1.c=t3.c 7211 RIGHT JOIN t4 ON t1.d=t4.d 7212 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 7213 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7214} { 7215 30 130 230 330 130 30 230 30 330 30 7216 60 160 260 360 160 60 260 60 360 60 7217 90 190 290 390 190 90 290 90 390 90 7218} 7219do_execsql_test joinD-278 { 7220 SELECT t1.*, t2.*, t3.*, t4.* 7221 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 7222 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 7223 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 7224 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7225} { 7226 10 110 210 310 110 10 - - 310 10 7227 20 120 220 320 120 20 - - 320 20 7228 30 130 230 330 130 30 230 30 330 30 7229 40 140 240 340 140 40 - - 340 40 7230 50 150 250 350 150 50 - - 350 50 7231 60 160 260 360 160 60 260 60 360 60 7232 70 170 270 370 170 70 - - 370 70 7233 80 180 280 380 180 80 - - 380 80 7234 90 190 290 390 190 90 290 90 390 90 7235 - - - - - - - - 300 0 7236 - - - - - - - - 305 5 7237 - - - - - - - - 315 15 7238 - - - - - - - - 325 25 7239 - - - - - - - - 335 35 7240 - - - - - - - - 345 45 7241 - - - - - - - - 355 55 7242 - - - - - - - - 365 65 7243 - - - - - - - - 375 75 7244 - - - - - - - - 385 85 7245 - - - - - - - - 395 95 7246} 7247do_execsql_test joinD-279 { 7248 SELECT t1.*, t2.*, t3.*, t4.* 7249 FROM t1 INNER JOIN t2 ON t2.x>0 7250 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 7251 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 7252 WHERE t1.b IS NOT DISTINCT FROM t2.b 7253 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7254} { 7255 10 110 210 310 110 10 - - 310 10 7256 20 120 220 320 120 20 - - 320 20 7257 30 130 230 330 130 30 230 30 330 30 7258 40 140 240 340 140 40 - - 340 40 7259 50 150 250 350 150 50 - - 350 50 7260 60 160 260 360 160 60 260 60 360 60 7261 70 170 270 370 170 70 - - 370 70 7262 80 180 280 380 180 80 - - 380 80 7263 90 190 290 390 190 90 290 90 390 90 7264 - - - - - - - - 300 0 7265} 7266do_execsql_test joinD-280 { 7267 SELECT t1.*, t2.*, t3.*, t4.* 7268 FROM t1 INNER JOIN t2 ON t2.x>0 7269 FULL JOIN t3 ON t3.y>0 7270 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 7271 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 7272 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7273} { 7274 30 130 230 330 130 30 230 30 330 30 7275 60 160 260 360 160 60 260 60 360 60 7276 90 190 290 390 190 90 290 90 390 90 7277} 7278do_execsql_test joinD-281 { 7279 SELECT t1.*, t2.*, t3.*, t4.* 7280 FROM t1 INNER JOIN t2 ON t2.x>0 7281 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 7282 RIGHT JOIN t4 ON t4.z>0 7283 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 7284 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7285} { 7286 10 110 210 310 110 10 - - 310 10 7287 20 120 220 320 120 20 - - 320 20 7288 30 130 230 330 130 30 230 30 330 30 7289 40 140 240 340 140 40 - - 340 40 7290 50 150 250 350 150 50 - - 350 50 7291 60 160 260 360 160 60 260 60 360 60 7292 70 170 270 370 170 70 - - 370 70 7293 80 180 280 380 180 80 - - 380 80 7294 90 190 290 390 190 90 290 90 390 90 7295} 7296do_execsql_test joinD-282 { 7297 SELECT t1.*, t2.*, t3.*, t4.* 7298 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 7299 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7300 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 7301 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7302} { 7303 10 110 210 310 110 10 - - 310 10 7304 20 120 220 320 120 20 - - 320 20 7305 30 130 230 330 130 30 230 30 330 30 7306 40 140 240 340 140 40 - - 340 40 7307 50 150 250 350 150 50 - - 350 50 7308 60 160 260 360 160 60 260 60 360 60 7309 70 170 270 370 170 70 - - 370 70 7310 80 180 280 380 180 80 - - 380 80 7311 90 190 290 390 190 90 290 90 390 90 7312 - - - - - - - - 300 0 7313 - - - - - - - - 305 5 7314 - - - - - - - - 315 15 7315 - - - - - - - - 325 25 7316 - - - - - - - - 335 35 7317 - - - - - - - - 345 45 7318 - - - - - - - - 355 55 7319 - - - - - - - - 365 65 7320 - - - - - - - - 375 75 7321 - - - - - - - - 385 85 7322 - - - - - - - - 395 95 7323} 7324do_execsql_test joinD-283 { 7325 SELECT t1.*, t2.*, t3.*, t4.* 7326 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7327 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7328 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 7329 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7330} { 7331 2 102 202 302 102 2 - - - - 7332 4 104 204 304 104 4 - - - - 7333 6 106 206 306 106 6 206 6 - - 7334 8 108 208 308 108 8 - - - - 7335 10 110 210 310 110 10 - - 310 10 7336 12 112 212 312 112 12 212 12 - - 7337 14 114 214 314 114 14 - - - - 7338 16 116 216 316 116 16 - - - - 7339 18 118 218 318 118 18 218 18 - - 7340 20 120 220 320 120 20 - - 320 20 7341 22 122 222 322 122 22 - - - - 7342 24 124 224 324 124 24 224 24 - - 7343 26 126 226 326 126 26 - - - - 7344 28 128 228 328 128 28 - - - - 7345 30 130 230 330 130 30 230 30 330 30 7346 32 132 232 332 132 32 - - - - 7347 34 134 234 334 134 34 - - - - 7348 36 136 236 336 136 36 236 36 - - 7349 38 138 238 338 138 38 - - - - 7350 40 140 240 340 140 40 - - 340 40 7351 42 142 242 342 142 42 242 42 - - 7352 44 144 244 344 144 44 - - - - 7353 46 146 246 346 146 46 - - - - 7354 48 148 248 348 148 48 248 48 - - 7355 50 150 250 350 150 50 - - 350 50 7356 52 152 252 352 152 52 - - - - 7357 54 154 254 354 154 54 254 54 - - 7358 56 156 256 356 156 56 - - - - 7359 58 158 258 358 158 58 - - - - 7360 60 160 260 360 160 60 260 60 360 60 7361 62 162 262 362 162 62 - - - - 7362 64 164 264 364 164 64 - - - - 7363 66 166 266 366 166 66 266 66 - - 7364 68 168 268 368 168 68 - - - - 7365 70 170 270 370 170 70 - - 370 70 7366 72 172 272 372 172 72 272 72 - - 7367 74 174 274 374 174 74 - - - - 7368 76 176 276 376 176 76 - - - - 7369 78 178 278 378 178 78 278 78 - - 7370 80 180 280 380 180 80 - - 380 80 7371 82 182 282 382 182 82 - - - - 7372 84 184 284 384 184 84 284 84 - - 7373 86 186 286 386 186 86 - - - - 7374 88 188 288 388 188 88 - - - - 7375 90 190 290 390 190 90 290 90 390 90 7376 92 192 292 392 192 92 - - - - 7377 94 194 294 394 194 94 - - - - 7378 - - - - - - 200 0 - - 7379 - - - - - - 203 3 - - 7380 - - - - - - 209 9 - - 7381 - - - - - - 215 15 - - 7382 - - - - - - 221 21 - - 7383 - - - - - - 227 27 - - 7384 - - - - - - 233 33 - - 7385 - - - - - - 239 39 - - 7386 - - - - - - 245 45 - - 7387 - - - - - - 251 51 - - 7388 - - - - - - 257 57 - - 7389 - - - - - - 263 63 - - 7390 - - - - - - 269 69 - - 7391 - - - - - - 275 75 - - 7392 - - - - - - 281 81 - - 7393 - - - - - - 287 87 - - 7394 - - - - - - 293 93 - - 7395 - - - - - - - - 300 0 7396 - - - - - - - - 305 5 7397 - - - - - - - - 315 15 7398 - - - - - - - - 325 25 7399 - - - - - - - - 335 35 7400 - - - - - - - - 345 45 7401 - - - - - - - - 355 55 7402 - - - - - - - - 365 65 7403 - - - - - - - - 375 75 7404 - - - - - - - - 385 85 7405 - - - - - - - - 395 95 7406} 7407do_execsql_test joinD-284 { 7408 SELECT t1.*, t2.*, t3.*, t4.* 7409 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 7410 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7411 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 7412 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7413} { 7414 2 102 202 302 102 2 - - - - 7415 4 104 204 304 104 4 - - - - 7416 6 106 206 306 106 6 206 6 - - 7417 8 108 208 308 108 8 - - - - 7418 10 110 210 310 110 10 - - 310 10 7419 12 112 212 312 112 12 212 12 - - 7420 14 114 214 314 114 14 - - - - 7421 16 116 216 316 116 16 - - - - 7422 18 118 218 318 118 18 218 18 - - 7423 20 120 220 320 120 20 - - 320 20 7424 22 122 222 322 122 22 - - - - 7425 24 124 224 324 124 24 224 24 - - 7426 26 126 226 326 126 26 - - - - 7427 28 128 228 328 128 28 - - - - 7428 30 130 230 330 130 30 230 30 330 30 7429 32 132 232 332 132 32 - - - - 7430 34 134 234 334 134 34 - - - - 7431 36 136 236 336 136 36 236 36 - - 7432 38 138 238 338 138 38 - - - - 7433 40 140 240 340 140 40 - - 340 40 7434 42 142 242 342 142 42 242 42 - - 7435 44 144 244 344 144 44 - - - - 7436 46 146 246 346 146 46 - - - - 7437 48 148 248 348 148 48 248 48 - - 7438 50 150 250 350 150 50 - - 350 50 7439 52 152 252 352 152 52 - - - - 7440 54 154 254 354 154 54 254 54 - - 7441 56 156 256 356 156 56 - - - - 7442 58 158 258 358 158 58 - - - - 7443 60 160 260 360 160 60 260 60 360 60 7444 62 162 262 362 162 62 - - - - 7445 64 164 264 364 164 64 - - - - 7446 66 166 266 366 166 66 266 66 - - 7447 68 168 268 368 168 68 - - - - 7448 70 170 270 370 170 70 - - 370 70 7449 72 172 272 372 172 72 272 72 - - 7450 74 174 274 374 174 74 - - - - 7451 76 176 276 376 176 76 - - - - 7452 78 178 278 378 178 78 278 78 - - 7453 80 180 280 380 180 80 - - 380 80 7454 82 182 282 382 182 82 - - - - 7455 84 184 284 384 184 84 284 84 - - 7456 86 186 286 386 186 86 - - - - 7457 88 188 288 388 188 88 - - - - 7458 90 190 290 390 190 90 290 90 390 90 7459 92 192 292 392 192 92 - - - - 7460 94 194 294 394 194 94 - - - - 7461 - - - - - - 200 0 - - 7462 - - - - - - 203 3 - - 7463 - - - - - - 209 9 - - 7464 - - - - - - 215 15 - - 7465 - - - - - - 221 21 - - 7466 - - - - - - 227 27 - - 7467 - - - - - - 233 33 - - 7468 - - - - - - 239 39 - - 7469 - - - - - - 245 45 - - 7470 - - - - - - 251 51 - - 7471 - - - - - - 257 57 - - 7472 - - - - - - 263 63 - - 7473 - - - - - - 269 69 - - 7474 - - - - - - 275 75 - - 7475 - - - - - - 281 81 - - 7476 - - - - - - 287 87 - - 7477 - - - - - - 293 93 - - 7478 - - - - - - - - 300 0 7479 - - - - - - - - 305 5 7480 - - - - - - - - 315 15 7481 - - - - - - - - 325 25 7482 - - - - - - - - 335 35 7483 - - - - - - - - 345 45 7484 - - - - - - - - 355 55 7485 - - - - - - - - 365 65 7486 - - - - - - - - 375 75 7487 - - - - - - - - 385 85 7488 - - - - - - - - 395 95 7489} 7490do_execsql_test joinD-285 { 7491 SELECT t1.*, t2.*, t3.*, t4.* 7492 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7493 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7494 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 7495 WHERE t2.x>0 7496 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7497} { 7498 2 102 202 302 102 2 - - - - 7499 4 104 204 304 104 4 - - - - 7500 6 106 206 306 106 6 206 6 - - 7501 8 108 208 308 108 8 - - - - 7502 10 110 210 310 110 10 - - 310 10 7503 12 112 212 312 112 12 212 12 - - 7504 14 114 214 314 114 14 - - - - 7505 16 116 216 316 116 16 - - - - 7506 18 118 218 318 118 18 218 18 - - 7507 20 120 220 320 120 20 - - 320 20 7508 22 122 222 322 122 22 - - - - 7509 24 124 224 324 124 24 224 24 - - 7510 26 126 226 326 126 26 - - - - 7511 28 128 228 328 128 28 - - - - 7512 30 130 230 330 130 30 230 30 330 30 7513 32 132 232 332 132 32 - - - - 7514 34 134 234 334 134 34 - - - - 7515 36 136 236 336 136 36 236 36 - - 7516 38 138 238 338 138 38 - - - - 7517 40 140 240 340 140 40 - - 340 40 7518 42 142 242 342 142 42 242 42 - - 7519 44 144 244 344 144 44 - - - - 7520 46 146 246 346 146 46 - - - - 7521 48 148 248 348 148 48 248 48 - - 7522 50 150 250 350 150 50 - - 350 50 7523 52 152 252 352 152 52 - - - - 7524 54 154 254 354 154 54 254 54 - - 7525 56 156 256 356 156 56 - - - - 7526 58 158 258 358 158 58 - - - - 7527 60 160 260 360 160 60 260 60 360 60 7528 62 162 262 362 162 62 - - - - 7529 64 164 264 364 164 64 - - - - 7530 66 166 266 366 166 66 266 66 - - 7531 68 168 268 368 168 68 - - - - 7532 70 170 270 370 170 70 - - 370 70 7533 72 172 272 372 172 72 272 72 - - 7534 74 174 274 374 174 74 - - - - 7535 76 176 276 376 176 76 - - - - 7536 78 178 278 378 178 78 278 78 - - 7537 80 180 280 380 180 80 - - 380 80 7538 82 182 282 382 182 82 - - - - 7539 84 184 284 384 184 84 284 84 - - 7540 86 186 286 386 186 86 - - - - 7541 88 188 288 388 188 88 - - - - 7542 90 190 290 390 190 90 290 90 390 90 7543 92 192 292 392 192 92 - - - - 7544 94 194 294 394 194 94 - - - - 7545} 7546do_execsql_test joinD-286 { 7547 SELECT t1.*, t2.*, t3.*, t4.* 7548 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7549 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7550 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 7551 WHERE (t2.x>0 OR t2.x IS NULL) 7552 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7553} { 7554 2 102 202 302 102 2 - - - - 7555 4 104 204 304 104 4 - - - - 7556 6 106 206 306 106 6 206 6 - - 7557 8 108 208 308 108 8 - - - - 7558 10 110 210 310 110 10 - - 310 10 7559 12 112 212 312 112 12 212 12 - - 7560 14 114 214 314 114 14 - - - - 7561 16 116 216 316 116 16 - - - - 7562 18 118 218 318 118 18 218 18 - - 7563 20 120 220 320 120 20 - - 320 20 7564 22 122 222 322 122 22 - - - - 7565 24 124 224 324 124 24 224 24 - - 7566 26 126 226 326 126 26 - - - - 7567 28 128 228 328 128 28 - - - - 7568 30 130 230 330 130 30 230 30 330 30 7569 32 132 232 332 132 32 - - - - 7570 34 134 234 334 134 34 - - - - 7571 36 136 236 336 136 36 236 36 - - 7572 38 138 238 338 138 38 - - - - 7573 40 140 240 340 140 40 - - 340 40 7574 42 142 242 342 142 42 242 42 - - 7575 44 144 244 344 144 44 - - - - 7576 46 146 246 346 146 46 - - - - 7577 48 148 248 348 148 48 248 48 - - 7578 50 150 250 350 150 50 - - 350 50 7579 52 152 252 352 152 52 - - - - 7580 54 154 254 354 154 54 254 54 - - 7581 56 156 256 356 156 56 - - - - 7582 58 158 258 358 158 58 - - - - 7583 60 160 260 360 160 60 260 60 360 60 7584 62 162 262 362 162 62 - - - - 7585 64 164 264 364 164 64 - - - - 7586 66 166 266 366 166 66 266 66 - - 7587 68 168 268 368 168 68 - - - - 7588 70 170 270 370 170 70 - - 370 70 7589 72 172 272 372 172 72 272 72 - - 7590 74 174 274 374 174 74 - - - - 7591 76 176 276 376 176 76 - - - - 7592 78 178 278 378 178 78 278 78 - - 7593 80 180 280 380 180 80 - - 380 80 7594 82 182 282 382 182 82 - - - - 7595 84 184 284 384 184 84 284 84 - - 7596 86 186 286 386 186 86 - - - - 7597 88 188 288 388 188 88 - - - - 7598 90 190 290 390 190 90 290 90 390 90 7599 92 192 292 392 192 92 - - - - 7600 94 194 294 394 194 94 - - - - 7601 - - - - - - 200 0 - - 7602 - - - - - - 203 3 - - 7603 - - - - - - 209 9 - - 7604 - - - - - - 215 15 - - 7605 - - - - - - 221 21 - - 7606 - - - - - - 227 27 - - 7607 - - - - - - 233 33 - - 7608 - - - - - - 239 39 - - 7609 - - - - - - 245 45 - - 7610 - - - - - - 251 51 - - 7611 - - - - - - 257 57 - - 7612 - - - - - - 263 63 - - 7613 - - - - - - 269 69 - - 7614 - - - - - - 275 75 - - 7615 - - - - - - 281 81 - - 7616 - - - - - - 287 87 - - 7617 - - - - - - 293 93 - - 7618 - - - - - - - - 300 0 7619 - - - - - - - - 305 5 7620 - - - - - - - - 315 15 7621 - - - - - - - - 325 25 7622 - - - - - - - - 335 35 7623 - - - - - - - - 345 45 7624 - - - - - - - - 355 55 7625 - - - - - - - - 365 65 7626 - - - - - - - - 375 75 7627 - - - - - - - - 385 85 7628 - - - - - - - - 395 95 7629} 7630do_execsql_test joinD-287 { 7631 SELECT t1.*, t2.*, t3.*, t4.* 7632 FROM t1 INNER JOIN t2 ON true 7633 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7634 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 7635 WHERE t1.b=t2.b AND t2.x>0 7636 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7637} { 7638 2 102 202 302 102 2 - - - - 7639 4 104 204 304 104 4 - - - - 7640 6 106 206 306 106 6 206 6 - - 7641 8 108 208 308 108 8 - - - - 7642 10 110 210 310 110 10 - - 310 10 7643 12 112 212 312 112 12 212 12 - - 7644 14 114 214 314 114 14 - - - - 7645 16 116 216 316 116 16 - - - - 7646 18 118 218 318 118 18 218 18 - - 7647 20 120 220 320 120 20 - - 320 20 7648 22 122 222 322 122 22 - - - - 7649 24 124 224 324 124 24 224 24 - - 7650 26 126 226 326 126 26 - - - - 7651 28 128 228 328 128 28 - - - - 7652 30 130 230 330 130 30 230 30 330 30 7653 32 132 232 332 132 32 - - - - 7654 34 134 234 334 134 34 - - - - 7655 36 136 236 336 136 36 236 36 - - 7656 38 138 238 338 138 38 - - - - 7657 40 140 240 340 140 40 - - 340 40 7658 42 142 242 342 142 42 242 42 - - 7659 44 144 244 344 144 44 - - - - 7660 46 146 246 346 146 46 - - - - 7661 48 148 248 348 148 48 248 48 - - 7662 50 150 250 350 150 50 - - 350 50 7663 52 152 252 352 152 52 - - - - 7664 54 154 254 354 154 54 254 54 - - 7665 56 156 256 356 156 56 - - - - 7666 58 158 258 358 158 58 - - - - 7667 60 160 260 360 160 60 260 60 360 60 7668 62 162 262 362 162 62 - - - - 7669 64 164 264 364 164 64 - - - - 7670 66 166 266 366 166 66 266 66 - - 7671 68 168 268 368 168 68 - - - - 7672 70 170 270 370 170 70 - - 370 70 7673 72 172 272 372 172 72 272 72 - - 7674 74 174 274 374 174 74 - - - - 7675 76 176 276 376 176 76 - - - - 7676 78 178 278 378 178 78 278 78 - - 7677 80 180 280 380 180 80 - - 380 80 7678 82 182 282 382 182 82 - - - - 7679 84 184 284 384 184 84 284 84 - - 7680 86 186 286 386 186 86 - - - - 7681 88 188 288 388 188 88 - - - - 7682 90 190 290 390 190 90 290 90 390 90 7683 92 192 292 392 192 92 - - - - 7684 94 194 294 394 194 94 - - - - 7685} 7686do_execsql_test joinD-288 { 7687 SELECT t1.*, t2.*, t3.*, t4.* 7688 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7689 FULL JOIN t3 ON t1.c=t3.c 7690 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 7691 WHERE t3.y>0 7692 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7693} { 7694 6 106 206 306 106 6 206 6 - - 7695 12 112 212 312 112 12 212 12 - - 7696 18 118 218 318 118 18 218 18 - - 7697 24 124 224 324 124 24 224 24 - - 7698 30 130 230 330 130 30 230 30 330 30 7699 36 136 236 336 136 36 236 36 - - 7700 42 142 242 342 142 42 242 42 - - 7701 48 148 248 348 148 48 248 48 - - 7702 54 154 254 354 154 54 254 54 - - 7703 60 160 260 360 160 60 260 60 360 60 7704 66 166 266 366 166 66 266 66 - - 7705 72 172 272 372 172 72 272 72 - - 7706 78 178 278 378 178 78 278 78 - - 7707 84 184 284 384 184 84 284 84 - - 7708 90 190 290 390 190 90 290 90 390 90 7709 - - - - - - 203 3 - - 7710 - - - - - - 209 9 - - 7711 - - - - - - 215 15 - - 7712 - - - - - - 221 21 - - 7713 - - - - - - 227 27 - - 7714 - - - - - - 233 33 - - 7715 - - - - - - 239 39 - - 7716 - - - - - - 245 45 - - 7717 - - - - - - 251 51 - - 7718 - - - - - - 257 57 - - 7719 - - - - - - 263 63 - - 7720 - - - - - - 269 69 - - 7721 - - - - - - 275 75 - - 7722 - - - - - - 281 81 - - 7723 - - - - - - 287 87 - - 7724 - - - - - - 293 93 - - 7725} 7726do_execsql_test joinD-289 { 7727 SELECT t1.*, t2.*, t3.*, t4.* 7728 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7729 FULL JOIN t3 ON t1.c=t3.c 7730 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 7731 WHERE t3.y>0 OR t3.y IS NULL 7732 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7733} { 7734 2 102 202 302 102 2 - - - - 7735 4 104 204 304 104 4 - - - - 7736 6 106 206 306 106 6 206 6 - - 7737 8 108 208 308 108 8 - - - - 7738 10 110 210 310 110 10 - - 310 10 7739 12 112 212 312 112 12 212 12 - - 7740 14 114 214 314 114 14 - - - - 7741 16 116 216 316 116 16 - - - - 7742 18 118 218 318 118 18 218 18 - - 7743 20 120 220 320 120 20 - - 320 20 7744 22 122 222 322 122 22 - - - - 7745 24 124 224 324 124 24 224 24 - - 7746 26 126 226 326 126 26 - - - - 7747 28 128 228 328 128 28 - - - - 7748 30 130 230 330 130 30 230 30 330 30 7749 32 132 232 332 132 32 - - - - 7750 34 134 234 334 134 34 - - - - 7751 36 136 236 336 136 36 236 36 - - 7752 38 138 238 338 138 38 - - - - 7753 40 140 240 340 140 40 - - 340 40 7754 42 142 242 342 142 42 242 42 - - 7755 44 144 244 344 144 44 - - - - 7756 46 146 246 346 146 46 - - - - 7757 48 148 248 348 148 48 248 48 - - 7758 50 150 250 350 150 50 - - 350 50 7759 52 152 252 352 152 52 - - - - 7760 54 154 254 354 154 54 254 54 - - 7761 56 156 256 356 156 56 - - - - 7762 58 158 258 358 158 58 - - - - 7763 60 160 260 360 160 60 260 60 360 60 7764 62 162 262 362 162 62 - - - - 7765 64 164 264 364 164 64 - - - - 7766 66 166 266 366 166 66 266 66 - - 7767 68 168 268 368 168 68 - - - - 7768 70 170 270 370 170 70 - - 370 70 7769 72 172 272 372 172 72 272 72 - - 7770 74 174 274 374 174 74 - - - - 7771 76 176 276 376 176 76 - - - - 7772 78 178 278 378 178 78 278 78 - - 7773 80 180 280 380 180 80 - - 380 80 7774 82 182 282 382 182 82 - - - - 7775 84 184 284 384 184 84 284 84 - - 7776 86 186 286 386 186 86 - - - - 7777 88 188 288 388 188 88 - - - - 7778 90 190 290 390 190 90 290 90 390 90 7779 92 192 292 392 192 92 - - - - 7780 94 194 294 394 194 94 - - - - 7781 - - - - - - 203 3 - - 7782 - - - - - - 209 9 - - 7783 - - - - - - 215 15 - - 7784 - - - - - - 221 21 - - 7785 - - - - - - 227 27 - - 7786 - - - - - - 233 33 - - 7787 - - - - - - 239 39 - - 7788 - - - - - - 245 45 - - 7789 - - - - - - 251 51 - - 7790 - - - - - - 257 57 - - 7791 - - - - - - 263 63 - - 7792 - - - - - - 269 69 - - 7793 - - - - - - 275 75 - - 7794 - - - - - - 281 81 - - 7795 - - - - - - 287 87 - - 7796 - - - - - - 293 93 - - 7797 - - - - - - - - 300 0 7798 - - - - - - - - 305 5 7799 - - - - - - - - 315 15 7800 - - - - - - - - 325 25 7801 - - - - - - - - 335 35 7802 - - - - - - - - 345 45 7803 - - - - - - - - 355 55 7804 - - - - - - - - 365 65 7805 - - - - - - - - 375 75 7806 - - - - - - - - 385 85 7807 - - - - - - - - 395 95 7808} 7809do_execsql_test joinD-290 { 7810 SELECT t1.*, t2.*, t3.*, t4.* 7811 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7812 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7813 FULL JOIN t4 ON t1.d=t4.d 7814 WHERE t4.z>0 7815 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7816} { 7817 10 110 210 310 110 10 - - 310 10 7818 20 120 220 320 120 20 - - 320 20 7819 30 130 230 330 130 30 230 30 330 30 7820 40 140 240 340 140 40 - - 340 40 7821 50 150 250 350 150 50 - - 350 50 7822 60 160 260 360 160 60 260 60 360 60 7823 70 170 270 370 170 70 - - 370 70 7824 80 180 280 380 180 80 - - 380 80 7825 90 190 290 390 190 90 290 90 390 90 7826 - - - - - - - - 305 5 7827 - - - - - - - - 315 15 7828 - - - - - - - - 325 25 7829 - - - - - - - - 335 35 7830 - - - - - - - - 345 45 7831 - - - - - - - - 355 55 7832 - - - - - - - - 365 65 7833 - - - - - - - - 375 75 7834 - - - - - - - - 385 85 7835 - - - - - - - - 395 95 7836} 7837do_execsql_test joinD-291 { 7838 SELECT t1.*, t2.*, t3.*, t4.* 7839 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7840 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7841 FULL JOIN t4 ON t1.d=t4.d 7842 WHERE t4.z IS NULL OR t4.z>0 7843 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7844} { 7845 2 102 202 302 102 2 - - - - 7846 4 104 204 304 104 4 - - - - 7847 6 106 206 306 106 6 206 6 - - 7848 8 108 208 308 108 8 - - - - 7849 10 110 210 310 110 10 - - 310 10 7850 12 112 212 312 112 12 212 12 - - 7851 14 114 214 314 114 14 - - - - 7852 16 116 216 316 116 16 - - - - 7853 18 118 218 318 118 18 218 18 - - 7854 20 120 220 320 120 20 - - 320 20 7855 22 122 222 322 122 22 - - - - 7856 24 124 224 324 124 24 224 24 - - 7857 26 126 226 326 126 26 - - - - 7858 28 128 228 328 128 28 - - - - 7859 30 130 230 330 130 30 230 30 330 30 7860 32 132 232 332 132 32 - - - - 7861 34 134 234 334 134 34 - - - - 7862 36 136 236 336 136 36 236 36 - - 7863 38 138 238 338 138 38 - - - - 7864 40 140 240 340 140 40 - - 340 40 7865 42 142 242 342 142 42 242 42 - - 7866 44 144 244 344 144 44 - - - - 7867 46 146 246 346 146 46 - - - - 7868 48 148 248 348 148 48 248 48 - - 7869 50 150 250 350 150 50 - - 350 50 7870 52 152 252 352 152 52 - - - - 7871 54 154 254 354 154 54 254 54 - - 7872 56 156 256 356 156 56 - - - - 7873 58 158 258 358 158 58 - - - - 7874 60 160 260 360 160 60 260 60 360 60 7875 62 162 262 362 162 62 - - - - 7876 64 164 264 364 164 64 - - - - 7877 66 166 266 366 166 66 266 66 - - 7878 68 168 268 368 168 68 - - - - 7879 70 170 270 370 170 70 - - 370 70 7880 72 172 272 372 172 72 272 72 - - 7881 74 174 274 374 174 74 - - - - 7882 76 176 276 376 176 76 - - - - 7883 78 178 278 378 178 78 278 78 - - 7884 80 180 280 380 180 80 - - 380 80 7885 82 182 282 382 182 82 - - - - 7886 84 184 284 384 184 84 284 84 - - 7887 86 186 286 386 186 86 - - - - 7888 88 188 288 388 188 88 - - - - 7889 90 190 290 390 190 90 290 90 390 90 7890 92 192 292 392 192 92 - - - - 7891 94 194 294 394 194 94 - - - - 7892 - - - - - - 200 0 - - 7893 - - - - - - 203 3 - - 7894 - - - - - - 209 9 - - 7895 - - - - - - 215 15 - - 7896 - - - - - - 221 21 - - 7897 - - - - - - 227 27 - - 7898 - - - - - - 233 33 - - 7899 - - - - - - 239 39 - - 7900 - - - - - - 245 45 - - 7901 - - - - - - 251 51 - - 7902 - - - - - - 257 57 - - 7903 - - - - - - 263 63 - - 7904 - - - - - - 269 69 - - 7905 - - - - - - 275 75 - - 7906 - - - - - - 281 81 - - 7907 - - - - - - 287 87 - - 7908 - - - - - - 293 93 - - 7909 - - - - - - - - 305 5 7910 - - - - - - - - 315 15 7911 - - - - - - - - 325 25 7912 - - - - - - - - 335 35 7913 - - - - - - - - 345 45 7914 - - - - - - - - 355 55 7915 - - - - - - - - 365 65 7916 - - - - - - - - 375 75 7917 - - - - - - - - 385 85 7918 - - - - - - - - 395 95 7919} 7920do_execsql_test joinD-292 { 7921 SELECT t1.*, t2.*, t3.*, t4.* 7922 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7923 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7924 FULL JOIN t4 ON t1.d=t4.d 7925 WHERE t2.x>0 AND t4.z>0 7926 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7927} { 7928 10 110 210 310 110 10 - - 310 10 7929 20 120 220 320 120 20 - - 320 20 7930 30 130 230 330 130 30 230 30 330 30 7931 40 140 240 340 140 40 - - 340 40 7932 50 150 250 350 150 50 - - 350 50 7933 60 160 260 360 160 60 260 60 360 60 7934 70 170 270 370 170 70 - - 370 70 7935 80 180 280 380 180 80 - - 380 80 7936 90 190 290 390 190 90 290 90 390 90 7937} 7938do_execsql_test joinD-293 { 7939 SELECT t1.*, t2.*, t3.*, t4.* 7940 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7941 FULL JOIN t3 ON t1.c=t3.c 7942 FULL JOIN t4 ON t1.d=t4.d 7943 WHERE t4.z>0 AND t3.y>0 7944 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7945} { 7946 30 130 230 330 130 30 230 30 330 30 7947 60 160 260 360 160 60 260 60 360 60 7948 90 190 290 390 190 90 290 90 390 90 7949} 7950do_execsql_test joinD-294 { 7951 SELECT t1.*, t2.*, t3.*, t4.* 7952 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7953 FULL JOIN t3 ON t1.c=t3.c 7954 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 7955 WHERE t2.x>0 AND t3.y>0 7956 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7957} { 7958 6 106 206 306 106 6 206 6 - - 7959 12 112 212 312 112 12 212 12 - - 7960 18 118 218 318 118 18 218 18 - - 7961 24 124 224 324 124 24 224 24 - - 7962 30 130 230 330 130 30 230 30 330 30 7963 36 136 236 336 136 36 236 36 - - 7964 42 142 242 342 142 42 242 42 - - 7965 48 148 248 348 148 48 248 48 - - 7966 54 154 254 354 154 54 254 54 - - 7967 60 160 260 360 160 60 260 60 360 60 7968 66 166 266 366 166 66 266 66 - - 7969 72 172 272 372 172 72 272 72 - - 7970 78 178 278 378 178 78 278 78 - - 7971 84 184 284 384 184 84 284 84 - - 7972 90 190 290 390 190 90 290 90 390 90 7973} 7974do_execsql_test joinD-295 { 7975 SELECT t1.*, t2.*, t3.*, t4.* 7976 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7977 FULL JOIN t3 ON t1.c=t3.c 7978 FULL JOIN t4 ON t1.d=t4.d 7979 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 7980 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7981} { 7982 30 130 230 330 130 30 230 30 330 30 7983 60 160 260 360 160 60 260 60 360 60 7984 90 190 290 390 190 90 290 90 390 90 7985} 7986do_execsql_test joinD-296 { 7987 SELECT t1.*, t2.*, t3.*, t4.* 7988 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 7989 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 7990 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 7991 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7992} { 7993 2 102 202 302 102 2 - - - - 7994 4 104 204 304 104 4 - - - - 7995 6 106 206 306 106 6 206 6 - - 7996 8 108 208 308 108 8 - - - - 7997 10 110 210 310 110 10 - - 310 10 7998 12 112 212 312 112 12 212 12 - - 7999 14 114 214 314 114 14 - - - - 8000 16 116 216 316 116 16 - - - - 8001 18 118 218 318 118 18 218 18 - - 8002 20 120 220 320 120 20 - - 320 20 8003 22 122 222 322 122 22 - - - - 8004 24 124 224 324 124 24 224 24 - - 8005 26 126 226 326 126 26 - - - - 8006 28 128 228 328 128 28 - - - - 8007 30 130 230 330 130 30 230 30 330 30 8008 32 132 232 332 132 32 - - - - 8009 34 134 234 334 134 34 - - - - 8010 36 136 236 336 136 36 236 36 - - 8011 38 138 238 338 138 38 - - - - 8012 40 140 240 340 140 40 - - 340 40 8013 42 142 242 342 142 42 242 42 - - 8014 44 144 244 344 144 44 - - - - 8015 46 146 246 346 146 46 - - - - 8016 48 148 248 348 148 48 248 48 - - 8017 50 150 250 350 150 50 - - 350 50 8018 52 152 252 352 152 52 - - - - 8019 54 154 254 354 154 54 254 54 - - 8020 56 156 256 356 156 56 - - - - 8021 58 158 258 358 158 58 - - - - 8022 60 160 260 360 160 60 260 60 360 60 8023 62 162 262 362 162 62 - - - - 8024 64 164 264 364 164 64 - - - - 8025 66 166 266 366 166 66 266 66 - - 8026 68 168 268 368 168 68 - - - - 8027 70 170 270 370 170 70 - - 370 70 8028 72 172 272 372 172 72 272 72 - - 8029 74 174 274 374 174 74 - - - - 8030 76 176 276 376 176 76 - - - - 8031 78 178 278 378 178 78 278 78 - - 8032 80 180 280 380 180 80 - - 380 80 8033 82 182 282 382 182 82 - - - - 8034 84 184 284 384 184 84 284 84 - - 8035 86 186 286 386 186 86 - - - - 8036 88 188 288 388 188 88 - - - - 8037 90 190 290 390 190 90 290 90 390 90 8038 92 192 292 392 192 92 - - - - 8039 94 194 294 394 194 94 - - - - 8040 - - - - - - 200 0 - - 8041 - - - - - - 203 3 - - 8042 - - - - - - 209 9 - - 8043 - - - - - - 215 15 - - 8044 - - - - - - 221 21 - - 8045 - - - - - - 227 27 - - 8046 - - - - - - 233 33 - - 8047 - - - - - - 239 39 - - 8048 - - - - - - 245 45 - - 8049 - - - - - - 251 51 - - 8050 - - - - - - 257 57 - - 8051 - - - - - - 263 63 - - 8052 - - - - - - 269 69 - - 8053 - - - - - - 275 75 - - 8054 - - - - - - 281 81 - - 8055 - - - - - - 287 87 - - 8056 - - - - - - 293 93 - - 8057 - - - - - - - - 300 0 8058 - - - - - - - - 305 5 8059 - - - - - - - - 315 15 8060 - - - - - - - - 325 25 8061 - - - - - - - - 335 35 8062 - - - - - - - - 345 45 8063 - - - - - - - - 355 55 8064 - - - - - - - - 365 65 8065 - - - - - - - - 375 75 8066 - - - - - - - - 385 85 8067 - - - - - - - - 395 95 8068} 8069do_execsql_test joinD-297 { 8070 SELECT t1.*, t2.*, t3.*, t4.* 8071 FROM t1 INNER JOIN t2 ON t2.x>0 8072 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 8073 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 8074 WHERE t1.b IS NOT DISTINCT FROM t2.b 8075 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8076} { 8077 2 102 202 302 102 2 - - - - 8078 4 104 204 304 104 4 - - - - 8079 6 106 206 306 106 6 206 6 - - 8080 8 108 208 308 108 8 - - - - 8081 10 110 210 310 110 10 - - 310 10 8082 12 112 212 312 112 12 212 12 - - 8083 14 114 214 314 114 14 - - - - 8084 16 116 216 316 116 16 - - - - 8085 18 118 218 318 118 18 218 18 - - 8086 20 120 220 320 120 20 - - 320 20 8087 22 122 222 322 122 22 - - - - 8088 24 124 224 324 124 24 224 24 - - 8089 26 126 226 326 126 26 - - - - 8090 28 128 228 328 128 28 - - - - 8091 30 130 230 330 130 30 230 30 330 30 8092 32 132 232 332 132 32 - - - - 8093 34 134 234 334 134 34 - - - - 8094 36 136 236 336 136 36 236 36 - - 8095 38 138 238 338 138 38 - - - - 8096 40 140 240 340 140 40 - - 340 40 8097 42 142 242 342 142 42 242 42 - - 8098 44 144 244 344 144 44 - - - - 8099 46 146 246 346 146 46 - - - - 8100 48 148 248 348 148 48 248 48 - - 8101 50 150 250 350 150 50 - - 350 50 8102 52 152 252 352 152 52 - - - - 8103 54 154 254 354 154 54 254 54 - - 8104 56 156 256 356 156 56 - - - - 8105 58 158 258 358 158 58 - - - - 8106 60 160 260 360 160 60 260 60 360 60 8107 62 162 262 362 162 62 - - - - 8108 64 164 264 364 164 64 - - - - 8109 66 166 266 366 166 66 266 66 - - 8110 68 168 268 368 168 68 - - - - 8111 70 170 270 370 170 70 - - 370 70 8112 72 172 272 372 172 72 272 72 - - 8113 74 174 274 374 174 74 - - - - 8114 76 176 276 376 176 76 - - - - 8115 78 178 278 378 178 78 278 78 - - 8116 80 180 280 380 180 80 - - 380 80 8117 82 182 282 382 182 82 - - - - 8118 84 184 284 384 184 84 284 84 - - 8119 86 186 286 386 186 86 - - - - 8120 88 188 288 388 188 88 - - - - 8121 90 190 290 390 190 90 290 90 390 90 8122 92 192 292 392 192 92 - - - - 8123 94 194 294 394 194 94 - - - - 8124 - - - - - - 200 0 - - 8125 - - - - - - - - 300 0 8126} 8127do_execsql_test joinD-298 { 8128 SELECT t1.*, t2.*, t3.*, t4.* 8129 FROM t1 INNER JOIN t2 ON t2.x>0 8130 FULL JOIN t3 ON t3.y>0 8131 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 8132 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 8133 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8134} { 8135 6 106 206 306 106 6 206 6 - - 8136 12 112 212 312 112 12 212 12 - - 8137 18 118 218 318 118 18 218 18 - - 8138 24 124 224 324 124 24 224 24 - - 8139 30 130 230 330 130 30 230 30 330 30 8140 36 136 236 336 136 36 236 36 - - 8141 42 142 242 342 142 42 242 42 - - 8142 48 148 248 348 148 48 248 48 - - 8143 54 154 254 354 154 54 254 54 - - 8144 60 160 260 360 160 60 260 60 360 60 8145 66 166 266 366 166 66 266 66 - - 8146 72 172 272 372 172 72 272 72 - - 8147 78 178 278 378 178 78 278 78 - - 8148 84 184 284 384 184 84 284 84 - - 8149 90 190 290 390 190 90 290 90 390 90 8150} 8151do_execsql_test joinD-299 { 8152 SELECT t1.*, t2.*, t3.*, t4.* 8153 FROM t1 INNER JOIN t2 ON t2.x>0 8154 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 8155 FULL JOIN t4 ON t4.z>0 8156 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 8157 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8158} { 8159 10 110 210 310 110 10 - - 310 10 8160 20 120 220 320 120 20 - - 320 20 8161 30 130 230 330 130 30 230 30 330 30 8162 40 140 240 340 140 40 - - 340 40 8163 50 150 250 350 150 50 - - 350 50 8164 60 160 260 360 160 60 260 60 360 60 8165 70 170 270 370 170 70 - - 370 70 8166 80 180 280 380 180 80 - - 380 80 8167 90 190 290 390 190 90 290 90 390 90 8168} 8169do_execsql_test joinD-300 { 8170 SELECT t1.*, t2.*, t3.*, t4.* 8171 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 8172 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 8173 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 8174 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8175} { 8176 2 102 202 302 102 2 - - - - 8177 4 104 204 304 104 4 - - - - 8178 6 106 206 306 106 6 206 6 - - 8179 8 108 208 308 108 8 - - - - 8180 10 110 210 310 110 10 - - 310 10 8181 12 112 212 312 112 12 212 12 - - 8182 14 114 214 314 114 14 - - - - 8183 16 116 216 316 116 16 - - - - 8184 18 118 218 318 118 18 218 18 - - 8185 20 120 220 320 120 20 - - 320 20 8186 22 122 222 322 122 22 - - - - 8187 24 124 224 324 124 24 224 24 - - 8188 26 126 226 326 126 26 - - - - 8189 28 128 228 328 128 28 - - - - 8190 30 130 230 330 130 30 230 30 330 30 8191 32 132 232 332 132 32 - - - - 8192 34 134 234 334 134 34 - - - - 8193 36 136 236 336 136 36 236 36 - - 8194 38 138 238 338 138 38 - - - - 8195 40 140 240 340 140 40 - - 340 40 8196 42 142 242 342 142 42 242 42 - - 8197 44 144 244 344 144 44 - - - - 8198 46 146 246 346 146 46 - - - - 8199 48 148 248 348 148 48 248 48 - - 8200 50 150 250 350 150 50 - - 350 50 8201 52 152 252 352 152 52 - - - - 8202 54 154 254 354 154 54 254 54 - - 8203 56 156 256 356 156 56 - - - - 8204 58 158 258 358 158 58 - - - - 8205 60 160 260 360 160 60 260 60 360 60 8206 62 162 262 362 162 62 - - - - 8207 64 164 264 364 164 64 - - - - 8208 66 166 266 366 166 66 266 66 - - 8209 68 168 268 368 168 68 - - - - 8210 70 170 270 370 170 70 - - 370 70 8211 72 172 272 372 172 72 272 72 - - 8212 74 174 274 374 174 74 - - - - 8213 76 176 276 376 176 76 - - - - 8214 78 178 278 378 178 78 278 78 - - 8215 80 180 280 380 180 80 - - 380 80 8216 82 182 282 382 182 82 - - - - 8217 84 184 284 384 184 84 284 84 - - 8218 86 186 286 386 186 86 - - - - 8219 88 188 288 388 188 88 - - - - 8220 90 190 290 390 190 90 290 90 390 90 8221 92 192 292 392 192 92 - - - - 8222 94 194 294 394 194 94 - - - - 8223 - - - - - - 200 0 - - 8224 - - - - - - 203 3 - - 8225 - - - - - - 209 9 - - 8226 - - - - - - 215 15 - - 8227 - - - - - - 221 21 - - 8228 - - - - - - 227 27 - - 8229 - - - - - - 233 33 - - 8230 - - - - - - 239 39 - - 8231 - - - - - - 245 45 - - 8232 - - - - - - 251 51 - - 8233 - - - - - - 257 57 - - 8234 - - - - - - 263 63 - - 8235 - - - - - - 269 69 - - 8236 - - - - - - 275 75 - - 8237 - - - - - - 281 81 - - 8238 - - - - - - 287 87 - - 8239 - - - - - - 293 93 - - 8240 - - - - - - - - 300 0 8241 - - - - - - - - 305 5 8242 - - - - - - - - 315 15 8243 - - - - - - - - 325 25 8244 - - - - - - - - 335 35 8245 - - - - - - - - 345 45 8246 - - - - - - - - 355 55 8247 - - - - - - - - 365 65 8248 - - - - - - - - 375 75 8249 - - - - - - - - 385 85 8250 - - - - - - - - 395 95 8251} 8252do_execsql_test joinD-301 { 8253 SELECT t1.*, t2.*, t3.*, t4.* 8254 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8255 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8256 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8257 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8258} { 8259 15 115 215 315 - - 215 15 315 15 8260 30 130 230 330 130 30 230 30 330 30 8261 45 145 245 345 - - 245 45 345 45 8262 60 160 260 360 160 60 260 60 360 60 8263 75 175 275 375 - - 275 75 375 75 8264 90 190 290 390 190 90 290 90 390 90 8265} 8266do_execsql_test joinD-302 { 8267 SELECT t1.*, t2.*, t3.*, t4.* 8268 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 8269 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8270 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8271 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8272} { 8273 15 115 215 315 - - 215 15 315 15 8274 30 130 230 330 130 30 230 30 330 30 8275 45 145 245 345 - - 245 45 345 45 8276 60 160 260 360 160 60 260 60 360 60 8277 75 175 275 375 - - 275 75 375 75 8278 90 190 290 390 190 90 290 90 390 90 8279} 8280do_execsql_test joinD-303 { 8281 SELECT t1.*, t2.*, t3.*, t4.* 8282 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8283 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8284 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8285 WHERE t2.x>0 8286 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8287} { 8288 30 130 230 330 130 30 230 30 330 30 8289 60 160 260 360 160 60 260 60 360 60 8290 90 190 290 390 190 90 290 90 390 90 8291} 8292do_execsql_test joinD-304 { 8293 SELECT t1.*, t2.*, t3.*, t4.* 8294 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8295 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8296 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8297 WHERE (t2.x>0 OR t2.x IS NULL) 8298 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8299} { 8300 15 115 215 315 - - 215 15 315 15 8301 30 130 230 330 130 30 230 30 330 30 8302 45 145 245 345 - - 245 45 345 45 8303 60 160 260 360 160 60 260 60 360 60 8304 75 175 275 375 - - 275 75 375 75 8305 90 190 290 390 190 90 290 90 390 90 8306} 8307do_execsql_test joinD-305 { 8308 SELECT t1.*, t2.*, t3.*, t4.* 8309 FROM t1 LEFT JOIN t2 ON true 8310 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8311 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8312 WHERE t1.b=t2.b AND t2.x>0 8313 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8314} { 8315 30 130 230 330 130 30 230 30 330 30 8316 60 160 260 360 160 60 260 60 360 60 8317 90 190 290 390 190 90 290 90 390 90 8318} 8319do_execsql_test joinD-306 { 8320 SELECT t1.*, t2.*, t3.*, t4.* 8321 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8322 INNER JOIN t3 ON t1.c=t3.c 8323 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8324 WHERE t3.y>0 8325 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8326} { 8327 15 115 215 315 - - 215 15 315 15 8328 30 130 230 330 130 30 230 30 330 30 8329 45 145 245 345 - - 245 45 345 45 8330 60 160 260 360 160 60 260 60 360 60 8331 75 175 275 375 - - 275 75 375 75 8332 90 190 290 390 190 90 290 90 390 90 8333} 8334do_execsql_test joinD-307 { 8335 SELECT t1.*, t2.*, t3.*, t4.* 8336 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8337 INNER JOIN t3 ON t1.c=t3.c 8338 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8339 WHERE t3.y>0 OR t3.y IS NULL 8340 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8341} { 8342 15 115 215 315 - - 215 15 315 15 8343 30 130 230 330 130 30 230 30 330 30 8344 45 145 245 345 - - 245 45 345 45 8345 60 160 260 360 160 60 260 60 360 60 8346 75 175 275 375 - - 275 75 375 75 8347 90 190 290 390 190 90 290 90 390 90 8348} 8349do_execsql_test joinD-308 { 8350 SELECT t1.*, t2.*, t3.*, t4.* 8351 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8352 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8353 INNER JOIN t4 ON t1.d=t4.d 8354 WHERE t4.z>0 8355 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8356} { 8357 15 115 215 315 - - 215 15 315 15 8358 30 130 230 330 130 30 230 30 330 30 8359 45 145 245 345 - - 245 45 345 45 8360 60 160 260 360 160 60 260 60 360 60 8361 75 175 275 375 - - 275 75 375 75 8362 90 190 290 390 190 90 290 90 390 90 8363} 8364do_execsql_test joinD-309 { 8365 SELECT t1.*, t2.*, t3.*, t4.* 8366 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8367 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8368 INNER JOIN t4 ON t1.d=t4.d 8369 WHERE t4.z IS NULL OR t4.z>0 8370 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8371} { 8372 15 115 215 315 - - 215 15 315 15 8373 30 130 230 330 130 30 230 30 330 30 8374 45 145 245 345 - - 245 45 345 45 8375 60 160 260 360 160 60 260 60 360 60 8376 75 175 275 375 - - 275 75 375 75 8377 90 190 290 390 190 90 290 90 390 90 8378} 8379do_execsql_test joinD-310 { 8380 SELECT t1.*, t2.*, t3.*, t4.* 8381 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8382 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8383 INNER JOIN t4 ON t1.d=t4.d 8384 WHERE t2.x>0 AND t4.z>0 8385 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8386} { 8387 30 130 230 330 130 30 230 30 330 30 8388 60 160 260 360 160 60 260 60 360 60 8389 90 190 290 390 190 90 290 90 390 90 8390} 8391do_execsql_test joinD-311 { 8392 SELECT t1.*, t2.*, t3.*, t4.* 8393 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8394 INNER JOIN t3 ON t1.c=t3.c 8395 INNER JOIN t4 ON t1.d=t4.d 8396 WHERE t4.z>0 AND t3.y>0 8397 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8398} { 8399 15 115 215 315 - - 215 15 315 15 8400 30 130 230 330 130 30 230 30 330 30 8401 45 145 245 345 - - 245 45 345 45 8402 60 160 260 360 160 60 260 60 360 60 8403 75 175 275 375 - - 275 75 375 75 8404 90 190 290 390 190 90 290 90 390 90 8405} 8406do_execsql_test joinD-312 { 8407 SELECT t1.*, t2.*, t3.*, t4.* 8408 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8409 INNER JOIN t3 ON t1.c=t3.c 8410 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8411 WHERE t2.x>0 AND t3.y>0 8412 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8413} { 8414 30 130 230 330 130 30 230 30 330 30 8415 60 160 260 360 160 60 260 60 360 60 8416 90 190 290 390 190 90 290 90 390 90 8417} 8418do_execsql_test joinD-313 { 8419 SELECT t1.*, t2.*, t3.*, t4.* 8420 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8421 INNER JOIN t3 ON t1.c=t3.c 8422 INNER JOIN t4 ON t1.d=t4.d 8423 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 8424 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8425} { 8426 30 130 230 330 130 30 230 30 330 30 8427 60 160 260 360 160 60 260 60 360 60 8428 90 190 290 390 190 90 290 90 390 90 8429} 8430do_execsql_test joinD-314 { 8431 SELECT t1.*, t2.*, t3.*, t4.* 8432 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 8433 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 8434 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 8435 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8436} { 8437 15 115 215 315 - - 215 15 315 15 8438 30 130 230 330 130 30 230 30 330 30 8439 45 145 245 345 - - 245 45 345 45 8440 60 160 260 360 160 60 260 60 360 60 8441 75 175 275 375 - - 275 75 375 75 8442 90 190 290 390 190 90 290 90 390 90 8443} 8444do_execsql_test joinD-315 { 8445 SELECT t1.*, t2.*, t3.*, t4.* 8446 FROM t1 LEFT JOIN t2 ON t2.x>0 8447 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 8448 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 8449 WHERE t1.b IS NOT DISTINCT FROM t2.b 8450 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8451} { 8452 30 130 230 330 130 30 230 30 330 30 8453 60 160 260 360 160 60 260 60 360 60 8454 90 190 290 390 190 90 290 90 390 90 8455} 8456do_execsql_test joinD-316 { 8457 SELECT t1.*, t2.*, t3.*, t4.* 8458 FROM t1 LEFT JOIN t2 ON t2.x>0 8459 INNER JOIN t3 ON t3.y>0 8460 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 8461 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 8462 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8463} { 8464 30 130 230 330 130 30 230 30 330 30 8465 60 160 260 360 160 60 260 60 360 60 8466 90 190 290 390 190 90 290 90 390 90 8467} 8468do_execsql_test joinD-317 { 8469 SELECT t1.*, t2.*, t3.*, t4.* 8470 FROM t1 LEFT JOIN t2 ON t2.x>0 8471 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 8472 INNER JOIN t4 ON t4.z>0 8473 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 8474 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8475} { 8476 30 130 230 330 130 30 230 30 330 30 8477 60 160 260 360 160 60 260 60 360 60 8478 90 190 290 390 190 90 290 90 390 90 8479} 8480do_execsql_test joinD-318 { 8481 SELECT t1.*, t2.*, t3.*, t4.* 8482 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 8483 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8484 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8485 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8486} { 8487 15 115 215 315 - - 215 15 315 15 8488 30 130 230 330 130 30 230 30 330 30 8489 45 145 245 345 - - 245 45 345 45 8490 60 160 260 360 160 60 260 60 360 60 8491 75 175 275 375 - - 275 75 375 75 8492 90 190 290 390 190 90 290 90 390 90 8493} 8494do_execsql_test joinD-319 { 8495 SELECT t1.*, t2.*, t3.*, t4.* 8496 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8497 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 8498 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8499 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8500} { 8501 15 115 215 315 - - 215 15 315 15 8502 30 130 230 330 130 30 230 30 330 30 8503 45 145 245 345 - - 245 45 345 45 8504 60 160 260 360 160 60 260 60 360 60 8505 75 175 275 375 - - 275 75 375 75 8506 90 190 290 390 190 90 290 90 390 90 8507} 8508do_execsql_test joinD-320 { 8509 SELECT t1.*, t2.*, t3.*, t4.* 8510 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8511 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8512 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 8513 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8514} { 8515 3 103 203 303 - - 203 3 - - 8516 6 106 206 306 106 6 206 6 - - 8517 9 109 209 309 - - 209 9 - - 8518 12 112 212 312 112 12 212 12 - - 8519 15 115 215 315 - - 215 15 315 15 8520 18 118 218 318 118 18 218 18 - - 8521 21 121 221 321 - - 221 21 - - 8522 24 124 224 324 124 24 224 24 - - 8523 27 127 227 327 - - 227 27 - - 8524 30 130 230 330 130 30 230 30 330 30 8525 33 133 233 333 - - 233 33 - - 8526 36 136 236 336 136 36 236 36 - - 8527 39 139 239 339 - - 239 39 - - 8528 42 142 242 342 142 42 242 42 - - 8529 45 145 245 345 - - 245 45 345 45 8530 48 148 248 348 148 48 248 48 - - 8531 51 151 251 351 - - 251 51 - - 8532 54 154 254 354 154 54 254 54 - - 8533 57 157 257 357 - - 257 57 - - 8534 60 160 260 360 160 60 260 60 360 60 8535 63 163 263 363 - - 263 63 - - 8536 66 166 266 366 166 66 266 66 - - 8537 69 169 269 369 - - 269 69 - - 8538 72 172 272 372 172 72 272 72 - - 8539 75 175 275 375 - - 275 75 375 75 8540 78 178 278 378 178 78 278 78 - - 8541 81 181 281 381 - - 281 81 - - 8542 84 184 284 384 184 84 284 84 - - 8543 87 187 287 387 - - 287 87 - - 8544 90 190 290 390 190 90 290 90 390 90 8545 93 193 293 393 - - 293 93 - - 8546} 8547do_execsql_test joinD-321 { 8548 SELECT t1.*, t2.*, t3.*, t4.* 8549 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 8550 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8551 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 8552 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8553} { 8554 3 103 203 303 - - 203 3 - - 8555 6 106 206 306 106 6 206 6 - - 8556 9 109 209 309 - - 209 9 - - 8557 12 112 212 312 112 12 212 12 - - 8558 15 115 215 315 - - 215 15 315 15 8559 18 118 218 318 118 18 218 18 - - 8560 21 121 221 321 - - 221 21 - - 8561 24 124 224 324 124 24 224 24 - - 8562 27 127 227 327 - - 227 27 - - 8563 30 130 230 330 130 30 230 30 330 30 8564 33 133 233 333 - - 233 33 - - 8565 36 136 236 336 136 36 236 36 - - 8566 39 139 239 339 - - 239 39 - - 8567 42 142 242 342 142 42 242 42 - - 8568 45 145 245 345 - - 245 45 345 45 8569 48 148 248 348 148 48 248 48 - - 8570 51 151 251 351 - - 251 51 - - 8571 54 154 254 354 154 54 254 54 - - 8572 57 157 257 357 - - 257 57 - - 8573 60 160 260 360 160 60 260 60 360 60 8574 63 163 263 363 - - 263 63 - - 8575 66 166 266 366 166 66 266 66 - - 8576 69 169 269 369 - - 269 69 - - 8577 72 172 272 372 172 72 272 72 - - 8578 75 175 275 375 - - 275 75 375 75 8579 78 178 278 378 178 78 278 78 - - 8580 81 181 281 381 - - 281 81 - - 8581 84 184 284 384 184 84 284 84 - - 8582 87 187 287 387 - - 287 87 - - 8583 90 190 290 390 190 90 290 90 390 90 8584 93 193 293 393 - - 293 93 - - 8585} 8586do_execsql_test joinD-322 { 8587 SELECT t1.*, t2.*, t3.*, t4.* 8588 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8589 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8590 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 8591 WHERE t2.x>0 8592 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8593} { 8594 6 106 206 306 106 6 206 6 - - 8595 12 112 212 312 112 12 212 12 - - 8596 18 118 218 318 118 18 218 18 - - 8597 24 124 224 324 124 24 224 24 - - 8598 30 130 230 330 130 30 230 30 330 30 8599 36 136 236 336 136 36 236 36 - - 8600 42 142 242 342 142 42 242 42 - - 8601 48 148 248 348 148 48 248 48 - - 8602 54 154 254 354 154 54 254 54 - - 8603 60 160 260 360 160 60 260 60 360 60 8604 66 166 266 366 166 66 266 66 - - 8605 72 172 272 372 172 72 272 72 - - 8606 78 178 278 378 178 78 278 78 - - 8607 84 184 284 384 184 84 284 84 - - 8608 90 190 290 390 190 90 290 90 390 90 8609} 8610do_execsql_test joinD-323 { 8611 SELECT t1.*, t2.*, t3.*, t4.* 8612 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8613 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8614 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 8615 WHERE (t2.x>0 OR t2.x IS NULL) 8616 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8617} { 8618 3 103 203 303 - - 203 3 - - 8619 6 106 206 306 106 6 206 6 - - 8620 9 109 209 309 - - 209 9 - - 8621 12 112 212 312 112 12 212 12 - - 8622 15 115 215 315 - - 215 15 315 15 8623 18 118 218 318 118 18 218 18 - - 8624 21 121 221 321 - - 221 21 - - 8625 24 124 224 324 124 24 224 24 - - 8626 27 127 227 327 - - 227 27 - - 8627 30 130 230 330 130 30 230 30 330 30 8628 33 133 233 333 - - 233 33 - - 8629 36 136 236 336 136 36 236 36 - - 8630 39 139 239 339 - - 239 39 - - 8631 42 142 242 342 142 42 242 42 - - 8632 45 145 245 345 - - 245 45 345 45 8633 48 148 248 348 148 48 248 48 - - 8634 51 151 251 351 - - 251 51 - - 8635 54 154 254 354 154 54 254 54 - - 8636 57 157 257 357 - - 257 57 - - 8637 60 160 260 360 160 60 260 60 360 60 8638 63 163 263 363 - - 263 63 - - 8639 66 166 266 366 166 66 266 66 - - 8640 69 169 269 369 - - 269 69 - - 8641 72 172 272 372 172 72 272 72 - - 8642 75 175 275 375 - - 275 75 375 75 8643 78 178 278 378 178 78 278 78 - - 8644 81 181 281 381 - - 281 81 - - 8645 84 184 284 384 184 84 284 84 - - 8646 87 187 287 387 - - 287 87 - - 8647 90 190 290 390 190 90 290 90 390 90 8648 93 193 293 393 - - 293 93 - - 8649} 8650do_execsql_test joinD-324 { 8651 SELECT t1.*, t2.*, t3.*, t4.* 8652 FROM t1 LEFT JOIN t2 ON true 8653 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8654 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 8655 WHERE t1.b=t2.b AND t2.x>0 8656 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8657} { 8658 6 106 206 306 106 6 206 6 - - 8659 12 112 212 312 112 12 212 12 - - 8660 18 118 218 318 118 18 218 18 - - 8661 24 124 224 324 124 24 224 24 - - 8662 30 130 230 330 130 30 230 30 330 30 8663 36 136 236 336 136 36 236 36 - - 8664 42 142 242 342 142 42 242 42 - - 8665 48 148 248 348 148 48 248 48 - - 8666 54 154 254 354 154 54 254 54 - - 8667 60 160 260 360 160 60 260 60 360 60 8668 66 166 266 366 166 66 266 66 - - 8669 72 172 272 372 172 72 272 72 - - 8670 78 178 278 378 178 78 278 78 - - 8671 84 184 284 384 184 84 284 84 - - 8672 90 190 290 390 190 90 290 90 390 90 8673} 8674do_execsql_test joinD-325 { 8675 SELECT t1.*, t2.*, t3.*, t4.* 8676 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8677 INNER JOIN t3 ON t1.c=t3.c 8678 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 8679 WHERE t3.y>0 8680 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8681} { 8682 3 103 203 303 - - 203 3 - - 8683 6 106 206 306 106 6 206 6 - - 8684 9 109 209 309 - - 209 9 - - 8685 12 112 212 312 112 12 212 12 - - 8686 15 115 215 315 - - 215 15 315 15 8687 18 118 218 318 118 18 218 18 - - 8688 21 121 221 321 - - 221 21 - - 8689 24 124 224 324 124 24 224 24 - - 8690 27 127 227 327 - - 227 27 - - 8691 30 130 230 330 130 30 230 30 330 30 8692 33 133 233 333 - - 233 33 - - 8693 36 136 236 336 136 36 236 36 - - 8694 39 139 239 339 - - 239 39 - - 8695 42 142 242 342 142 42 242 42 - - 8696 45 145 245 345 - - 245 45 345 45 8697 48 148 248 348 148 48 248 48 - - 8698 51 151 251 351 - - 251 51 - - 8699 54 154 254 354 154 54 254 54 - - 8700 57 157 257 357 - - 257 57 - - 8701 60 160 260 360 160 60 260 60 360 60 8702 63 163 263 363 - - 263 63 - - 8703 66 166 266 366 166 66 266 66 - - 8704 69 169 269 369 - - 269 69 - - 8705 72 172 272 372 172 72 272 72 - - 8706 75 175 275 375 - - 275 75 375 75 8707 78 178 278 378 178 78 278 78 - - 8708 81 181 281 381 - - 281 81 - - 8709 84 184 284 384 184 84 284 84 - - 8710 87 187 287 387 - - 287 87 - - 8711 90 190 290 390 190 90 290 90 390 90 8712 93 193 293 393 - - 293 93 - - 8713} 8714do_execsql_test joinD-326 { 8715 SELECT t1.*, t2.*, t3.*, t4.* 8716 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8717 INNER JOIN t3 ON t1.c=t3.c 8718 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 8719 WHERE t3.y>0 OR t3.y IS NULL 8720 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8721} { 8722 3 103 203 303 - - 203 3 - - 8723 6 106 206 306 106 6 206 6 - - 8724 9 109 209 309 - - 209 9 - - 8725 12 112 212 312 112 12 212 12 - - 8726 15 115 215 315 - - 215 15 315 15 8727 18 118 218 318 118 18 218 18 - - 8728 21 121 221 321 - - 221 21 - - 8729 24 124 224 324 124 24 224 24 - - 8730 27 127 227 327 - - 227 27 - - 8731 30 130 230 330 130 30 230 30 330 30 8732 33 133 233 333 - - 233 33 - - 8733 36 136 236 336 136 36 236 36 - - 8734 39 139 239 339 - - 239 39 - - 8735 42 142 242 342 142 42 242 42 - - 8736 45 145 245 345 - - 245 45 345 45 8737 48 148 248 348 148 48 248 48 - - 8738 51 151 251 351 - - 251 51 - - 8739 54 154 254 354 154 54 254 54 - - 8740 57 157 257 357 - - 257 57 - - 8741 60 160 260 360 160 60 260 60 360 60 8742 63 163 263 363 - - 263 63 - - 8743 66 166 266 366 166 66 266 66 - - 8744 69 169 269 369 - - 269 69 - - 8745 72 172 272 372 172 72 272 72 - - 8746 75 175 275 375 - - 275 75 375 75 8747 78 178 278 378 178 78 278 78 - - 8748 81 181 281 381 - - 281 81 - - 8749 84 184 284 384 184 84 284 84 - - 8750 87 187 287 387 - - 287 87 - - 8751 90 190 290 390 190 90 290 90 390 90 8752 93 193 293 393 - - 293 93 - - 8753} 8754do_execsql_test joinD-327 { 8755 SELECT t1.*, t2.*, t3.*, t4.* 8756 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8757 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8758 LEFT JOIN t4 ON t1.d=t4.d 8759 WHERE t4.z>0 8760 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8761} { 8762 15 115 215 315 - - 215 15 315 15 8763 30 130 230 330 130 30 230 30 330 30 8764 45 145 245 345 - - 245 45 345 45 8765 60 160 260 360 160 60 260 60 360 60 8766 75 175 275 375 - - 275 75 375 75 8767 90 190 290 390 190 90 290 90 390 90 8768} 8769do_execsql_test joinD-328 { 8770 SELECT t1.*, t2.*, t3.*, t4.* 8771 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8772 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8773 LEFT JOIN t4 ON t1.d=t4.d 8774 WHERE t4.z IS NULL OR t4.z>0 8775 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8776} { 8777 3 103 203 303 - - 203 3 - - 8778 6 106 206 306 106 6 206 6 - - 8779 9 109 209 309 - - 209 9 - - 8780 12 112 212 312 112 12 212 12 - - 8781 15 115 215 315 - - 215 15 315 15 8782 18 118 218 318 118 18 218 18 - - 8783 21 121 221 321 - - 221 21 - - 8784 24 124 224 324 124 24 224 24 - - 8785 27 127 227 327 - - 227 27 - - 8786 30 130 230 330 130 30 230 30 330 30 8787 33 133 233 333 - - 233 33 - - 8788 36 136 236 336 136 36 236 36 - - 8789 39 139 239 339 - - 239 39 - - 8790 42 142 242 342 142 42 242 42 - - 8791 45 145 245 345 - - 245 45 345 45 8792 48 148 248 348 148 48 248 48 - - 8793 51 151 251 351 - - 251 51 - - 8794 54 154 254 354 154 54 254 54 - - 8795 57 157 257 357 - - 257 57 - - 8796 60 160 260 360 160 60 260 60 360 60 8797 63 163 263 363 - - 263 63 - - 8798 66 166 266 366 166 66 266 66 - - 8799 69 169 269 369 - - 269 69 - - 8800 72 172 272 372 172 72 272 72 - - 8801 75 175 275 375 - - 275 75 375 75 8802 78 178 278 378 178 78 278 78 - - 8803 81 181 281 381 - - 281 81 - - 8804 84 184 284 384 184 84 284 84 - - 8805 87 187 287 387 - - 287 87 - - 8806 90 190 290 390 190 90 290 90 390 90 8807 93 193 293 393 - - 293 93 - - 8808} 8809do_execsql_test joinD-329 { 8810 SELECT t1.*, t2.*, t3.*, t4.* 8811 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8812 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8813 LEFT JOIN t4 ON t1.d=t4.d 8814 WHERE t2.x>0 AND t4.z>0 8815 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8816} { 8817 30 130 230 330 130 30 230 30 330 30 8818 60 160 260 360 160 60 260 60 360 60 8819 90 190 290 390 190 90 290 90 390 90 8820} 8821do_execsql_test joinD-330 { 8822 SELECT t1.*, t2.*, t3.*, t4.* 8823 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8824 INNER JOIN t3 ON t1.c=t3.c 8825 LEFT JOIN t4 ON t1.d=t4.d 8826 WHERE t4.z>0 AND t3.y>0 8827 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8828} { 8829 15 115 215 315 - - 215 15 315 15 8830 30 130 230 330 130 30 230 30 330 30 8831 45 145 245 345 - - 245 45 345 45 8832 60 160 260 360 160 60 260 60 360 60 8833 75 175 275 375 - - 275 75 375 75 8834 90 190 290 390 190 90 290 90 390 90 8835} 8836do_execsql_test joinD-331 { 8837 SELECT t1.*, t2.*, t3.*, t4.* 8838 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8839 INNER JOIN t3 ON t1.c=t3.c 8840 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 8841 WHERE t2.x>0 AND t3.y>0 8842 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8843} { 8844 6 106 206 306 106 6 206 6 - - 8845 12 112 212 312 112 12 212 12 - - 8846 18 118 218 318 118 18 218 18 - - 8847 24 124 224 324 124 24 224 24 - - 8848 30 130 230 330 130 30 230 30 330 30 8849 36 136 236 336 136 36 236 36 - - 8850 42 142 242 342 142 42 242 42 - - 8851 48 148 248 348 148 48 248 48 - - 8852 54 154 254 354 154 54 254 54 - - 8853 60 160 260 360 160 60 260 60 360 60 8854 66 166 266 366 166 66 266 66 - - 8855 72 172 272 372 172 72 272 72 - - 8856 78 178 278 378 178 78 278 78 - - 8857 84 184 284 384 184 84 284 84 - - 8858 90 190 290 390 190 90 290 90 390 90 8859} 8860do_execsql_test joinD-332 { 8861 SELECT t1.*, t2.*, t3.*, t4.* 8862 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8863 INNER JOIN t3 ON t1.c=t3.c 8864 LEFT JOIN t4 ON t1.d=t4.d 8865 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 8866 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8867} { 8868 30 130 230 330 130 30 230 30 330 30 8869 60 160 260 360 160 60 260 60 360 60 8870 90 190 290 390 190 90 290 90 390 90 8871} 8872do_execsql_test joinD-333 { 8873 SELECT t1.*, t2.*, t3.*, t4.* 8874 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 8875 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 8876 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 8877 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8878} { 8879 3 103 203 303 - - 203 3 - - 8880 6 106 206 306 106 6 206 6 - - 8881 9 109 209 309 - - 209 9 - - 8882 12 112 212 312 112 12 212 12 - - 8883 15 115 215 315 - - 215 15 315 15 8884 18 118 218 318 118 18 218 18 - - 8885 21 121 221 321 - - 221 21 - - 8886 24 124 224 324 124 24 224 24 - - 8887 27 127 227 327 - - 227 27 - - 8888 30 130 230 330 130 30 230 30 330 30 8889 33 133 233 333 - - 233 33 - - 8890 36 136 236 336 136 36 236 36 - - 8891 39 139 239 339 - - 239 39 - - 8892 42 142 242 342 142 42 242 42 - - 8893 45 145 245 345 - - 245 45 345 45 8894 48 148 248 348 148 48 248 48 - - 8895 51 151 251 351 - - 251 51 - - 8896 54 154 254 354 154 54 254 54 - - 8897 57 157 257 357 - - 257 57 - - 8898 60 160 260 360 160 60 260 60 360 60 8899 63 163 263 363 - - 263 63 - - 8900 66 166 266 366 166 66 266 66 - - 8901 69 169 269 369 - - 269 69 - - 8902 72 172 272 372 172 72 272 72 - - 8903 75 175 275 375 - - 275 75 375 75 8904 78 178 278 378 178 78 278 78 - - 8905 81 181 281 381 - - 281 81 - - 8906 84 184 284 384 184 84 284 84 - - 8907 87 187 287 387 - - 287 87 - - 8908 90 190 290 390 190 90 290 90 390 90 8909 93 193 293 393 - - 293 93 - - 8910} 8911do_execsql_test joinD-334 { 8912 SELECT t1.*, t2.*, t3.*, t4.* 8913 FROM t1 LEFT JOIN t2 ON t2.x>0 8914 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 8915 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 8916 WHERE t1.b IS NOT DISTINCT FROM t2.b 8917 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8918} { 8919 6 106 206 306 106 6 206 6 - - 8920 12 112 212 312 112 12 212 12 - - 8921 18 118 218 318 118 18 218 18 - - 8922 24 124 224 324 124 24 224 24 - - 8923 30 130 230 330 130 30 230 30 330 30 8924 36 136 236 336 136 36 236 36 - - 8925 42 142 242 342 142 42 242 42 - - 8926 48 148 248 348 148 48 248 48 - - 8927 54 154 254 354 154 54 254 54 - - 8928 60 160 260 360 160 60 260 60 360 60 8929 66 166 266 366 166 66 266 66 - - 8930 72 172 272 372 172 72 272 72 - - 8931 78 178 278 378 178 78 278 78 - - 8932 84 184 284 384 184 84 284 84 - - 8933 90 190 290 390 190 90 290 90 390 90 8934} 8935do_execsql_test joinD-335 { 8936 SELECT t1.*, t2.*, t3.*, t4.* 8937 FROM t1 LEFT JOIN t2 ON t2.x>0 8938 INNER JOIN t3 ON t3.y>0 8939 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 8940 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 8941 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8942} { 8943 6 106 206 306 106 6 206 6 - - 8944 12 112 212 312 112 12 212 12 - - 8945 18 118 218 318 118 18 218 18 - - 8946 24 124 224 324 124 24 224 24 - - 8947 30 130 230 330 130 30 230 30 330 30 8948 36 136 236 336 136 36 236 36 - - 8949 42 142 242 342 142 42 242 42 - - 8950 48 148 248 348 148 48 248 48 - - 8951 54 154 254 354 154 54 254 54 - - 8952 60 160 260 360 160 60 260 60 360 60 8953 66 166 266 366 166 66 266 66 - - 8954 72 172 272 372 172 72 272 72 - - 8955 78 178 278 378 178 78 278 78 - - 8956 84 184 284 384 184 84 284 84 - - 8957 90 190 290 390 190 90 290 90 390 90 8958} 8959do_execsql_test joinD-336 { 8960 SELECT t1.*, t2.*, t3.*, t4.* 8961 FROM t1 LEFT JOIN t2 ON t2.x>0 8962 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 8963 LEFT JOIN t4 ON t4.z>0 8964 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 8965 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8966} { 8967 30 130 230 330 130 30 230 30 330 30 8968 60 160 260 360 160 60 260 60 360 60 8969 90 190 290 390 190 90 290 90 390 90 8970} 8971do_execsql_test joinD-337 { 8972 SELECT t1.*, t2.*, t3.*, t4.* 8973 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 8974 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8975 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 8976 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8977} { 8978 3 103 203 303 - - 203 3 - - 8979 6 106 206 306 106 6 206 6 - - 8980 9 109 209 309 - - 209 9 - - 8981 12 112 212 312 112 12 212 12 - - 8982 15 115 215 315 - - 215 15 315 15 8983 18 118 218 318 118 18 218 18 - - 8984 21 121 221 321 - - 221 21 - - 8985 24 124 224 324 124 24 224 24 - - 8986 27 127 227 327 - - 227 27 - - 8987 30 130 230 330 130 30 230 30 330 30 8988 33 133 233 333 - - 233 33 - - 8989 36 136 236 336 136 36 236 36 - - 8990 39 139 239 339 - - 239 39 - - 8991 42 142 242 342 142 42 242 42 - - 8992 45 145 245 345 - - 245 45 345 45 8993 48 148 248 348 148 48 248 48 - - 8994 51 151 251 351 - - 251 51 - - 8995 54 154 254 354 154 54 254 54 - - 8996 57 157 257 357 - - 257 57 - - 8997 60 160 260 360 160 60 260 60 360 60 8998 63 163 263 363 - - 263 63 - - 8999 66 166 266 366 166 66 266 66 - - 9000 69 169 269 369 - - 269 69 - - 9001 72 172 272 372 172 72 272 72 - - 9002 75 175 275 375 - - 275 75 375 75 9003 78 178 278 378 178 78 278 78 - - 9004 81 181 281 381 - - 281 81 - - 9005 84 184 284 384 184 84 284 84 - - 9006 87 187 287 387 - - 287 87 - - 9007 90 190 290 390 190 90 290 90 390 90 9008 93 193 293 393 - - 293 93 - - 9009} 9010do_execsql_test joinD-338 { 9011 SELECT t1.*, t2.*, t3.*, t4.* 9012 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9013 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 9014 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 9015 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9016} { 9017 3 103 203 303 - - 203 3 - - 9018 6 106 206 306 106 6 206 6 - - 9019 9 109 209 309 - - 209 9 - - 9020 12 112 212 312 112 12 212 12 - - 9021 15 115 215 315 - - 215 15 315 15 9022 18 118 218 318 118 18 218 18 - - 9023 21 121 221 321 - - 221 21 - - 9024 24 124 224 324 124 24 224 24 - - 9025 27 127 227 327 - - 227 27 - - 9026 30 130 230 330 130 30 230 30 330 30 9027 33 133 233 333 - - 233 33 - - 9028 36 136 236 336 136 36 236 36 - - 9029 39 139 239 339 - - 239 39 - - 9030 42 142 242 342 142 42 242 42 - - 9031 45 145 245 345 - - 245 45 345 45 9032 48 148 248 348 148 48 248 48 - - 9033 51 151 251 351 - - 251 51 - - 9034 54 154 254 354 154 54 254 54 - - 9035 57 157 257 357 - - 257 57 - - 9036 60 160 260 360 160 60 260 60 360 60 9037 63 163 263 363 - - 263 63 - - 9038 66 166 266 366 166 66 266 66 - - 9039 69 169 269 369 - - 269 69 - - 9040 72 172 272 372 172 72 272 72 - - 9041 75 175 275 375 - - 275 75 375 75 9042 78 178 278 378 178 78 278 78 - - 9043 81 181 281 381 - - 281 81 - - 9044 84 184 284 384 184 84 284 84 - - 9045 87 187 287 387 - - 287 87 - - 9046 90 190 290 390 190 90 290 90 390 90 9047 93 193 293 393 - - 293 93 - - 9048} 9049do_execsql_test joinD-339 { 9050 SELECT t1.*, t2.*, t3.*, t4.* 9051 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9052 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9053 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9054 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9055} { 9056 15 115 215 315 - - 215 15 315 15 9057 30 130 230 330 130 30 230 30 330 30 9058 45 145 245 345 - - 245 45 345 45 9059 60 160 260 360 160 60 260 60 360 60 9060 75 175 275 375 - - 275 75 375 75 9061 90 190 290 390 190 90 290 90 390 90 9062 - - - - - - - - 300 0 9063 - - - - - - - - 305 5 9064 - - - - - - - - 310 10 9065 - - - - - - - - 320 20 9066 - - - - - - - - 325 25 9067 - - - - - - - - 335 35 9068 - - - - - - - - 340 40 9069 - - - - - - - - 350 50 9070 - - - - - - - - 355 55 9071 - - - - - - - - 365 65 9072 - - - - - - - - 370 70 9073 - - - - - - - - 380 80 9074 - - - - - - - - 385 85 9075 - - - - - - - - 395 95 9076} 9077do_execsql_test joinD-340 { 9078 SELECT t1.*, t2.*, t3.*, t4.* 9079 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 9080 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9081 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9082 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9083} { 9084 15 115 215 315 - - 215 15 315 15 9085 30 130 230 330 130 30 230 30 330 30 9086 45 145 245 345 - - 245 45 345 45 9087 60 160 260 360 160 60 260 60 360 60 9088 75 175 275 375 - - 275 75 375 75 9089 90 190 290 390 190 90 290 90 390 90 9090 - - - - - - - - 300 0 9091 - - - - - - - - 305 5 9092 - - - - - - - - 310 10 9093 - - - - - - - - 320 20 9094 - - - - - - - - 325 25 9095 - - - - - - - - 335 35 9096 - - - - - - - - 340 40 9097 - - - - - - - - 350 50 9098 - - - - - - - - 355 55 9099 - - - - - - - - 365 65 9100 - - - - - - - - 370 70 9101 - - - - - - - - 380 80 9102 - - - - - - - - 385 85 9103 - - - - - - - - 395 95 9104} 9105do_execsql_test joinD-341 { 9106 SELECT t1.*, t2.*, t3.*, t4.* 9107 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9108 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9109 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9110 WHERE t2.x>0 9111 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9112} { 9113 30 130 230 330 130 30 230 30 330 30 9114 60 160 260 360 160 60 260 60 360 60 9115 90 190 290 390 190 90 290 90 390 90 9116} 9117do_execsql_test joinD-342 { 9118 SELECT t1.*, t2.*, t3.*, t4.* 9119 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9120 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9121 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9122 WHERE (t2.x>0 OR t2.x IS NULL) 9123 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9124} { 9125 15 115 215 315 - - 215 15 315 15 9126 30 130 230 330 130 30 230 30 330 30 9127 45 145 245 345 - - 245 45 345 45 9128 60 160 260 360 160 60 260 60 360 60 9129 75 175 275 375 - - 275 75 375 75 9130 90 190 290 390 190 90 290 90 390 90 9131 - - - - - - - - 300 0 9132 - - - - - - - - 305 5 9133 - - - - - - - - 310 10 9134 - - - - - - - - 320 20 9135 - - - - - - - - 325 25 9136 - - - - - - - - 335 35 9137 - - - - - - - - 340 40 9138 - - - - - - - - 350 50 9139 - - - - - - - - 355 55 9140 - - - - - - - - 365 65 9141 - - - - - - - - 370 70 9142 - - - - - - - - 380 80 9143 - - - - - - - - 385 85 9144 - - - - - - - - 395 95 9145} 9146do_execsql_test joinD-343 { 9147 SELECT t1.*, t2.*, t3.*, t4.* 9148 FROM t1 LEFT JOIN t2 ON true 9149 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9150 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9151 WHERE t1.b=t2.b AND t2.x>0 9152 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9153} { 9154 30 130 230 330 130 30 230 30 330 30 9155 60 160 260 360 160 60 260 60 360 60 9156 90 190 290 390 190 90 290 90 390 90 9157} 9158do_execsql_test joinD-344 { 9159 SELECT t1.*, t2.*, t3.*, t4.* 9160 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9161 INNER JOIN t3 ON t1.c=t3.c 9162 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9163 WHERE t3.y>0 9164 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9165} { 9166 15 115 215 315 - - 215 15 315 15 9167 30 130 230 330 130 30 230 30 330 30 9168 45 145 245 345 - - 245 45 345 45 9169 60 160 260 360 160 60 260 60 360 60 9170 75 175 275 375 - - 275 75 375 75 9171 90 190 290 390 190 90 290 90 390 90 9172} 9173do_execsql_test joinD-345 { 9174 SELECT t1.*, t2.*, t3.*, t4.* 9175 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9176 INNER JOIN t3 ON t1.c=t3.c 9177 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9178 WHERE t3.y>0 OR t3.y IS NULL 9179 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9180} { 9181 15 115 215 315 - - 215 15 315 15 9182 30 130 230 330 130 30 230 30 330 30 9183 45 145 245 345 - - 245 45 345 45 9184 60 160 260 360 160 60 260 60 360 60 9185 75 175 275 375 - - 275 75 375 75 9186 90 190 290 390 190 90 290 90 390 90 9187 - - - - - - - - 300 0 9188 - - - - - - - - 305 5 9189 - - - - - - - - 310 10 9190 - - - - - - - - 320 20 9191 - - - - - - - - 325 25 9192 - - - - - - - - 335 35 9193 - - - - - - - - 340 40 9194 - - - - - - - - 350 50 9195 - - - - - - - - 355 55 9196 - - - - - - - - 365 65 9197 - - - - - - - - 370 70 9198 - - - - - - - - 380 80 9199 - - - - - - - - 385 85 9200 - - - - - - - - 395 95 9201} 9202do_execsql_test joinD-346 { 9203 SELECT t1.*, t2.*, t3.*, t4.* 9204 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9205 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9206 RIGHT JOIN t4 ON t1.d=t4.d 9207 WHERE t4.z>0 9208 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9209} { 9210 15 115 215 315 - - 215 15 315 15 9211 30 130 230 330 130 30 230 30 330 30 9212 45 145 245 345 - - 245 45 345 45 9213 60 160 260 360 160 60 260 60 360 60 9214 75 175 275 375 - - 275 75 375 75 9215 90 190 290 390 190 90 290 90 390 90 9216 - - - - - - - - 305 5 9217 - - - - - - - - 310 10 9218 - - - - - - - - 320 20 9219 - - - - - - - - 325 25 9220 - - - - - - - - 335 35 9221 - - - - - - - - 340 40 9222 - - - - - - - - 350 50 9223 - - - - - - - - 355 55 9224 - - - - - - - - 365 65 9225 - - - - - - - - 370 70 9226 - - - - - - - - 380 80 9227 - - - - - - - - 385 85 9228 - - - - - - - - 395 95 9229} 9230do_execsql_test joinD-347 { 9231 SELECT t1.*, t2.*, t3.*, t4.* 9232 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9233 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9234 RIGHT JOIN t4 ON t1.d=t4.d 9235 WHERE t4.z IS NULL OR t4.z>0 9236 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9237} { 9238 15 115 215 315 - - 215 15 315 15 9239 30 130 230 330 130 30 230 30 330 30 9240 45 145 245 345 - - 245 45 345 45 9241 60 160 260 360 160 60 260 60 360 60 9242 75 175 275 375 - - 275 75 375 75 9243 90 190 290 390 190 90 290 90 390 90 9244 - - - - - - - - 305 5 9245 - - - - - - - - 310 10 9246 - - - - - - - - 320 20 9247 - - - - - - - - 325 25 9248 - - - - - - - - 335 35 9249 - - - - - - - - 340 40 9250 - - - - - - - - 350 50 9251 - - - - - - - - 355 55 9252 - - - - - - - - 365 65 9253 - - - - - - - - 370 70 9254 - - - - - - - - 380 80 9255 - - - - - - - - 385 85 9256 - - - - - - - - 395 95 9257} 9258do_execsql_test joinD-348 { 9259 SELECT t1.*, t2.*, t3.*, t4.* 9260 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9261 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9262 RIGHT JOIN t4 ON t1.d=t4.d 9263 WHERE t2.x>0 AND t4.z>0 9264 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9265} { 9266 30 130 230 330 130 30 230 30 330 30 9267 60 160 260 360 160 60 260 60 360 60 9268 90 190 290 390 190 90 290 90 390 90 9269} 9270do_execsql_test joinD-349 { 9271 SELECT t1.*, t2.*, t3.*, t4.* 9272 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9273 INNER JOIN t3 ON t1.c=t3.c 9274 RIGHT JOIN t4 ON t1.d=t4.d 9275 WHERE t4.z>0 AND t3.y>0 9276 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9277} { 9278 15 115 215 315 - - 215 15 315 15 9279 30 130 230 330 130 30 230 30 330 30 9280 45 145 245 345 - - 245 45 345 45 9281 60 160 260 360 160 60 260 60 360 60 9282 75 175 275 375 - - 275 75 375 75 9283 90 190 290 390 190 90 290 90 390 90 9284} 9285do_execsql_test joinD-350 { 9286 SELECT t1.*, t2.*, t3.*, t4.* 9287 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9288 INNER JOIN t3 ON t1.c=t3.c 9289 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9290 WHERE t2.x>0 AND t3.y>0 9291 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9292} { 9293 30 130 230 330 130 30 230 30 330 30 9294 60 160 260 360 160 60 260 60 360 60 9295 90 190 290 390 190 90 290 90 390 90 9296} 9297do_execsql_test joinD-351 { 9298 SELECT t1.*, t2.*, t3.*, t4.* 9299 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9300 INNER JOIN t3 ON t1.c=t3.c 9301 RIGHT JOIN t4 ON t1.d=t4.d 9302 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 9303 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9304} { 9305 30 130 230 330 130 30 230 30 330 30 9306 60 160 260 360 160 60 260 60 360 60 9307 90 190 290 390 190 90 290 90 390 90 9308} 9309do_execsql_test joinD-352 { 9310 SELECT t1.*, t2.*, t3.*, t4.* 9311 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 9312 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 9313 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 9314 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9315} { 9316 15 115 215 315 - - 215 15 315 15 9317 30 130 230 330 130 30 230 30 330 30 9318 45 145 245 345 - - 245 45 345 45 9319 60 160 260 360 160 60 260 60 360 60 9320 75 175 275 375 - - 275 75 375 75 9321 90 190 290 390 190 90 290 90 390 90 9322 - - - - - - - - 300 0 9323 - - - - - - - - 305 5 9324 - - - - - - - - 310 10 9325 - - - - - - - - 320 20 9326 - - - - - - - - 325 25 9327 - - - - - - - - 335 35 9328 - - - - - - - - 340 40 9329 - - - - - - - - 350 50 9330 - - - - - - - - 355 55 9331 - - - - - - - - 365 65 9332 - - - - - - - - 370 70 9333 - - - - - - - - 380 80 9334 - - - - - - - - 385 85 9335 - - - - - - - - 395 95 9336} 9337do_execsql_test joinD-353 { 9338 SELECT t1.*, t2.*, t3.*, t4.* 9339 FROM t1 LEFT JOIN t2 ON t2.x>0 9340 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 9341 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 9342 WHERE t1.b IS NOT DISTINCT FROM t2.b 9343 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9344} { 9345 30 130 230 330 130 30 230 30 330 30 9346 60 160 260 360 160 60 260 60 360 60 9347 90 190 290 390 190 90 290 90 390 90 9348 - - - - - - - - 300 0 9349 - - - - - - - - 305 5 9350 - - - - - - - - 310 10 9351 - - - - - - - - 320 20 9352 - - - - - - - - 325 25 9353 - - - - - - - - 335 35 9354 - - - - - - - - 340 40 9355 - - - - - - - - 350 50 9356 - - - - - - - - 355 55 9357 - - - - - - - - 365 65 9358 - - - - - - - - 370 70 9359 - - - - - - - - 380 80 9360 - - - - - - - - 385 85 9361 - - - - - - - - 395 95 9362} 9363do_execsql_test joinD-354 { 9364 SELECT t1.*, t2.*, t3.*, t4.* 9365 FROM t1 LEFT JOIN t2 ON t2.x>0 9366 INNER JOIN t3 ON t3.y>0 9367 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 9368 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 9369 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9370} { 9371 30 130 230 330 130 30 230 30 330 30 9372 60 160 260 360 160 60 260 60 360 60 9373 90 190 290 390 190 90 290 90 390 90 9374 - - - - - - - - 300 0 9375} 9376do_execsql_test joinD-355 { 9377 SELECT t1.*, t2.*, t3.*, t4.* 9378 FROM t1 LEFT JOIN t2 ON t2.x>0 9379 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 9380 RIGHT JOIN t4 ON t4.z>0 9381 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 9382 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9383} { 9384 30 130 230 330 130 30 230 30 330 30 9385 60 160 260 360 160 60 260 60 360 60 9386 90 190 290 390 190 90 290 90 390 90 9387} 9388do_execsql_test joinD-356 { 9389 SELECT t1.*, t2.*, t3.*, t4.* 9390 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 9391 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9392 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9393 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9394} { 9395 15 115 215 315 - - 215 15 315 15 9396 30 130 230 330 130 30 230 30 330 30 9397 45 145 245 345 - - 245 45 345 45 9398 60 160 260 360 160 60 260 60 360 60 9399 75 175 275 375 - - 275 75 375 75 9400 90 190 290 390 190 90 290 90 390 90 9401 - - - - - - - - 300 0 9402 - - - - - - - - 305 5 9403 - - - - - - - - 310 10 9404 - - - - - - - - 320 20 9405 - - - - - - - - 325 25 9406 - - - - - - - - 335 35 9407 - - - - - - - - 340 40 9408 - - - - - - - - 350 50 9409 - - - - - - - - 355 55 9410 - - - - - - - - 365 65 9411 - - - - - - - - 370 70 9412 - - - - - - - - 380 80 9413 - - - - - - - - 385 85 9414 - - - - - - - - 395 95 9415} 9416do_execsql_test joinD-357 { 9417 SELECT t1.*, t2.*, t3.*, t4.* 9418 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9419 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 9420 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9421 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9422} { 9423 15 115 215 315 - - 215 15 315 15 9424 30 130 230 330 130 30 230 30 330 30 9425 45 145 245 345 - - 245 45 345 45 9426 60 160 260 360 160 60 260 60 360 60 9427 75 175 275 375 - - 275 75 375 75 9428 90 190 290 390 190 90 290 90 390 90 9429 - - - - - - - - 300 0 9430 - - - - - - - - 305 5 9431 - - - - - - - - 310 10 9432 - - - - - - - - 320 20 9433 - - - - - - - - 325 25 9434 - - - - - - - - 335 35 9435 - - - - - - - - 340 40 9436 - - - - - - - - 350 50 9437 - - - - - - - - 355 55 9438 - - - - - - - - 365 65 9439 - - - - - - - - 370 70 9440 - - - - - - - - 380 80 9441 - - - - - - - - 385 85 9442 - - - - - - - - 395 95 9443} 9444do_execsql_test joinD-358 { 9445 SELECT t1.*, t2.*, t3.*, t4.* 9446 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9447 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9448 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 9449 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9450} { 9451 3 103 203 303 - - 203 3 - - 9452 6 106 206 306 106 6 206 6 - - 9453 9 109 209 309 - - 209 9 - - 9454 12 112 212 312 112 12 212 12 - - 9455 15 115 215 315 - - 215 15 315 15 9456 18 118 218 318 118 18 218 18 - - 9457 21 121 221 321 - - 221 21 - - 9458 24 124 224 324 124 24 224 24 - - 9459 27 127 227 327 - - 227 27 - - 9460 30 130 230 330 130 30 230 30 330 30 9461 33 133 233 333 - - 233 33 - - 9462 36 136 236 336 136 36 236 36 - - 9463 39 139 239 339 - - 239 39 - - 9464 42 142 242 342 142 42 242 42 - - 9465 45 145 245 345 - - 245 45 345 45 9466 48 148 248 348 148 48 248 48 - - 9467 51 151 251 351 - - 251 51 - - 9468 54 154 254 354 154 54 254 54 - - 9469 57 157 257 357 - - 257 57 - - 9470 60 160 260 360 160 60 260 60 360 60 9471 63 163 263 363 - - 263 63 - - 9472 66 166 266 366 166 66 266 66 - - 9473 69 169 269 369 - - 269 69 - - 9474 72 172 272 372 172 72 272 72 - - 9475 75 175 275 375 - - 275 75 375 75 9476 78 178 278 378 178 78 278 78 - - 9477 81 181 281 381 - - 281 81 - - 9478 84 184 284 384 184 84 284 84 - - 9479 87 187 287 387 - - 287 87 - - 9480 90 190 290 390 190 90 290 90 390 90 9481 93 193 293 393 - - 293 93 - - 9482 - - - - - - - - 300 0 9483 - - - - - - - - 305 5 9484 - - - - - - - - 310 10 9485 - - - - - - - - 320 20 9486 - - - - - - - - 325 25 9487 - - - - - - - - 335 35 9488 - - - - - - - - 340 40 9489 - - - - - - - - 350 50 9490 - - - - - - - - 355 55 9491 - - - - - - - - 365 65 9492 - - - - - - - - 370 70 9493 - - - - - - - - 380 80 9494 - - - - - - - - 385 85 9495 - - - - - - - - 395 95 9496} 9497do_execsql_test joinD-359 { 9498 SELECT t1.*, t2.*, t3.*, t4.* 9499 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 9500 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9501 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 9502 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9503} { 9504 3 103 203 303 - - 203 3 - - 9505 6 106 206 306 106 6 206 6 - - 9506 9 109 209 309 - - 209 9 - - 9507 12 112 212 312 112 12 212 12 - - 9508 15 115 215 315 - - 215 15 315 15 9509 18 118 218 318 118 18 218 18 - - 9510 21 121 221 321 - - 221 21 - - 9511 24 124 224 324 124 24 224 24 - - 9512 27 127 227 327 - - 227 27 - - 9513 30 130 230 330 130 30 230 30 330 30 9514 33 133 233 333 - - 233 33 - - 9515 36 136 236 336 136 36 236 36 - - 9516 39 139 239 339 - - 239 39 - - 9517 42 142 242 342 142 42 242 42 - - 9518 45 145 245 345 - - 245 45 345 45 9519 48 148 248 348 148 48 248 48 - - 9520 51 151 251 351 - - 251 51 - - 9521 54 154 254 354 154 54 254 54 - - 9522 57 157 257 357 - - 257 57 - - 9523 60 160 260 360 160 60 260 60 360 60 9524 63 163 263 363 - - 263 63 - - 9525 66 166 266 366 166 66 266 66 - - 9526 69 169 269 369 - - 269 69 - - 9527 72 172 272 372 172 72 272 72 - - 9528 75 175 275 375 - - 275 75 375 75 9529 78 178 278 378 178 78 278 78 - - 9530 81 181 281 381 - - 281 81 - - 9531 84 184 284 384 184 84 284 84 - - 9532 87 187 287 387 - - 287 87 - - 9533 90 190 290 390 190 90 290 90 390 90 9534 93 193 293 393 - - 293 93 - - 9535 - - - - - - - - 300 0 9536 - - - - - - - - 305 5 9537 - - - - - - - - 310 10 9538 - - - - - - - - 320 20 9539 - - - - - - - - 325 25 9540 - - - - - - - - 335 35 9541 - - - - - - - - 340 40 9542 - - - - - - - - 350 50 9543 - - - - - - - - 355 55 9544 - - - - - - - - 365 65 9545 - - - - - - - - 370 70 9546 - - - - - - - - 380 80 9547 - - - - - - - - 385 85 9548 - - - - - - - - 395 95 9549} 9550do_execsql_test joinD-360 { 9551 SELECT t1.*, t2.*, t3.*, t4.* 9552 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9553 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9554 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 9555 WHERE t2.x>0 9556 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9557} { 9558 6 106 206 306 106 6 206 6 - - 9559 12 112 212 312 112 12 212 12 - - 9560 18 118 218 318 118 18 218 18 - - 9561 24 124 224 324 124 24 224 24 - - 9562 30 130 230 330 130 30 230 30 330 30 9563 36 136 236 336 136 36 236 36 - - 9564 42 142 242 342 142 42 242 42 - - 9565 48 148 248 348 148 48 248 48 - - 9566 54 154 254 354 154 54 254 54 - - 9567 60 160 260 360 160 60 260 60 360 60 9568 66 166 266 366 166 66 266 66 - - 9569 72 172 272 372 172 72 272 72 - - 9570 78 178 278 378 178 78 278 78 - - 9571 84 184 284 384 184 84 284 84 - - 9572 90 190 290 390 190 90 290 90 390 90 9573} 9574do_execsql_test joinD-361 { 9575 SELECT t1.*, t2.*, t3.*, t4.* 9576 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9577 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9578 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 9579 WHERE (t2.x>0 OR t2.x IS NULL) 9580 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9581} { 9582 3 103 203 303 - - 203 3 - - 9583 6 106 206 306 106 6 206 6 - - 9584 9 109 209 309 - - 209 9 - - 9585 12 112 212 312 112 12 212 12 - - 9586 15 115 215 315 - - 215 15 315 15 9587 18 118 218 318 118 18 218 18 - - 9588 21 121 221 321 - - 221 21 - - 9589 24 124 224 324 124 24 224 24 - - 9590 27 127 227 327 - - 227 27 - - 9591 30 130 230 330 130 30 230 30 330 30 9592 33 133 233 333 - - 233 33 - - 9593 36 136 236 336 136 36 236 36 - - 9594 39 139 239 339 - - 239 39 - - 9595 42 142 242 342 142 42 242 42 - - 9596 45 145 245 345 - - 245 45 345 45 9597 48 148 248 348 148 48 248 48 - - 9598 51 151 251 351 - - 251 51 - - 9599 54 154 254 354 154 54 254 54 - - 9600 57 157 257 357 - - 257 57 - - 9601 60 160 260 360 160 60 260 60 360 60 9602 63 163 263 363 - - 263 63 - - 9603 66 166 266 366 166 66 266 66 - - 9604 69 169 269 369 - - 269 69 - - 9605 72 172 272 372 172 72 272 72 - - 9606 75 175 275 375 - - 275 75 375 75 9607 78 178 278 378 178 78 278 78 - - 9608 81 181 281 381 - - 281 81 - - 9609 84 184 284 384 184 84 284 84 - - 9610 87 187 287 387 - - 287 87 - - 9611 90 190 290 390 190 90 290 90 390 90 9612 93 193 293 393 - - 293 93 - - 9613 - - - - - - - - 300 0 9614 - - - - - - - - 305 5 9615 - - - - - - - - 310 10 9616 - - - - - - - - 320 20 9617 - - - - - - - - 325 25 9618 - - - - - - - - 335 35 9619 - - - - - - - - 340 40 9620 - - - - - - - - 350 50 9621 - - - - - - - - 355 55 9622 - - - - - - - - 365 65 9623 - - - - - - - - 370 70 9624 - - - - - - - - 380 80 9625 - - - - - - - - 385 85 9626 - - - - - - - - 395 95 9627} 9628do_execsql_test joinD-362 { 9629 SELECT t1.*, t2.*, t3.*, t4.* 9630 FROM t1 LEFT JOIN t2 ON true 9631 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9632 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 9633 WHERE t1.b=t2.b AND t2.x>0 9634 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9635} { 9636 6 106 206 306 106 6 206 6 - - 9637 12 112 212 312 112 12 212 12 - - 9638 18 118 218 318 118 18 218 18 - - 9639 24 124 224 324 124 24 224 24 - - 9640 30 130 230 330 130 30 230 30 330 30 9641 36 136 236 336 136 36 236 36 - - 9642 42 142 242 342 142 42 242 42 - - 9643 48 148 248 348 148 48 248 48 - - 9644 54 154 254 354 154 54 254 54 - - 9645 60 160 260 360 160 60 260 60 360 60 9646 66 166 266 366 166 66 266 66 - - 9647 72 172 272 372 172 72 272 72 - - 9648 78 178 278 378 178 78 278 78 - - 9649 84 184 284 384 184 84 284 84 - - 9650 90 190 290 390 190 90 290 90 390 90 9651} 9652do_execsql_test joinD-363 { 9653 SELECT t1.*, t2.*, t3.*, t4.* 9654 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9655 INNER JOIN t3 ON t1.c=t3.c 9656 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 9657 WHERE t3.y>0 9658 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9659} { 9660 3 103 203 303 - - 203 3 - - 9661 6 106 206 306 106 6 206 6 - - 9662 9 109 209 309 - - 209 9 - - 9663 12 112 212 312 112 12 212 12 - - 9664 15 115 215 315 - - 215 15 315 15 9665 18 118 218 318 118 18 218 18 - - 9666 21 121 221 321 - - 221 21 - - 9667 24 124 224 324 124 24 224 24 - - 9668 27 127 227 327 - - 227 27 - - 9669 30 130 230 330 130 30 230 30 330 30 9670 33 133 233 333 - - 233 33 - - 9671 36 136 236 336 136 36 236 36 - - 9672 39 139 239 339 - - 239 39 - - 9673 42 142 242 342 142 42 242 42 - - 9674 45 145 245 345 - - 245 45 345 45 9675 48 148 248 348 148 48 248 48 - - 9676 51 151 251 351 - - 251 51 - - 9677 54 154 254 354 154 54 254 54 - - 9678 57 157 257 357 - - 257 57 - - 9679 60 160 260 360 160 60 260 60 360 60 9680 63 163 263 363 - - 263 63 - - 9681 66 166 266 366 166 66 266 66 - - 9682 69 169 269 369 - - 269 69 - - 9683 72 172 272 372 172 72 272 72 - - 9684 75 175 275 375 - - 275 75 375 75 9685 78 178 278 378 178 78 278 78 - - 9686 81 181 281 381 - - 281 81 - - 9687 84 184 284 384 184 84 284 84 - - 9688 87 187 287 387 - - 287 87 - - 9689 90 190 290 390 190 90 290 90 390 90 9690 93 193 293 393 - - 293 93 - - 9691} 9692do_execsql_test joinD-364 { 9693 SELECT t1.*, t2.*, t3.*, t4.* 9694 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9695 INNER JOIN t3 ON t1.c=t3.c 9696 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 9697 WHERE t3.y>0 OR t3.y IS NULL 9698 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9699} { 9700 3 103 203 303 - - 203 3 - - 9701 6 106 206 306 106 6 206 6 - - 9702 9 109 209 309 - - 209 9 - - 9703 12 112 212 312 112 12 212 12 - - 9704 15 115 215 315 - - 215 15 315 15 9705 18 118 218 318 118 18 218 18 - - 9706 21 121 221 321 - - 221 21 - - 9707 24 124 224 324 124 24 224 24 - - 9708 27 127 227 327 - - 227 27 - - 9709 30 130 230 330 130 30 230 30 330 30 9710 33 133 233 333 - - 233 33 - - 9711 36 136 236 336 136 36 236 36 - - 9712 39 139 239 339 - - 239 39 - - 9713 42 142 242 342 142 42 242 42 - - 9714 45 145 245 345 - - 245 45 345 45 9715 48 148 248 348 148 48 248 48 - - 9716 51 151 251 351 - - 251 51 - - 9717 54 154 254 354 154 54 254 54 - - 9718 57 157 257 357 - - 257 57 - - 9719 60 160 260 360 160 60 260 60 360 60 9720 63 163 263 363 - - 263 63 - - 9721 66 166 266 366 166 66 266 66 - - 9722 69 169 269 369 - - 269 69 - - 9723 72 172 272 372 172 72 272 72 - - 9724 75 175 275 375 - - 275 75 375 75 9725 78 178 278 378 178 78 278 78 - - 9726 81 181 281 381 - - 281 81 - - 9727 84 184 284 384 184 84 284 84 - - 9728 87 187 287 387 - - 287 87 - - 9729 90 190 290 390 190 90 290 90 390 90 9730 93 193 293 393 - - 293 93 - - 9731 - - - - - - - - 300 0 9732 - - - - - - - - 305 5 9733 - - - - - - - - 310 10 9734 - - - - - - - - 320 20 9735 - - - - - - - - 325 25 9736 - - - - - - - - 335 35 9737 - - - - - - - - 340 40 9738 - - - - - - - - 350 50 9739 - - - - - - - - 355 55 9740 - - - - - - - - 365 65 9741 - - - - - - - - 370 70 9742 - - - - - - - - 380 80 9743 - - - - - - - - 385 85 9744 - - - - - - - - 395 95 9745} 9746do_execsql_test joinD-365 { 9747 SELECT t1.*, t2.*, t3.*, t4.* 9748 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9749 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9750 FULL JOIN t4 ON t1.d=t4.d 9751 WHERE t4.z>0 9752 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9753} { 9754 15 115 215 315 - - 215 15 315 15 9755 30 130 230 330 130 30 230 30 330 30 9756 45 145 245 345 - - 245 45 345 45 9757 60 160 260 360 160 60 260 60 360 60 9758 75 175 275 375 - - 275 75 375 75 9759 90 190 290 390 190 90 290 90 390 90 9760 - - - - - - - - 305 5 9761 - - - - - - - - 310 10 9762 - - - - - - - - 320 20 9763 - - - - - - - - 325 25 9764 - - - - - - - - 335 35 9765 - - - - - - - - 340 40 9766 - - - - - - - - 350 50 9767 - - - - - - - - 355 55 9768 - - - - - - - - 365 65 9769 - - - - - - - - 370 70 9770 - - - - - - - - 380 80 9771 - - - - - - - - 385 85 9772 - - - - - - - - 395 95 9773} 9774do_execsql_test joinD-366 { 9775 SELECT t1.*, t2.*, t3.*, t4.* 9776 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9777 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9778 FULL JOIN t4 ON t1.d=t4.d 9779 WHERE t4.z IS NULL OR t4.z>0 9780 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9781} { 9782 3 103 203 303 - - 203 3 - - 9783 6 106 206 306 106 6 206 6 - - 9784 9 109 209 309 - - 209 9 - - 9785 12 112 212 312 112 12 212 12 - - 9786 15 115 215 315 - - 215 15 315 15 9787 18 118 218 318 118 18 218 18 - - 9788 21 121 221 321 - - 221 21 - - 9789 24 124 224 324 124 24 224 24 - - 9790 27 127 227 327 - - 227 27 - - 9791 30 130 230 330 130 30 230 30 330 30 9792 33 133 233 333 - - 233 33 - - 9793 36 136 236 336 136 36 236 36 - - 9794 39 139 239 339 - - 239 39 - - 9795 42 142 242 342 142 42 242 42 - - 9796 45 145 245 345 - - 245 45 345 45 9797 48 148 248 348 148 48 248 48 - - 9798 51 151 251 351 - - 251 51 - - 9799 54 154 254 354 154 54 254 54 - - 9800 57 157 257 357 - - 257 57 - - 9801 60 160 260 360 160 60 260 60 360 60 9802 63 163 263 363 - - 263 63 - - 9803 66 166 266 366 166 66 266 66 - - 9804 69 169 269 369 - - 269 69 - - 9805 72 172 272 372 172 72 272 72 - - 9806 75 175 275 375 - - 275 75 375 75 9807 78 178 278 378 178 78 278 78 - - 9808 81 181 281 381 - - 281 81 - - 9809 84 184 284 384 184 84 284 84 - - 9810 87 187 287 387 - - 287 87 - - 9811 90 190 290 390 190 90 290 90 390 90 9812 93 193 293 393 - - 293 93 - - 9813 - - - - - - - - 305 5 9814 - - - - - - - - 310 10 9815 - - - - - - - - 320 20 9816 - - - - - - - - 325 25 9817 - - - - - - - - 335 35 9818 - - - - - - - - 340 40 9819 - - - - - - - - 350 50 9820 - - - - - - - - 355 55 9821 - - - - - - - - 365 65 9822 - - - - - - - - 370 70 9823 - - - - - - - - 380 80 9824 - - - - - - - - 385 85 9825 - - - - - - - - 395 95 9826} 9827do_execsql_test joinD-367 { 9828 SELECT t1.*, t2.*, t3.*, t4.* 9829 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9830 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9831 FULL JOIN t4 ON t1.d=t4.d 9832 WHERE t2.x>0 AND t4.z>0 9833 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9834} { 9835 30 130 230 330 130 30 230 30 330 30 9836 60 160 260 360 160 60 260 60 360 60 9837 90 190 290 390 190 90 290 90 390 90 9838} 9839do_execsql_test joinD-368 { 9840 SELECT t1.*, t2.*, t3.*, t4.* 9841 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9842 INNER JOIN t3 ON t1.c=t3.c 9843 FULL JOIN t4 ON t1.d=t4.d 9844 WHERE t4.z>0 AND t3.y>0 9845 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9846} { 9847 15 115 215 315 - - 215 15 315 15 9848 30 130 230 330 130 30 230 30 330 30 9849 45 145 245 345 - - 245 45 345 45 9850 60 160 260 360 160 60 260 60 360 60 9851 75 175 275 375 - - 275 75 375 75 9852 90 190 290 390 190 90 290 90 390 90 9853} 9854do_execsql_test joinD-369 { 9855 SELECT t1.*, t2.*, t3.*, t4.* 9856 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9857 INNER JOIN t3 ON t1.c=t3.c 9858 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 9859 WHERE t2.x>0 AND t3.y>0 9860 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9861} { 9862 6 106 206 306 106 6 206 6 - - 9863 12 112 212 312 112 12 212 12 - - 9864 18 118 218 318 118 18 218 18 - - 9865 24 124 224 324 124 24 224 24 - - 9866 30 130 230 330 130 30 230 30 330 30 9867 36 136 236 336 136 36 236 36 - - 9868 42 142 242 342 142 42 242 42 - - 9869 48 148 248 348 148 48 248 48 - - 9870 54 154 254 354 154 54 254 54 - - 9871 60 160 260 360 160 60 260 60 360 60 9872 66 166 266 366 166 66 266 66 - - 9873 72 172 272 372 172 72 272 72 - - 9874 78 178 278 378 178 78 278 78 - - 9875 84 184 284 384 184 84 284 84 - - 9876 90 190 290 390 190 90 290 90 390 90 9877} 9878do_execsql_test joinD-370 { 9879 SELECT t1.*, t2.*, t3.*, t4.* 9880 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9881 INNER JOIN t3 ON t1.c=t3.c 9882 FULL JOIN t4 ON t1.d=t4.d 9883 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 9884 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9885} { 9886 30 130 230 330 130 30 230 30 330 30 9887 60 160 260 360 160 60 260 60 360 60 9888 90 190 290 390 190 90 290 90 390 90 9889} 9890do_execsql_test joinD-371 { 9891 SELECT t1.*, t2.*, t3.*, t4.* 9892 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 9893 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 9894 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 9895 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9896} { 9897 3 103 203 303 - - 203 3 - - 9898 6 106 206 306 106 6 206 6 - - 9899 9 109 209 309 - - 209 9 - - 9900 12 112 212 312 112 12 212 12 - - 9901 15 115 215 315 - - 215 15 315 15 9902 18 118 218 318 118 18 218 18 - - 9903 21 121 221 321 - - 221 21 - - 9904 24 124 224 324 124 24 224 24 - - 9905 27 127 227 327 - - 227 27 - - 9906 30 130 230 330 130 30 230 30 330 30 9907 33 133 233 333 - - 233 33 - - 9908 36 136 236 336 136 36 236 36 - - 9909 39 139 239 339 - - 239 39 - - 9910 42 142 242 342 142 42 242 42 - - 9911 45 145 245 345 - - 245 45 345 45 9912 48 148 248 348 148 48 248 48 - - 9913 51 151 251 351 - - 251 51 - - 9914 54 154 254 354 154 54 254 54 - - 9915 57 157 257 357 - - 257 57 - - 9916 60 160 260 360 160 60 260 60 360 60 9917 63 163 263 363 - - 263 63 - - 9918 66 166 266 366 166 66 266 66 - - 9919 69 169 269 369 - - 269 69 - - 9920 72 172 272 372 172 72 272 72 - - 9921 75 175 275 375 - - 275 75 375 75 9922 78 178 278 378 178 78 278 78 - - 9923 81 181 281 381 - - 281 81 - - 9924 84 184 284 384 184 84 284 84 - - 9925 87 187 287 387 - - 287 87 - - 9926 90 190 290 390 190 90 290 90 390 90 9927 93 193 293 393 - - 293 93 - - 9928 - - - - - - - - 300 0 9929 - - - - - - - - 305 5 9930 - - - - - - - - 310 10 9931 - - - - - - - - 320 20 9932 - - - - - - - - 325 25 9933 - - - - - - - - 335 35 9934 - - - - - - - - 340 40 9935 - - - - - - - - 350 50 9936 - - - - - - - - 355 55 9937 - - - - - - - - 365 65 9938 - - - - - - - - 370 70 9939 - - - - - - - - 380 80 9940 - - - - - - - - 385 85 9941 - - - - - - - - 395 95 9942} 9943do_execsql_test joinD-372 { 9944 SELECT t1.*, t2.*, t3.*, t4.* 9945 FROM t1 LEFT JOIN t2 ON t2.x>0 9946 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 9947 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 9948 WHERE t1.b IS NOT DISTINCT FROM t2.b 9949 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9950} { 9951 6 106 206 306 106 6 206 6 - - 9952 12 112 212 312 112 12 212 12 - - 9953 18 118 218 318 118 18 218 18 - - 9954 24 124 224 324 124 24 224 24 - - 9955 30 130 230 330 130 30 230 30 330 30 9956 36 136 236 336 136 36 236 36 - - 9957 42 142 242 342 142 42 242 42 - - 9958 48 148 248 348 148 48 248 48 - - 9959 54 154 254 354 154 54 254 54 - - 9960 60 160 260 360 160 60 260 60 360 60 9961 66 166 266 366 166 66 266 66 - - 9962 72 172 272 372 172 72 272 72 - - 9963 78 178 278 378 178 78 278 78 - - 9964 84 184 284 384 184 84 284 84 - - 9965 90 190 290 390 190 90 290 90 390 90 9966 - - - - - - - - 300 0 9967 - - - - - - - - 305 5 9968 - - - - - - - - 310 10 9969 - - - - - - - - 320 20 9970 - - - - - - - - 325 25 9971 - - - - - - - - 335 35 9972 - - - - - - - - 340 40 9973 - - - - - - - - 350 50 9974 - - - - - - - - 355 55 9975 - - - - - - - - 365 65 9976 - - - - - - - - 370 70 9977 - - - - - - - - 380 80 9978 - - - - - - - - 385 85 9979 - - - - - - - - 395 95 9980} 9981do_execsql_test joinD-373 { 9982 SELECT t1.*, t2.*, t3.*, t4.* 9983 FROM t1 LEFT JOIN t2 ON t2.x>0 9984 INNER JOIN t3 ON t3.y>0 9985 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 9986 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 9987 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9988} { 9989 6 106 206 306 106 6 206 6 - - 9990 12 112 212 312 112 12 212 12 - - 9991 18 118 218 318 118 18 218 18 - - 9992 24 124 224 324 124 24 224 24 - - 9993 30 130 230 330 130 30 230 30 330 30 9994 36 136 236 336 136 36 236 36 - - 9995 42 142 242 342 142 42 242 42 - - 9996 48 148 248 348 148 48 248 48 - - 9997 54 154 254 354 154 54 254 54 - - 9998 60 160 260 360 160 60 260 60 360 60 9999 66 166 266 366 166 66 266 66 - - 10000 72 172 272 372 172 72 272 72 - - 10001 78 178 278 378 178 78 278 78 - - 10002 84 184 284 384 184 84 284 84 - - 10003 90 190 290 390 190 90 290 90 390 90 10004 - - - - - - - - 300 0 10005} 10006do_execsql_test joinD-374 { 10007 SELECT t1.*, t2.*, t3.*, t4.* 10008 FROM t1 LEFT JOIN t2 ON t2.x>0 10009 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 10010 FULL JOIN t4 ON t4.z>0 10011 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 10012 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10013} { 10014 30 130 230 330 130 30 230 30 330 30 10015 60 160 260 360 160 60 260 60 360 60 10016 90 190 290 390 190 90 290 90 390 90 10017} 10018do_execsql_test joinD-375 { 10019 SELECT t1.*, t2.*, t3.*, t4.* 10020 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 10021 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 10022 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 10023 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10024} { 10025 3 103 203 303 - - 203 3 - - 10026 6 106 206 306 106 6 206 6 - - 10027 9 109 209 309 - - 209 9 - - 10028 12 112 212 312 112 12 212 12 - - 10029 15 115 215 315 - - 215 15 315 15 10030 18 118 218 318 118 18 218 18 - - 10031 21 121 221 321 - - 221 21 - - 10032 24 124 224 324 124 24 224 24 - - 10033 27 127 227 327 - - 227 27 - - 10034 30 130 230 330 130 30 230 30 330 30 10035 33 133 233 333 - - 233 33 - - 10036 36 136 236 336 136 36 236 36 - - 10037 39 139 239 339 - - 239 39 - - 10038 42 142 242 342 142 42 242 42 - - 10039 45 145 245 345 - - 245 45 345 45 10040 48 148 248 348 148 48 248 48 - - 10041 51 151 251 351 - - 251 51 - - 10042 54 154 254 354 154 54 254 54 - - 10043 57 157 257 357 - - 257 57 - - 10044 60 160 260 360 160 60 260 60 360 60 10045 63 163 263 363 - - 263 63 - - 10046 66 166 266 366 166 66 266 66 - - 10047 69 169 269 369 - - 269 69 - - 10048 72 172 272 372 172 72 272 72 - - 10049 75 175 275 375 - - 275 75 375 75 10050 78 178 278 378 178 78 278 78 - - 10051 81 181 281 381 - - 281 81 - - 10052 84 184 284 384 184 84 284 84 - - 10053 87 187 287 387 - - 287 87 - - 10054 90 190 290 390 190 90 290 90 390 90 10055 93 193 293 393 - - 293 93 - - 10056 - - - - - - - - 300 0 10057 - - - - - - - - 305 5 10058 - - - - - - - - 310 10 10059 - - - - - - - - 320 20 10060 - - - - - - - - 325 25 10061 - - - - - - - - 335 35 10062 - - - - - - - - 340 40 10063 - - - - - - - - 350 50 10064 - - - - - - - - 355 55 10065 - - - - - - - - 365 65 10066 - - - - - - - - 370 70 10067 - - - - - - - - 380 80 10068 - - - - - - - - 385 85 10069 - - - - - - - - 395 95 10070} 10071do_execsql_test joinD-376 { 10072 SELECT t1.*, t2.*, t3.*, t4.* 10073 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10074 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 10075 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 10076 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10077} { 10078 3 103 203 303 - - 203 3 - - 10079 6 106 206 306 106 6 206 6 - - 10080 9 109 209 309 - - 209 9 - - 10081 12 112 212 312 112 12 212 12 - - 10082 15 115 215 315 - - 215 15 315 15 10083 18 118 218 318 118 18 218 18 - - 10084 21 121 221 321 - - 221 21 - - 10085 24 124 224 324 124 24 224 24 - - 10086 27 127 227 327 - - 227 27 - - 10087 30 130 230 330 130 30 230 30 330 30 10088 33 133 233 333 - - 233 33 - - 10089 36 136 236 336 136 36 236 36 - - 10090 39 139 239 339 - - 239 39 - - 10091 42 142 242 342 142 42 242 42 - - 10092 45 145 245 345 - - 245 45 345 45 10093 48 148 248 348 148 48 248 48 - - 10094 51 151 251 351 - - 251 51 - - 10095 54 154 254 354 154 54 254 54 - - 10096 57 157 257 357 - - 257 57 - - 10097 60 160 260 360 160 60 260 60 360 60 10098 63 163 263 363 - - 263 63 - - 10099 66 166 266 366 166 66 266 66 - - 10100 69 169 269 369 - - 269 69 - - 10101 72 172 272 372 172 72 272 72 - - 10102 75 175 275 375 - - 275 75 375 75 10103 78 178 278 378 178 78 278 78 - - 10104 81 181 281 381 - - 281 81 - - 10105 84 184 284 384 184 84 284 84 - - 10106 87 187 287 387 - - 287 87 - - 10107 90 190 290 390 190 90 290 90 390 90 10108 93 193 293 393 - - 293 93 - - 10109 - - - - - - - - 300 0 10110 - - - - - - - - 305 5 10111 - - - - - - - - 310 10 10112 - - - - - - - - 320 20 10113 - - - - - - - - 325 25 10114 - - - - - - - - 335 35 10115 - - - - - - - - 340 40 10116 - - - - - - - - 350 50 10117 - - - - - - - - 355 55 10118 - - - - - - - - 365 65 10119 - - - - - - - - 370 70 10120 - - - - - - - - 380 80 10121 - - - - - - - - 385 85 10122 - - - - - - - - 395 95 10123} 10124do_execsql_test joinD-377 { 10125 SELECT t1.*, t2.*, t3.*, t4.* 10126 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10127 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10128 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10129 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10130} { 10131 5 105 205 305 - - - - 305 5 10132 10 110 210 310 110 10 - - 310 10 10133 15 115 215 315 - - 215 15 315 15 10134 20 120 220 320 120 20 - - 320 20 10135 25 125 225 325 - - - - 325 25 10136 30 130 230 330 130 30 230 30 330 30 10137 35 135 235 335 - - - - 335 35 10138 40 140 240 340 140 40 - - 340 40 10139 45 145 245 345 - - 245 45 345 45 10140 50 150 250 350 150 50 - - 350 50 10141 55 155 255 355 - - - - 355 55 10142 60 160 260 360 160 60 260 60 360 60 10143 65 165 265 365 - - - - 365 65 10144 70 170 270 370 170 70 - - 370 70 10145 75 175 275 375 - - 275 75 375 75 10146 80 180 280 380 180 80 - - 380 80 10147 85 185 285 385 - - - - 385 85 10148 90 190 290 390 190 90 290 90 390 90 10149 95 195 295 395 - - - - 395 95 10150} 10151do_execsql_test joinD-378 { 10152 SELECT t1.*, t2.*, t3.*, t4.* 10153 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 10154 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10155 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10156 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10157} { 10158 5 105 205 305 - - - - 305 5 10159 10 110 210 310 110 10 - - 310 10 10160 15 115 215 315 - - 215 15 315 15 10161 20 120 220 320 120 20 - - 320 20 10162 25 125 225 325 - - - - 325 25 10163 30 130 230 330 130 30 230 30 330 30 10164 35 135 235 335 - - - - 335 35 10165 40 140 240 340 140 40 - - 340 40 10166 45 145 245 345 - - 245 45 345 45 10167 50 150 250 350 150 50 - - 350 50 10168 55 155 255 355 - - - - 355 55 10169 60 160 260 360 160 60 260 60 360 60 10170 65 165 265 365 - - - - 365 65 10171 70 170 270 370 170 70 - - 370 70 10172 75 175 275 375 - - 275 75 375 75 10173 80 180 280 380 180 80 - - 380 80 10174 85 185 285 385 - - - - 385 85 10175 90 190 290 390 190 90 290 90 390 90 10176 95 195 295 395 - - - - 395 95 10177} 10178do_execsql_test joinD-379 { 10179 SELECT t1.*, t2.*, t3.*, t4.* 10180 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 10181 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10182 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10183 WHERE t2.x>0 10184 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10185} { 10186 10 110 210 310 110 10 - - 310 10 10187 20 120 220 320 120 20 - - 320 20 10188 30 130 230 330 130 30 230 30 330 30 10189 40 140 240 340 140 40 - - 340 40 10190 50 150 250 350 150 50 - - 350 50 10191 60 160 260 360 160 60 260 60 360 60 10192 70 170 270 370 170 70 - - 370 70 10193 80 180 280 380 180 80 - - 380 80 10194 90 190 290 390 190 90 290 90 390 90 10195} 10196do_execsql_test joinD-380 { 10197 SELECT t1.*, t2.*, t3.*, t4.* 10198 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 10199 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10200 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10201 WHERE (t2.x>0 OR t2.x IS NULL) 10202 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10203} { 10204 5 105 205 305 - - - - 305 5 10205 10 110 210 310 110 10 - - 310 10 10206 15 115 215 315 - - 215 15 315 15 10207 20 120 220 320 120 20 - - 320 20 10208 25 125 225 325 - - - - 325 25 10209 30 130 230 330 130 30 230 30 330 30 10210 35 135 235 335 - - - - 335 35 10211 40 140 240 340 140 40 - - 340 40 10212 45 145 245 345 - - 245 45 345 45 10213 50 150 250 350 150 50 - - 350 50 10214 55 155 255 355 - - - - 355 55 10215 60 160 260 360 160 60 260 60 360 60 10216 65 165 265 365 - - - - 365 65 10217 70 170 270 370 170 70 - - 370 70 10218 75 175 275 375 - - 275 75 375 75 10219 80 180 280 380 180 80 - - 380 80 10220 85 185 285 385 - - - - 385 85 10221 90 190 290 390 190 90 290 90 390 90 10222 95 195 295 395 - - - - 395 95 10223} 10224do_execsql_test joinD-381 { 10225 SELECT t1.*, t2.*, t3.*, t4.* 10226 FROM t1 LEFT JOIN t2 ON true 10227 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10228 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10229 WHERE t1.b=t2.b AND t2.x>0 10230 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10231} { 10232 10 110 210 310 110 10 - - 310 10 10233 20 120 220 320 120 20 - - 320 20 10234 30 130 230 330 130 30 230 30 330 30 10235 40 140 240 340 140 40 - - 340 40 10236 50 150 250 350 150 50 - - 350 50 10237 60 160 260 360 160 60 260 60 360 60 10238 70 170 270 370 170 70 - - 370 70 10239 80 180 280 380 180 80 - - 380 80 10240 90 190 290 390 190 90 290 90 390 90 10241} 10242do_execsql_test joinD-382 { 10243 SELECT t1.*, t2.*, t3.*, t4.* 10244 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10245 LEFT JOIN t3 ON t1.c=t3.c 10246 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10247 WHERE t3.y>0 10248 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10249} { 10250 15 115 215 315 - - 215 15 315 15 10251 30 130 230 330 130 30 230 30 330 30 10252 45 145 245 345 - - 245 45 345 45 10253 60 160 260 360 160 60 260 60 360 60 10254 75 175 275 375 - - 275 75 375 75 10255 90 190 290 390 190 90 290 90 390 90 10256} 10257do_execsql_test joinD-383 { 10258 SELECT t1.*, t2.*, t3.*, t4.* 10259 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10260 LEFT JOIN t3 ON t1.c=t3.c 10261 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10262 WHERE t3.y>0 OR t3.y IS NULL 10263 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10264} { 10265 5 105 205 305 - - - - 305 5 10266 10 110 210 310 110 10 - - 310 10 10267 15 115 215 315 - - 215 15 315 15 10268 20 120 220 320 120 20 - - 320 20 10269 25 125 225 325 - - - - 325 25 10270 30 130 230 330 130 30 230 30 330 30 10271 35 135 235 335 - - - - 335 35 10272 40 140 240 340 140 40 - - 340 40 10273 45 145 245 345 - - 245 45 345 45 10274 50 150 250 350 150 50 - - 350 50 10275 55 155 255 355 - - - - 355 55 10276 60 160 260 360 160 60 260 60 360 60 10277 65 165 265 365 - - - - 365 65 10278 70 170 270 370 170 70 - - 370 70 10279 75 175 275 375 - - 275 75 375 75 10280 80 180 280 380 180 80 - - 380 80 10281 85 185 285 385 - - - - 385 85 10282 90 190 290 390 190 90 290 90 390 90 10283 95 195 295 395 - - - - 395 95 10284} 10285do_execsql_test joinD-384 { 10286 SELECT t1.*, t2.*, t3.*, t4.* 10287 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10288 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10289 INNER JOIN t4 ON t1.d=t4.d 10290 WHERE t4.z>0 10291 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10292} { 10293 5 105 205 305 - - - - 305 5 10294 10 110 210 310 110 10 - - 310 10 10295 15 115 215 315 - - 215 15 315 15 10296 20 120 220 320 120 20 - - 320 20 10297 25 125 225 325 - - - - 325 25 10298 30 130 230 330 130 30 230 30 330 30 10299 35 135 235 335 - - - - 335 35 10300 40 140 240 340 140 40 - - 340 40 10301 45 145 245 345 - - 245 45 345 45 10302 50 150 250 350 150 50 - - 350 50 10303 55 155 255 355 - - - - 355 55 10304 60 160 260 360 160 60 260 60 360 60 10305 65 165 265 365 - - - - 365 65 10306 70 170 270 370 170 70 - - 370 70 10307 75 175 275 375 - - 275 75 375 75 10308 80 180 280 380 180 80 - - 380 80 10309 85 185 285 385 - - - - 385 85 10310 90 190 290 390 190 90 290 90 390 90 10311 95 195 295 395 - - - - 395 95 10312} 10313do_execsql_test joinD-385 { 10314 SELECT t1.*, t2.*, t3.*, t4.* 10315 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10316 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10317 INNER JOIN t4 ON t1.d=t4.d 10318 WHERE t4.z IS NULL OR t4.z>0 10319 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10320} { 10321 5 105 205 305 - - - - 305 5 10322 10 110 210 310 110 10 - - 310 10 10323 15 115 215 315 - - 215 15 315 15 10324 20 120 220 320 120 20 - - 320 20 10325 25 125 225 325 - - - - 325 25 10326 30 130 230 330 130 30 230 30 330 30 10327 35 135 235 335 - - - - 335 35 10328 40 140 240 340 140 40 - - 340 40 10329 45 145 245 345 - - 245 45 345 45 10330 50 150 250 350 150 50 - - 350 50 10331 55 155 255 355 - - - - 355 55 10332 60 160 260 360 160 60 260 60 360 60 10333 65 165 265 365 - - - - 365 65 10334 70 170 270 370 170 70 - - 370 70 10335 75 175 275 375 - - 275 75 375 75 10336 80 180 280 380 180 80 - - 380 80 10337 85 185 285 385 - - - - 385 85 10338 90 190 290 390 190 90 290 90 390 90 10339 95 195 295 395 - - - - 395 95 10340} 10341do_execsql_test joinD-386 { 10342 SELECT t1.*, t2.*, t3.*, t4.* 10343 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 10344 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10345 INNER JOIN t4 ON t1.d=t4.d 10346 WHERE t2.x>0 AND t4.z>0 10347 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10348} { 10349 10 110 210 310 110 10 - - 310 10 10350 20 120 220 320 120 20 - - 320 20 10351 30 130 230 330 130 30 230 30 330 30 10352 40 140 240 340 140 40 - - 340 40 10353 50 150 250 350 150 50 - - 350 50 10354 60 160 260 360 160 60 260 60 360 60 10355 70 170 270 370 170 70 - - 370 70 10356 80 180 280 380 180 80 - - 380 80 10357 90 190 290 390 190 90 290 90 390 90 10358} 10359do_execsql_test joinD-387 { 10360 SELECT t1.*, t2.*, t3.*, t4.* 10361 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10362 LEFT JOIN t3 ON t1.c=t3.c 10363 INNER JOIN t4 ON t1.d=t4.d 10364 WHERE t4.z>0 AND t3.y>0 10365 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10366} { 10367 15 115 215 315 - - 215 15 315 15 10368 30 130 230 330 130 30 230 30 330 30 10369 45 145 245 345 - - 245 45 345 45 10370 60 160 260 360 160 60 260 60 360 60 10371 75 175 275 375 - - 275 75 375 75 10372 90 190 290 390 190 90 290 90 390 90 10373} 10374do_execsql_test joinD-388 { 10375 SELECT t1.*, t2.*, t3.*, t4.* 10376 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 10377 LEFT JOIN t3 ON t1.c=t3.c 10378 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10379 WHERE t2.x>0 AND t3.y>0 10380 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10381} { 10382 30 130 230 330 130 30 230 30 330 30 10383 60 160 260 360 160 60 260 60 360 60 10384 90 190 290 390 190 90 290 90 390 90 10385} 10386do_execsql_test joinD-389 { 10387 SELECT t1.*, t2.*, t3.*, t4.* 10388 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 10389 LEFT JOIN t3 ON t1.c=t3.c 10390 INNER JOIN t4 ON t1.d=t4.d 10391 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 10392 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10393} { 10394 30 130 230 330 130 30 230 30 330 30 10395 60 160 260 360 160 60 260 60 360 60 10396 90 190 290 390 190 90 290 90 390 90 10397} 10398do_execsql_test joinD-390 { 10399 SELECT t1.*, t2.*, t3.*, t4.* 10400 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 10401 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 10402 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 10403 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10404} { 10405 5 105 205 305 - - - - 305 5 10406 10 110 210 310 110 10 - - 310 10 10407 15 115 215 315 - - 215 15 315 15 10408 20 120 220 320 120 20 - - 320 20 10409 25 125 225 325 - - - - 325 25 10410 30 130 230 330 130 30 230 30 330 30 10411 35 135 235 335 - - - - 335 35 10412 40 140 240 340 140 40 - - 340 40 10413 45 145 245 345 - - 245 45 345 45 10414 50 150 250 350 150 50 - - 350 50 10415 55 155 255 355 - - - - 355 55 10416 60 160 260 360 160 60 260 60 360 60 10417 65 165 265 365 - - - - 365 65 10418 70 170 270 370 170 70 - - 370 70 10419 75 175 275 375 - - 275 75 375 75 10420 80 180 280 380 180 80 - - 380 80 10421 85 185 285 385 - - - - 385 85 10422 90 190 290 390 190 90 290 90 390 90 10423 95 195 295 395 - - - - 395 95 10424} 10425do_execsql_test joinD-391 { 10426 SELECT t1.*, t2.*, t3.*, t4.* 10427 FROM t1 LEFT JOIN t2 ON t2.x>0 10428 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 10429 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 10430 WHERE t1.b IS NOT DISTINCT FROM t2.b 10431 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10432} { 10433 10 110 210 310 110 10 - - 310 10 10434 20 120 220 320 120 20 - - 320 20 10435 30 130 230 330 130 30 230 30 330 30 10436 40 140 240 340 140 40 - - 340 40 10437 50 150 250 350 150 50 - - 350 50 10438 60 160 260 360 160 60 260 60 360 60 10439 70 170 270 370 170 70 - - 370 70 10440 80 180 280 380 180 80 - - 380 80 10441 90 190 290 390 190 90 290 90 390 90 10442} 10443do_execsql_test joinD-392 { 10444 SELECT t1.*, t2.*, t3.*, t4.* 10445 FROM t1 LEFT JOIN t2 ON t2.x>0 10446 LEFT JOIN t3 ON t3.y>0 10447 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 10448 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 10449 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10450} { 10451 30 130 230 330 130 30 230 30 330 30 10452 60 160 260 360 160 60 260 60 360 60 10453 90 190 290 390 190 90 290 90 390 90 10454} 10455do_execsql_test joinD-393 { 10456 SELECT t1.*, t2.*, t3.*, t4.* 10457 FROM t1 LEFT JOIN t2 ON t2.x>0 10458 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 10459 INNER JOIN t4 ON t4.z>0 10460 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 10461 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10462} { 10463 10 110 210 310 110 10 - - 310 10 10464 20 120 220 320 120 20 - - 320 20 10465 30 130 230 330 130 30 230 30 330 30 10466 40 140 240 340 140 40 - - 340 40 10467 50 150 250 350 150 50 - - 350 50 10468 60 160 260 360 160 60 260 60 360 60 10469 70 170 270 370 170 70 - - 370 70 10470 80 180 280 380 180 80 - - 380 80 10471 90 190 290 390 190 90 290 90 390 90 10472} 10473do_execsql_test joinD-394 { 10474 SELECT t1.*, t2.*, t3.*, t4.* 10475 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 10476 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10477 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10478 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10479} { 10480 5 105 205 305 - - - - 305 5 10481 10 110 210 310 110 10 - - 310 10 10482 15 115 215 315 - - 215 15 315 15 10483 20 120 220 320 120 20 - - 320 20 10484 25 125 225 325 - - - - 325 25 10485 30 130 230 330 130 30 230 30 330 30 10486 35 135 235 335 - - - - 335 35 10487 40 140 240 340 140 40 - - 340 40 10488 45 145 245 345 - - 245 45 345 45 10489 50 150 250 350 150 50 - - 350 50 10490 55 155 255 355 - - - - 355 55 10491 60 160 260 360 160 60 260 60 360 60 10492 65 165 265 365 - - - - 365 65 10493 70 170 270 370 170 70 - - 370 70 10494 75 175 275 375 - - 275 75 375 75 10495 80 180 280 380 180 80 - - 380 80 10496 85 185 285 385 - - - - 385 85 10497 90 190 290 390 190 90 290 90 390 90 10498 95 195 295 395 - - - - 395 95 10499} 10500do_execsql_test joinD-395 { 10501 SELECT t1.*, t2.*, t3.*, t4.* 10502 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10503 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 10504 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10505 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10506} { 10507 5 105 205 305 - - - - 305 5 10508 10 110 210 310 110 10 - - 310 10 10509 15 115 215 315 - - 215 15 315 15 10510 20 120 220 320 120 20 - - 320 20 10511 25 125 225 325 - - - - 325 25 10512 30 130 230 330 130 30 230 30 330 30 10513 35 135 235 335 - - - - 335 35 10514 40 140 240 340 140 40 - - 340 40 10515 45 145 245 345 - - 245 45 345 45 10516 50 150 250 350 150 50 - - 350 50 10517 55 155 255 355 - - - - 355 55 10518 60 160 260 360 160 60 260 60 360 60 10519 65 165 265 365 - - - - 365 65 10520 70 170 270 370 170 70 - - 370 70 10521 75 175 275 375 - - 275 75 375 75 10522 80 180 280 380 180 80 - - 380 80 10523 85 185 285 385 - - - - 385 85 10524 90 190 290 390 190 90 290 90 390 90 10525 95 195 295 395 - - - - 395 95 10526} 10527do_execsql_test joinD-396 { 10528 SELECT t1.*, t2.*, t3.*, t4.* 10529 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10530 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10531 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 10532 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10533} { 10534 0 100 200 300 - - - - - - 10535 1 101 201 301 - - - - - - 10536 2 102 202 302 102 2 - - - - 10537 3 103 203 303 - - 203 3 - - 10538 4 104 204 304 104 4 - - - - 10539 5 105 205 305 - - - - 305 5 10540 6 106 206 306 106 6 206 6 - - 10541 7 107 207 307 - - - - - - 10542 8 108 208 308 108 8 - - - - 10543 9 109 209 309 - - 209 9 - - 10544 10 110 210 310 110 10 - - 310 10 10545 11 111 211 311 - - - - - - 10546 12 112 212 312 112 12 212 12 - - 10547 13 113 213 313 - - - - - - 10548 14 114 214 314 114 14 - - - - 10549 15 115 215 315 - - 215 15 315 15 10550 16 116 216 316 116 16 - - - - 10551 17 117 217 317 - - - - - - 10552 18 118 218 318 118 18 218 18 - - 10553 19 119 219 319 - - - - - - 10554 20 120 220 320 120 20 - - 320 20 10555 21 121 221 321 - - 221 21 - - 10556 22 122 222 322 122 22 - - - - 10557 23 123 223 323 - - - - - - 10558 24 124 224 324 124 24 224 24 - - 10559 25 125 225 325 - - - - 325 25 10560 26 126 226 326 126 26 - - - - 10561 27 127 227 327 - - 227 27 - - 10562 28 128 228 328 128 28 - - - - 10563 29 129 229 329 - - - - - - 10564 30 130 230 330 130 30 230 30 330 30 10565 31 131 231 331 - - - - - - 10566 32 132 232 332 132 32 - - - - 10567 33 133 233 333 - - 233 33 - - 10568 34 134 234 334 134 34 - - - - 10569 35 135 235 335 - - - - 335 35 10570 36 136 236 336 136 36 236 36 - - 10571 37 137 237 337 - - - - - - 10572 38 138 238 338 138 38 - - - - 10573 39 139 239 339 - - 239 39 - - 10574 40 140 240 340 140 40 - - 340 40 10575 41 141 241 341 - - - - - - 10576 42 142 242 342 142 42 242 42 - - 10577 43 143 243 343 - - - - - - 10578 44 144 244 344 144 44 - - - - 10579 45 145 245 345 - - 245 45 345 45 10580 46 146 246 346 146 46 - - - - 10581 47 147 247 347 - - - - - - 10582 48 148 248 348 148 48 248 48 - - 10583 49 149 249 349 - - - - - - 10584 50 150 250 350 150 50 - - 350 50 10585 51 151 251 351 - - 251 51 - - 10586 52 152 252 352 152 52 - - - - 10587 53 153 253 353 - - - - - - 10588 54 154 254 354 154 54 254 54 - - 10589 55 155 255 355 - - - - 355 55 10590 56 156 256 356 156 56 - - - - 10591 57 157 257 357 - - 257 57 - - 10592 58 158 258 358 158 58 - - - - 10593 59 159 259 359 - - - - - - 10594 60 160 260 360 160 60 260 60 360 60 10595 61 161 261 361 - - - - - - 10596 62 162 262 362 162 62 - - - - 10597 63 163 263 363 - - 263 63 - - 10598 64 164 264 364 164 64 - - - - 10599 65 165 265 365 - - - - 365 65 10600 66 166 266 366 166 66 266 66 - - 10601 67 167 267 367 - - - - - - 10602 68 168 268 368 168 68 - - - - 10603 69 169 269 369 - - 269 69 - - 10604 70 170 270 370 170 70 - - 370 70 10605 71 171 271 371 - - - - - - 10606 72 172 272 372 172 72 272 72 - - 10607 73 173 273 373 - - - - - - 10608 74 174 274 374 174 74 - - - - 10609 75 175 275 375 - - 275 75 375 75 10610 76 176 276 376 176 76 - - - - 10611 77 177 277 377 - - - - - - 10612 78 178 278 378 178 78 278 78 - - 10613 79 179 279 379 - - - - - - 10614 80 180 280 380 180 80 - - 380 80 10615 81 181 281 381 - - 281 81 - - 10616 82 182 282 382 182 82 - - - - 10617 83 183 283 383 - - - - - - 10618 84 184 284 384 184 84 284 84 - - 10619 85 185 285 385 - - - - 385 85 10620 86 186 286 386 186 86 - - - - 10621 87 187 287 387 - - 287 87 - - 10622 88 188 288 388 188 88 - - - - 10623 89 189 289 389 - - - - - - 10624 90 190 290 390 190 90 290 90 390 90 10625 91 191 291 391 - - - - - - 10626 92 192 292 392 192 92 - - - - 10627 93 193 293 393 - - 293 93 - - 10628 94 194 294 394 194 94 - - - - 10629 95 195 295 395 - - - - 395 95 10630 96 - 296 396 - - - - - - 10631 97 197 - 397 - - - - - - 10632 98 198 298 - - - - - - - 10633 99 - - - - - - - - - 10634} 10635do_execsql_test joinD-397 { 10636 SELECT t1.*, t2.*, t3.*, t4.* 10637 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 10638 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10639 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 10640 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10641} { 10642 0 100 200 300 - - - - - - 10643 1 101 201 301 - - - - - - 10644 2 102 202 302 102 2 - - - - 10645 3 103 203 303 - - 203 3 - - 10646 4 104 204 304 104 4 - - - - 10647 5 105 205 305 - - - - 305 5 10648 6 106 206 306 106 6 206 6 - - 10649 7 107 207 307 - - - - - - 10650 8 108 208 308 108 8 - - - - 10651 9 109 209 309 - - 209 9 - - 10652 10 110 210 310 110 10 - - 310 10 10653 11 111 211 311 - - - - - - 10654 12 112 212 312 112 12 212 12 - - 10655 13 113 213 313 - - - - - - 10656 14 114 214 314 114 14 - - - - 10657 15 115 215 315 - - 215 15 315 15 10658 16 116 216 316 116 16 - - - - 10659 17 117 217 317 - - - - - - 10660 18 118 218 318 118 18 218 18 - - 10661 19 119 219 319 - - - - - - 10662 20 120 220 320 120 20 - - 320 20 10663 21 121 221 321 - - 221 21 - - 10664 22 122 222 322 122 22 - - - - 10665 23 123 223 323 - - - - - - 10666 24 124 224 324 124 24 224 24 - - 10667 25 125 225 325 - - - - 325 25 10668 26 126 226 326 126 26 - - - - 10669 27 127 227 327 - - 227 27 - - 10670 28 128 228 328 128 28 - - - - 10671 29 129 229 329 - - - - - - 10672 30 130 230 330 130 30 230 30 330 30 10673 31 131 231 331 - - - - - - 10674 32 132 232 332 132 32 - - - - 10675 33 133 233 333 - - 233 33 - - 10676 34 134 234 334 134 34 - - - - 10677 35 135 235 335 - - - - 335 35 10678 36 136 236 336 136 36 236 36 - - 10679 37 137 237 337 - - - - - - 10680 38 138 238 338 138 38 - - - - 10681 39 139 239 339 - - 239 39 - - 10682 40 140 240 340 140 40 - - 340 40 10683 41 141 241 341 - - - - - - 10684 42 142 242 342 142 42 242 42 - - 10685 43 143 243 343 - - - - - - 10686 44 144 244 344 144 44 - - - - 10687 45 145 245 345 - - 245 45 345 45 10688 46 146 246 346 146 46 - - - - 10689 47 147 247 347 - - - - - - 10690 48 148 248 348 148 48 248 48 - - 10691 49 149 249 349 - - - - - - 10692 50 150 250 350 150 50 - - 350 50 10693 51 151 251 351 - - 251 51 - - 10694 52 152 252 352 152 52 - - - - 10695 53 153 253 353 - - - - - - 10696 54 154 254 354 154 54 254 54 - - 10697 55 155 255 355 - - - - 355 55 10698 56 156 256 356 156 56 - - - - 10699 57 157 257 357 - - 257 57 - - 10700 58 158 258 358 158 58 - - - - 10701 59 159 259 359 - - - - - - 10702 60 160 260 360 160 60 260 60 360 60 10703 61 161 261 361 - - - - - - 10704 62 162 262 362 162 62 - - - - 10705 63 163 263 363 - - 263 63 - - 10706 64 164 264 364 164 64 - - - - 10707 65 165 265 365 - - - - 365 65 10708 66 166 266 366 166 66 266 66 - - 10709 67 167 267 367 - - - - - - 10710 68 168 268 368 168 68 - - - - 10711 69 169 269 369 - - 269 69 - - 10712 70 170 270 370 170 70 - - 370 70 10713 71 171 271 371 - - - - - - 10714 72 172 272 372 172 72 272 72 - - 10715 73 173 273 373 - - - - - - 10716 74 174 274 374 174 74 - - - - 10717 75 175 275 375 - - 275 75 375 75 10718 76 176 276 376 176 76 - - - - 10719 77 177 277 377 - - - - - - 10720 78 178 278 378 178 78 278 78 - - 10721 79 179 279 379 - - - - - - 10722 80 180 280 380 180 80 - - 380 80 10723 81 181 281 381 - - 281 81 - - 10724 82 182 282 382 182 82 - - - - 10725 83 183 283 383 - - - - - - 10726 84 184 284 384 184 84 284 84 - - 10727 85 185 285 385 - - - - 385 85 10728 86 186 286 386 186 86 - - - - 10729 87 187 287 387 - - 287 87 - - 10730 88 188 288 388 188 88 - - - - 10731 89 189 289 389 - - - - - - 10732 90 190 290 390 190 90 290 90 390 90 10733 91 191 291 391 - - - - - - 10734 92 192 292 392 192 92 - - - - 10735 93 193 293 393 - - 293 93 - - 10736 94 194 294 394 194 94 - - - - 10737 95 195 295 395 - - - - 395 95 10738 96 - 296 396 - - - - - - 10739 97 197 - 397 - - - - - - 10740 98 198 298 - - - - - - - 10741 99 - - - - - - - - - 10742} 10743do_execsql_test joinD-398 { 10744 SELECT t1.*, t2.*, t3.*, t4.* 10745 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 10746 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10747 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 10748 WHERE t2.x>0 10749 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10750} { 10751 2 102 202 302 102 2 - - - - 10752 4 104 204 304 104 4 - - - - 10753 6 106 206 306 106 6 206 6 - - 10754 8 108 208 308 108 8 - - - - 10755 10 110 210 310 110 10 - - 310 10 10756 12 112 212 312 112 12 212 12 - - 10757 14 114 214 314 114 14 - - - - 10758 16 116 216 316 116 16 - - - - 10759 18 118 218 318 118 18 218 18 - - 10760 20 120 220 320 120 20 - - 320 20 10761 22 122 222 322 122 22 - - - - 10762 24 124 224 324 124 24 224 24 - - 10763 26 126 226 326 126 26 - - - - 10764 28 128 228 328 128 28 - - - - 10765 30 130 230 330 130 30 230 30 330 30 10766 32 132 232 332 132 32 - - - - 10767 34 134 234 334 134 34 - - - - 10768 36 136 236 336 136 36 236 36 - - 10769 38 138 238 338 138 38 - - - - 10770 40 140 240 340 140 40 - - 340 40 10771 42 142 242 342 142 42 242 42 - - 10772 44 144 244 344 144 44 - - - - 10773 46 146 246 346 146 46 - - - - 10774 48 148 248 348 148 48 248 48 - - 10775 50 150 250 350 150 50 - - 350 50 10776 52 152 252 352 152 52 - - - - 10777 54 154 254 354 154 54 254 54 - - 10778 56 156 256 356 156 56 - - - - 10779 58 158 258 358 158 58 - - - - 10780 60 160 260 360 160 60 260 60 360 60 10781 62 162 262 362 162 62 - - - - 10782 64 164 264 364 164 64 - - - - 10783 66 166 266 366 166 66 266 66 - - 10784 68 168 268 368 168 68 - - - - 10785 70 170 270 370 170 70 - - 370 70 10786 72 172 272 372 172 72 272 72 - - 10787 74 174 274 374 174 74 - - - - 10788 76 176 276 376 176 76 - - - - 10789 78 178 278 378 178 78 278 78 - - 10790 80 180 280 380 180 80 - - 380 80 10791 82 182 282 382 182 82 - - - - 10792 84 184 284 384 184 84 284 84 - - 10793 86 186 286 386 186 86 - - - - 10794 88 188 288 388 188 88 - - - - 10795 90 190 290 390 190 90 290 90 390 90 10796 92 192 292 392 192 92 - - - - 10797 94 194 294 394 194 94 - - - - 10798} 10799do_execsql_test joinD-399 { 10800 SELECT t1.*, t2.*, t3.*, t4.* 10801 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 10802 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10803 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 10804 WHERE (t2.x>0 OR t2.x IS NULL) 10805 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10806} { 10807 1 101 201 301 - - - - - - 10808 2 102 202 302 102 2 - - - - 10809 3 103 203 303 - - 203 3 - - 10810 4 104 204 304 104 4 - - - - 10811 5 105 205 305 - - - - 305 5 10812 6 106 206 306 106 6 206 6 - - 10813 7 107 207 307 - - - - - - 10814 8 108 208 308 108 8 - - - - 10815 9 109 209 309 - - 209 9 - - 10816 10 110 210 310 110 10 - - 310 10 10817 11 111 211 311 - - - - - - 10818 12 112 212 312 112 12 212 12 - - 10819 13 113 213 313 - - - - - - 10820 14 114 214 314 114 14 - - - - 10821 15 115 215 315 - - 215 15 315 15 10822 16 116 216 316 116 16 - - - - 10823 17 117 217 317 - - - - - - 10824 18 118 218 318 118 18 218 18 - - 10825 19 119 219 319 - - - - - - 10826 20 120 220 320 120 20 - - 320 20 10827 21 121 221 321 - - 221 21 - - 10828 22 122 222 322 122 22 - - - - 10829 23 123 223 323 - - - - - - 10830 24 124 224 324 124 24 224 24 - - 10831 25 125 225 325 - - - - 325 25 10832 26 126 226 326 126 26 - - - - 10833 27 127 227 327 - - 227 27 - - 10834 28 128 228 328 128 28 - - - - 10835 29 129 229 329 - - - - - - 10836 30 130 230 330 130 30 230 30 330 30 10837 31 131 231 331 - - - - - - 10838 32 132 232 332 132 32 - - - - 10839 33 133 233 333 - - 233 33 - - 10840 34 134 234 334 134 34 - - - - 10841 35 135 235 335 - - - - 335 35 10842 36 136 236 336 136 36 236 36 - - 10843 37 137 237 337 - - - - - - 10844 38 138 238 338 138 38 - - - - 10845 39 139 239 339 - - 239 39 - - 10846 40 140 240 340 140 40 - - 340 40 10847 41 141 241 341 - - - - - - 10848 42 142 242 342 142 42 242 42 - - 10849 43 143 243 343 - - - - - - 10850 44 144 244 344 144 44 - - - - 10851 45 145 245 345 - - 245 45 345 45 10852 46 146 246 346 146 46 - - - - 10853 47 147 247 347 - - - - - - 10854 48 148 248 348 148 48 248 48 - - 10855 49 149 249 349 - - - - - - 10856 50 150 250 350 150 50 - - 350 50 10857 51 151 251 351 - - 251 51 - - 10858 52 152 252 352 152 52 - - - - 10859 53 153 253 353 - - - - - - 10860 54 154 254 354 154 54 254 54 - - 10861 55 155 255 355 - - - - 355 55 10862 56 156 256 356 156 56 - - - - 10863 57 157 257 357 - - 257 57 - - 10864 58 158 258 358 158 58 - - - - 10865 59 159 259 359 - - - - - - 10866 60 160 260 360 160 60 260 60 360 60 10867 61 161 261 361 - - - - - - 10868 62 162 262 362 162 62 - - - - 10869 63 163 263 363 - - 263 63 - - 10870 64 164 264 364 164 64 - - - - 10871 65 165 265 365 - - - - 365 65 10872 66 166 266 366 166 66 266 66 - - 10873 67 167 267 367 - - - - - - 10874 68 168 268 368 168 68 - - - - 10875 69 169 269 369 - - 269 69 - - 10876 70 170 270 370 170 70 - - 370 70 10877 71 171 271 371 - - - - - - 10878 72 172 272 372 172 72 272 72 - - 10879 73 173 273 373 - - - - - - 10880 74 174 274 374 174 74 - - - - 10881 75 175 275 375 - - 275 75 375 75 10882 76 176 276 376 176 76 - - - - 10883 77 177 277 377 - - - - - - 10884 78 178 278 378 178 78 278 78 - - 10885 79 179 279 379 - - - - - - 10886 80 180 280 380 180 80 - - 380 80 10887 81 181 281 381 - - 281 81 - - 10888 82 182 282 382 182 82 - - - - 10889 83 183 283 383 - - - - - - 10890 84 184 284 384 184 84 284 84 - - 10891 85 185 285 385 - - - - 385 85 10892 86 186 286 386 186 86 - - - - 10893 87 187 287 387 - - 287 87 - - 10894 88 188 288 388 188 88 - - - - 10895 89 189 289 389 - - - - - - 10896 90 190 290 390 190 90 290 90 390 90 10897 91 191 291 391 - - - - - - 10898 92 192 292 392 192 92 - - - - 10899 93 193 293 393 - - 293 93 - - 10900 94 194 294 394 194 94 - - - - 10901 95 195 295 395 - - - - 395 95 10902 96 - 296 396 - - - - - - 10903 97 197 - 397 - - - - - - 10904 98 198 298 - - - - - - - 10905 99 - - - - - - - - - 10906} 10907do_execsql_test joinD-400 { 10908 SELECT t1.*, t2.*, t3.*, t4.* 10909 FROM t1 LEFT JOIN t2 ON true 10910 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10911 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 10912 WHERE t1.b=t2.b AND t2.x>0 10913 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10914} { 10915 2 102 202 302 102 2 - - - - 10916 4 104 204 304 104 4 - - - - 10917 6 106 206 306 106 6 206 6 - - 10918 8 108 208 308 108 8 - - - - 10919 10 110 210 310 110 10 - - 310 10 10920 12 112 212 312 112 12 212 12 - - 10921 14 114 214 314 114 14 - - - - 10922 16 116 216 316 116 16 - - - - 10923 18 118 218 318 118 18 218 18 - - 10924 20 120 220 320 120 20 - - 320 20 10925 22 122 222 322 122 22 - - - - 10926 24 124 224 324 124 24 224 24 - - 10927 26 126 226 326 126 26 - - - - 10928 28 128 228 328 128 28 - - - - 10929 30 130 230 330 130 30 230 30 330 30 10930 32 132 232 332 132 32 - - - - 10931 34 134 234 334 134 34 - - - - 10932 36 136 236 336 136 36 236 36 - - 10933 38 138 238 338 138 38 - - - - 10934 40 140 240 340 140 40 - - 340 40 10935 42 142 242 342 142 42 242 42 - - 10936 44 144 244 344 144 44 - - - - 10937 46 146 246 346 146 46 - - - - 10938 48 148 248 348 148 48 248 48 - - 10939 50 150 250 350 150 50 - - 350 50 10940 52 152 252 352 152 52 - - - - 10941 54 154 254 354 154 54 254 54 - - 10942 56 156 256 356 156 56 - - - - 10943 58 158 258 358 158 58 - - - - 10944 60 160 260 360 160 60 260 60 360 60 10945 62 162 262 362 162 62 - - - - 10946 64 164 264 364 164 64 - - - - 10947 66 166 266 366 166 66 266 66 - - 10948 68 168 268 368 168 68 - - - - 10949 70 170 270 370 170 70 - - 370 70 10950 72 172 272 372 172 72 272 72 - - 10951 74 174 274 374 174 74 - - - - 10952 76 176 276 376 176 76 - - - - 10953 78 178 278 378 178 78 278 78 - - 10954 80 180 280 380 180 80 - - 380 80 10955 82 182 282 382 182 82 - - - - 10956 84 184 284 384 184 84 284 84 - - 10957 86 186 286 386 186 86 - - - - 10958 88 188 288 388 188 88 - - - - 10959 90 190 290 390 190 90 290 90 390 90 10960 92 192 292 392 192 92 - - - - 10961 94 194 294 394 194 94 - - - - 10962} 10963do_execsql_test joinD-401 { 10964 SELECT t1.*, t2.*, t3.*, t4.* 10965 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10966 LEFT JOIN t3 ON t1.c=t3.c 10967 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 10968 WHERE t3.y>0 10969 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10970} { 10971 3 103 203 303 - - 203 3 - - 10972 6 106 206 306 106 6 206 6 - - 10973 9 109 209 309 - - 209 9 - - 10974 12 112 212 312 112 12 212 12 - - 10975 15 115 215 315 - - 215 15 315 15 10976 18 118 218 318 118 18 218 18 - - 10977 21 121 221 321 - - 221 21 - - 10978 24 124 224 324 124 24 224 24 - - 10979 27 127 227 327 - - 227 27 - - 10980 30 130 230 330 130 30 230 30 330 30 10981 33 133 233 333 - - 233 33 - - 10982 36 136 236 336 136 36 236 36 - - 10983 39 139 239 339 - - 239 39 - - 10984 42 142 242 342 142 42 242 42 - - 10985 45 145 245 345 - - 245 45 345 45 10986 48 148 248 348 148 48 248 48 - - 10987 51 151 251 351 - - 251 51 - - 10988 54 154 254 354 154 54 254 54 - - 10989 57 157 257 357 - - 257 57 - - 10990 60 160 260 360 160 60 260 60 360 60 10991 63 163 263 363 - - 263 63 - - 10992 66 166 266 366 166 66 266 66 - - 10993 69 169 269 369 - - 269 69 - - 10994 72 172 272 372 172 72 272 72 - - 10995 75 175 275 375 - - 275 75 375 75 10996 78 178 278 378 178 78 278 78 - - 10997 81 181 281 381 - - 281 81 - - 10998 84 184 284 384 184 84 284 84 - - 10999 87 187 287 387 - - 287 87 - - 11000 90 190 290 390 190 90 290 90 390 90 11001 93 193 293 393 - - 293 93 - - 11002} 11003do_execsql_test joinD-402 { 11004 SELECT t1.*, t2.*, t3.*, t4.* 11005 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11006 LEFT JOIN t3 ON t1.c=t3.c 11007 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 11008 WHERE t3.y>0 OR t3.y IS NULL 11009 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11010} { 11011 1 101 201 301 - - - - - - 11012 2 102 202 302 102 2 - - - - 11013 3 103 203 303 - - 203 3 - - 11014 4 104 204 304 104 4 - - - - 11015 5 105 205 305 - - - - 305 5 11016 6 106 206 306 106 6 206 6 - - 11017 7 107 207 307 - - - - - - 11018 8 108 208 308 108 8 - - - - 11019 9 109 209 309 - - 209 9 - - 11020 10 110 210 310 110 10 - - 310 10 11021 11 111 211 311 - - - - - - 11022 12 112 212 312 112 12 212 12 - - 11023 13 113 213 313 - - - - - - 11024 14 114 214 314 114 14 - - - - 11025 15 115 215 315 - - 215 15 315 15 11026 16 116 216 316 116 16 - - - - 11027 17 117 217 317 - - - - - - 11028 18 118 218 318 118 18 218 18 - - 11029 19 119 219 319 - - - - - - 11030 20 120 220 320 120 20 - - 320 20 11031 21 121 221 321 - - 221 21 - - 11032 22 122 222 322 122 22 - - - - 11033 23 123 223 323 - - - - - - 11034 24 124 224 324 124 24 224 24 - - 11035 25 125 225 325 - - - - 325 25 11036 26 126 226 326 126 26 - - - - 11037 27 127 227 327 - - 227 27 - - 11038 28 128 228 328 128 28 - - - - 11039 29 129 229 329 - - - - - - 11040 30 130 230 330 130 30 230 30 330 30 11041 31 131 231 331 - - - - - - 11042 32 132 232 332 132 32 - - - - 11043 33 133 233 333 - - 233 33 - - 11044 34 134 234 334 134 34 - - - - 11045 35 135 235 335 - - - - 335 35 11046 36 136 236 336 136 36 236 36 - - 11047 37 137 237 337 - - - - - - 11048 38 138 238 338 138 38 - - - - 11049 39 139 239 339 - - 239 39 - - 11050 40 140 240 340 140 40 - - 340 40 11051 41 141 241 341 - - - - - - 11052 42 142 242 342 142 42 242 42 - - 11053 43 143 243 343 - - - - - - 11054 44 144 244 344 144 44 - - - - 11055 45 145 245 345 - - 245 45 345 45 11056 46 146 246 346 146 46 - - - - 11057 47 147 247 347 - - - - - - 11058 48 148 248 348 148 48 248 48 - - 11059 49 149 249 349 - - - - - - 11060 50 150 250 350 150 50 - - 350 50 11061 51 151 251 351 - - 251 51 - - 11062 52 152 252 352 152 52 - - - - 11063 53 153 253 353 - - - - - - 11064 54 154 254 354 154 54 254 54 - - 11065 55 155 255 355 - - - - 355 55 11066 56 156 256 356 156 56 - - - - 11067 57 157 257 357 - - 257 57 - - 11068 58 158 258 358 158 58 - - - - 11069 59 159 259 359 - - - - - - 11070 60 160 260 360 160 60 260 60 360 60 11071 61 161 261 361 - - - - - - 11072 62 162 262 362 162 62 - - - - 11073 63 163 263 363 - - 263 63 - - 11074 64 164 264 364 164 64 - - - - 11075 65 165 265 365 - - - - 365 65 11076 66 166 266 366 166 66 266 66 - - 11077 67 167 267 367 - - - - - - 11078 68 168 268 368 168 68 - - - - 11079 69 169 269 369 - - 269 69 - - 11080 70 170 270 370 170 70 - - 370 70 11081 71 171 271 371 - - - - - - 11082 72 172 272 372 172 72 272 72 - - 11083 73 173 273 373 - - - - - - 11084 74 174 274 374 174 74 - - - - 11085 75 175 275 375 - - 275 75 375 75 11086 76 176 276 376 176 76 - - - - 11087 77 177 277 377 - - - - - - 11088 78 178 278 378 178 78 278 78 - - 11089 79 179 279 379 - - - - - - 11090 80 180 280 380 180 80 - - 380 80 11091 81 181 281 381 - - 281 81 - - 11092 82 182 282 382 182 82 - - - - 11093 83 183 283 383 - - - - - - 11094 84 184 284 384 184 84 284 84 - - 11095 85 185 285 385 - - - - 385 85 11096 86 186 286 386 186 86 - - - - 11097 87 187 287 387 - - 287 87 - - 11098 88 188 288 388 188 88 - - - - 11099 89 189 289 389 - - - - - - 11100 90 190 290 390 190 90 290 90 390 90 11101 91 191 291 391 - - - - - - 11102 92 192 292 392 192 92 - - - - 11103 93 193 293 393 - - 293 93 - - 11104 94 194 294 394 194 94 - - - - 11105 95 195 295 395 - - - - 395 95 11106 96 - 296 396 - - - - - - 11107 97 197 - 397 - - - - - - 11108 98 198 298 - - - - - - - 11109 99 - - - - - - - - - 11110} 11111do_execsql_test joinD-403 { 11112 SELECT t1.*, t2.*, t3.*, t4.* 11113 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11114 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11115 LEFT JOIN t4 ON t1.d=t4.d 11116 WHERE t4.z>0 11117 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11118} { 11119 5 105 205 305 - - - - 305 5 11120 10 110 210 310 110 10 - - 310 10 11121 15 115 215 315 - - 215 15 315 15 11122 20 120 220 320 120 20 - - 320 20 11123 25 125 225 325 - - - - 325 25 11124 30 130 230 330 130 30 230 30 330 30 11125 35 135 235 335 - - - - 335 35 11126 40 140 240 340 140 40 - - 340 40 11127 45 145 245 345 - - 245 45 345 45 11128 50 150 250 350 150 50 - - 350 50 11129 55 155 255 355 - - - - 355 55 11130 60 160 260 360 160 60 260 60 360 60 11131 65 165 265 365 - - - - 365 65 11132 70 170 270 370 170 70 - - 370 70 11133 75 175 275 375 - - 275 75 375 75 11134 80 180 280 380 180 80 - - 380 80 11135 85 185 285 385 - - - - 385 85 11136 90 190 290 390 190 90 290 90 390 90 11137 95 195 295 395 - - - - 395 95 11138} 11139do_execsql_test joinD-404 { 11140 SELECT t1.*, t2.*, t3.*, t4.* 11141 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11142 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11143 LEFT JOIN t4 ON t1.d=t4.d 11144 WHERE t4.z IS NULL OR t4.z>0 11145 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11146} { 11147 1 101 201 301 - - - - - - 11148 2 102 202 302 102 2 - - - - 11149 3 103 203 303 - - 203 3 - - 11150 4 104 204 304 104 4 - - - - 11151 5 105 205 305 - - - - 305 5 11152 6 106 206 306 106 6 206 6 - - 11153 7 107 207 307 - - - - - - 11154 8 108 208 308 108 8 - - - - 11155 9 109 209 309 - - 209 9 - - 11156 10 110 210 310 110 10 - - 310 10 11157 11 111 211 311 - - - - - - 11158 12 112 212 312 112 12 212 12 - - 11159 13 113 213 313 - - - - - - 11160 14 114 214 314 114 14 - - - - 11161 15 115 215 315 - - 215 15 315 15 11162 16 116 216 316 116 16 - - - - 11163 17 117 217 317 - - - - - - 11164 18 118 218 318 118 18 218 18 - - 11165 19 119 219 319 - - - - - - 11166 20 120 220 320 120 20 - - 320 20 11167 21 121 221 321 - - 221 21 - - 11168 22 122 222 322 122 22 - - - - 11169 23 123 223 323 - - - - - - 11170 24 124 224 324 124 24 224 24 - - 11171 25 125 225 325 - - - - 325 25 11172 26 126 226 326 126 26 - - - - 11173 27 127 227 327 - - 227 27 - - 11174 28 128 228 328 128 28 - - - - 11175 29 129 229 329 - - - - - - 11176 30 130 230 330 130 30 230 30 330 30 11177 31 131 231 331 - - - - - - 11178 32 132 232 332 132 32 - - - - 11179 33 133 233 333 - - 233 33 - - 11180 34 134 234 334 134 34 - - - - 11181 35 135 235 335 - - - - 335 35 11182 36 136 236 336 136 36 236 36 - - 11183 37 137 237 337 - - - - - - 11184 38 138 238 338 138 38 - - - - 11185 39 139 239 339 - - 239 39 - - 11186 40 140 240 340 140 40 - - 340 40 11187 41 141 241 341 - - - - - - 11188 42 142 242 342 142 42 242 42 - - 11189 43 143 243 343 - - - - - - 11190 44 144 244 344 144 44 - - - - 11191 45 145 245 345 - - 245 45 345 45 11192 46 146 246 346 146 46 - - - - 11193 47 147 247 347 - - - - - - 11194 48 148 248 348 148 48 248 48 - - 11195 49 149 249 349 - - - - - - 11196 50 150 250 350 150 50 - - 350 50 11197 51 151 251 351 - - 251 51 - - 11198 52 152 252 352 152 52 - - - - 11199 53 153 253 353 - - - - - - 11200 54 154 254 354 154 54 254 54 - - 11201 55 155 255 355 - - - - 355 55 11202 56 156 256 356 156 56 - - - - 11203 57 157 257 357 - - 257 57 - - 11204 58 158 258 358 158 58 - - - - 11205 59 159 259 359 - - - - - - 11206 60 160 260 360 160 60 260 60 360 60 11207 61 161 261 361 - - - - - - 11208 62 162 262 362 162 62 - - - - 11209 63 163 263 363 - - 263 63 - - 11210 64 164 264 364 164 64 - - - - 11211 65 165 265 365 - - - - 365 65 11212 66 166 266 366 166 66 266 66 - - 11213 67 167 267 367 - - - - - - 11214 68 168 268 368 168 68 - - - - 11215 69 169 269 369 - - 269 69 - - 11216 70 170 270 370 170 70 - - 370 70 11217 71 171 271 371 - - - - - - 11218 72 172 272 372 172 72 272 72 - - 11219 73 173 273 373 - - - - - - 11220 74 174 274 374 174 74 - - - - 11221 75 175 275 375 - - 275 75 375 75 11222 76 176 276 376 176 76 - - - - 11223 77 177 277 377 - - - - - - 11224 78 178 278 378 178 78 278 78 - - 11225 79 179 279 379 - - - - - - 11226 80 180 280 380 180 80 - - 380 80 11227 81 181 281 381 - - 281 81 - - 11228 82 182 282 382 182 82 - - - - 11229 83 183 283 383 - - - - - - 11230 84 184 284 384 184 84 284 84 - - 11231 85 185 285 385 - - - - 385 85 11232 86 186 286 386 186 86 - - - - 11233 87 187 287 387 - - 287 87 - - 11234 88 188 288 388 188 88 - - - - 11235 89 189 289 389 - - - - - - 11236 90 190 290 390 190 90 290 90 390 90 11237 91 191 291 391 - - - - - - 11238 92 192 292 392 192 92 - - - - 11239 93 193 293 393 - - 293 93 - - 11240 94 194 294 394 194 94 - - - - 11241 95 195 295 395 - - - - 395 95 11242 96 - 296 396 - - - - - - 11243 97 197 - 397 - - - - - - 11244 98 198 298 - - - - - - - 11245 99 - - - - - - - - - 11246} 11247do_execsql_test joinD-405 { 11248 SELECT t1.*, t2.*, t3.*, t4.* 11249 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 11250 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11251 LEFT JOIN t4 ON t1.d=t4.d 11252 WHERE t2.x>0 AND t4.z>0 11253 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11254} { 11255 10 110 210 310 110 10 - - 310 10 11256 20 120 220 320 120 20 - - 320 20 11257 30 130 230 330 130 30 230 30 330 30 11258 40 140 240 340 140 40 - - 340 40 11259 50 150 250 350 150 50 - - 350 50 11260 60 160 260 360 160 60 260 60 360 60 11261 70 170 270 370 170 70 - - 370 70 11262 80 180 280 380 180 80 - - 380 80 11263 90 190 290 390 190 90 290 90 390 90 11264} 11265do_execsql_test joinD-406 { 11266 SELECT t1.*, t2.*, t3.*, t4.* 11267 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11268 LEFT JOIN t3 ON t1.c=t3.c 11269 LEFT JOIN t4 ON t1.d=t4.d 11270 WHERE t4.z>0 AND t3.y>0 11271 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11272} { 11273 15 115 215 315 - - 215 15 315 15 11274 30 130 230 330 130 30 230 30 330 30 11275 45 145 245 345 - - 245 45 345 45 11276 60 160 260 360 160 60 260 60 360 60 11277 75 175 275 375 - - 275 75 375 75 11278 90 190 290 390 190 90 290 90 390 90 11279} 11280do_execsql_test joinD-407 { 11281 SELECT t1.*, t2.*, t3.*, t4.* 11282 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 11283 LEFT JOIN t3 ON t1.c=t3.c 11284 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 11285 WHERE t2.x>0 AND t3.y>0 11286 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11287} { 11288 6 106 206 306 106 6 206 6 - - 11289 12 112 212 312 112 12 212 12 - - 11290 18 118 218 318 118 18 218 18 - - 11291 24 124 224 324 124 24 224 24 - - 11292 30 130 230 330 130 30 230 30 330 30 11293 36 136 236 336 136 36 236 36 - - 11294 42 142 242 342 142 42 242 42 - - 11295 48 148 248 348 148 48 248 48 - - 11296 54 154 254 354 154 54 254 54 - - 11297 60 160 260 360 160 60 260 60 360 60 11298 66 166 266 366 166 66 266 66 - - 11299 72 172 272 372 172 72 272 72 - - 11300 78 178 278 378 178 78 278 78 - - 11301 84 184 284 384 184 84 284 84 - - 11302 90 190 290 390 190 90 290 90 390 90 11303} 11304do_execsql_test joinD-408 { 11305 SELECT t1.*, t2.*, t3.*, t4.* 11306 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 11307 LEFT JOIN t3 ON t1.c=t3.c 11308 LEFT JOIN t4 ON t1.d=t4.d 11309 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 11310 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11311} { 11312 30 130 230 330 130 30 230 30 330 30 11313 60 160 260 360 160 60 260 60 360 60 11314 90 190 290 390 190 90 290 90 390 90 11315} 11316do_execsql_test joinD-409 { 11317 SELECT t1.*, t2.*, t3.*, t4.* 11318 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 11319 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 11320 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 11321 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11322} { 11323 0 100 200 300 - - - - - - 11324 1 101 201 301 - - - - - - 11325 2 102 202 302 102 2 - - - - 11326 3 103 203 303 - - 203 3 - - 11327 4 104 204 304 104 4 - - - - 11328 5 105 205 305 - - - - 305 5 11329 6 106 206 306 106 6 206 6 - - 11330 7 107 207 307 - - - - - - 11331 8 108 208 308 108 8 - - - - 11332 9 109 209 309 - - 209 9 - - 11333 10 110 210 310 110 10 - - 310 10 11334 11 111 211 311 - - - - - - 11335 12 112 212 312 112 12 212 12 - - 11336 13 113 213 313 - - - - - - 11337 14 114 214 314 114 14 - - - - 11338 15 115 215 315 - - 215 15 315 15 11339 16 116 216 316 116 16 - - - - 11340 17 117 217 317 - - - - - - 11341 18 118 218 318 118 18 218 18 - - 11342 19 119 219 319 - - - - - - 11343 20 120 220 320 120 20 - - 320 20 11344 21 121 221 321 - - 221 21 - - 11345 22 122 222 322 122 22 - - - - 11346 23 123 223 323 - - - - - - 11347 24 124 224 324 124 24 224 24 - - 11348 25 125 225 325 - - - - 325 25 11349 26 126 226 326 126 26 - - - - 11350 27 127 227 327 - - 227 27 - - 11351 28 128 228 328 128 28 - - - - 11352 29 129 229 329 - - - - - - 11353 30 130 230 330 130 30 230 30 330 30 11354 31 131 231 331 - - - - - - 11355 32 132 232 332 132 32 - - - - 11356 33 133 233 333 - - 233 33 - - 11357 34 134 234 334 134 34 - - - - 11358 35 135 235 335 - - - - 335 35 11359 36 136 236 336 136 36 236 36 - - 11360 37 137 237 337 - - - - - - 11361 38 138 238 338 138 38 - - - - 11362 39 139 239 339 - - 239 39 - - 11363 40 140 240 340 140 40 - - 340 40 11364 41 141 241 341 - - - - - - 11365 42 142 242 342 142 42 242 42 - - 11366 43 143 243 343 - - - - - - 11367 44 144 244 344 144 44 - - - - 11368 45 145 245 345 - - 245 45 345 45 11369 46 146 246 346 146 46 - - - - 11370 47 147 247 347 - - - - - - 11371 48 148 248 348 148 48 248 48 - - 11372 49 149 249 349 - - - - - - 11373 50 150 250 350 150 50 - - 350 50 11374 51 151 251 351 - - 251 51 - - 11375 52 152 252 352 152 52 - - - - 11376 53 153 253 353 - - - - - - 11377 54 154 254 354 154 54 254 54 - - 11378 55 155 255 355 - - - - 355 55 11379 56 156 256 356 156 56 - - - - 11380 57 157 257 357 - - 257 57 - - 11381 58 158 258 358 158 58 - - - - 11382 59 159 259 359 - - - - - - 11383 60 160 260 360 160 60 260 60 360 60 11384 61 161 261 361 - - - - - - 11385 62 162 262 362 162 62 - - - - 11386 63 163 263 363 - - 263 63 - - 11387 64 164 264 364 164 64 - - - - 11388 65 165 265 365 - - - - 365 65 11389 66 166 266 366 166 66 266 66 - - 11390 67 167 267 367 - - - - - - 11391 68 168 268 368 168 68 - - - - 11392 69 169 269 369 - - 269 69 - - 11393 70 170 270 370 170 70 - - 370 70 11394 71 171 271 371 - - - - - - 11395 72 172 272 372 172 72 272 72 - - 11396 73 173 273 373 - - - - - - 11397 74 174 274 374 174 74 - - - - 11398 75 175 275 375 - - 275 75 375 75 11399 76 176 276 376 176 76 - - - - 11400 77 177 277 377 - - - - - - 11401 78 178 278 378 178 78 278 78 - - 11402 79 179 279 379 - - - - - - 11403 80 180 280 380 180 80 - - 380 80 11404 81 181 281 381 - - 281 81 - - 11405 82 182 282 382 182 82 - - - - 11406 83 183 283 383 - - - - - - 11407 84 184 284 384 184 84 284 84 - - 11408 85 185 285 385 - - - - 385 85 11409 86 186 286 386 186 86 - - - - 11410 87 187 287 387 - - 287 87 - - 11411 88 188 288 388 188 88 - - - - 11412 89 189 289 389 - - - - - - 11413 90 190 290 390 190 90 290 90 390 90 11414 91 191 291 391 - - - - - - 11415 92 192 292 392 192 92 - - - - 11416 93 193 293 393 - - 293 93 - - 11417 94 194 294 394 194 94 - - - - 11418 95 195 295 395 - - - - 395 95 11419 96 - 296 396 - - - - - - 11420 97 197 - 397 - - - - - - 11421 98 198 298 - - - - - - - 11422 99 - - - - - - - - - 11423} 11424do_execsql_test joinD-410 { 11425 SELECT t1.*, t2.*, t3.*, t4.* 11426 FROM t1 LEFT JOIN t2 ON t2.x>0 11427 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 11428 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 11429 WHERE t1.b IS NOT DISTINCT FROM t2.b 11430 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11431} { 11432 2 102 202 302 102 2 - - - - 11433 4 104 204 304 104 4 - - - - 11434 6 106 206 306 106 6 206 6 - - 11435 8 108 208 308 108 8 - - - - 11436 10 110 210 310 110 10 - - 310 10 11437 12 112 212 312 112 12 212 12 - - 11438 14 114 214 314 114 14 - - - - 11439 16 116 216 316 116 16 - - - - 11440 18 118 218 318 118 18 218 18 - - 11441 20 120 220 320 120 20 - - 320 20 11442 22 122 222 322 122 22 - - - - 11443 24 124 224 324 124 24 224 24 - - 11444 26 126 226 326 126 26 - - - - 11445 28 128 228 328 128 28 - - - - 11446 30 130 230 330 130 30 230 30 330 30 11447 32 132 232 332 132 32 - - - - 11448 34 134 234 334 134 34 - - - - 11449 36 136 236 336 136 36 236 36 - - 11450 38 138 238 338 138 38 - - - - 11451 40 140 240 340 140 40 - - 340 40 11452 42 142 242 342 142 42 242 42 - - 11453 44 144 244 344 144 44 - - - - 11454 46 146 246 346 146 46 - - - - 11455 48 148 248 348 148 48 248 48 - - 11456 50 150 250 350 150 50 - - 350 50 11457 52 152 252 352 152 52 - - - - 11458 54 154 254 354 154 54 254 54 - - 11459 56 156 256 356 156 56 - - - - 11460 58 158 258 358 158 58 - - - - 11461 60 160 260 360 160 60 260 60 360 60 11462 62 162 262 362 162 62 - - - - 11463 64 164 264 364 164 64 - - - - 11464 66 166 266 366 166 66 266 66 - - 11465 68 168 268 368 168 68 - - - - 11466 70 170 270 370 170 70 - - 370 70 11467 72 172 272 372 172 72 272 72 - - 11468 74 174 274 374 174 74 - - - - 11469 76 176 276 376 176 76 - - - - 11470 78 178 278 378 178 78 278 78 - - 11471 80 180 280 380 180 80 - - 380 80 11472 82 182 282 382 182 82 - - - - 11473 84 184 284 384 184 84 284 84 - - 11474 86 186 286 386 186 86 - - - - 11475 88 188 288 388 188 88 - - - - 11476 90 190 290 390 190 90 290 90 390 90 11477 92 192 292 392 192 92 - - - - 11478 94 194 294 394 194 94 - - - - 11479} 11480do_execsql_test joinD-411 { 11481 SELECT t1.*, t2.*, t3.*, t4.* 11482 FROM t1 LEFT JOIN t2 ON t2.x>0 11483 LEFT JOIN t3 ON t3.y>0 11484 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 11485 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 11486 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11487} { 11488 6 106 206 306 106 6 206 6 - - 11489 12 112 212 312 112 12 212 12 - - 11490 18 118 218 318 118 18 218 18 - - 11491 24 124 224 324 124 24 224 24 - - 11492 30 130 230 330 130 30 230 30 330 30 11493 36 136 236 336 136 36 236 36 - - 11494 42 142 242 342 142 42 242 42 - - 11495 48 148 248 348 148 48 248 48 - - 11496 54 154 254 354 154 54 254 54 - - 11497 60 160 260 360 160 60 260 60 360 60 11498 66 166 266 366 166 66 266 66 - - 11499 72 172 272 372 172 72 272 72 - - 11500 78 178 278 378 178 78 278 78 - - 11501 84 184 284 384 184 84 284 84 - - 11502 90 190 290 390 190 90 290 90 390 90 11503} 11504do_execsql_test joinD-412 { 11505 SELECT t1.*, t2.*, t3.*, t4.* 11506 FROM t1 LEFT JOIN t2 ON t2.x>0 11507 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 11508 LEFT JOIN t4 ON t4.z>0 11509 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 11510 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11511} { 11512 10 110 210 310 110 10 - - 310 10 11513 20 120 220 320 120 20 - - 320 20 11514 30 130 230 330 130 30 230 30 330 30 11515 40 140 240 340 140 40 - - 340 40 11516 50 150 250 350 150 50 - - 350 50 11517 60 160 260 360 160 60 260 60 360 60 11518 70 170 270 370 170 70 - - 370 70 11519 80 180 280 380 180 80 - - 380 80 11520 90 190 290 390 190 90 290 90 390 90 11521} 11522do_execsql_test joinD-413 { 11523 SELECT t1.*, t2.*, t3.*, t4.* 11524 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 11525 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11526 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 11527 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11528} { 11529 0 100 200 300 - - - - - - 11530 1 101 201 301 - - - - - - 11531 2 102 202 302 102 2 - - - - 11532 3 103 203 303 - - 203 3 - - 11533 4 104 204 304 104 4 - - - - 11534 5 105 205 305 - - - - 305 5 11535 6 106 206 306 106 6 206 6 - - 11536 7 107 207 307 - - - - - - 11537 8 108 208 308 108 8 - - - - 11538 9 109 209 309 - - 209 9 - - 11539 10 110 210 310 110 10 - - 310 10 11540 11 111 211 311 - - - - - - 11541 12 112 212 312 112 12 212 12 - - 11542 13 113 213 313 - - - - - - 11543 14 114 214 314 114 14 - - - - 11544 15 115 215 315 - - 215 15 315 15 11545 16 116 216 316 116 16 - - - - 11546 17 117 217 317 - - - - - - 11547 18 118 218 318 118 18 218 18 - - 11548 19 119 219 319 - - - - - - 11549 20 120 220 320 120 20 - - 320 20 11550 21 121 221 321 - - 221 21 - - 11551 22 122 222 322 122 22 - - - - 11552 23 123 223 323 - - - - - - 11553 24 124 224 324 124 24 224 24 - - 11554 25 125 225 325 - - - - 325 25 11555 26 126 226 326 126 26 - - - - 11556 27 127 227 327 - - 227 27 - - 11557 28 128 228 328 128 28 - - - - 11558 29 129 229 329 - - - - - - 11559 30 130 230 330 130 30 230 30 330 30 11560 31 131 231 331 - - - - - - 11561 32 132 232 332 132 32 - - - - 11562 33 133 233 333 - - 233 33 - - 11563 34 134 234 334 134 34 - - - - 11564 35 135 235 335 - - - - 335 35 11565 36 136 236 336 136 36 236 36 - - 11566 37 137 237 337 - - - - - - 11567 38 138 238 338 138 38 - - - - 11568 39 139 239 339 - - 239 39 - - 11569 40 140 240 340 140 40 - - 340 40 11570 41 141 241 341 - - - - - - 11571 42 142 242 342 142 42 242 42 - - 11572 43 143 243 343 - - - - - - 11573 44 144 244 344 144 44 - - - - 11574 45 145 245 345 - - 245 45 345 45 11575 46 146 246 346 146 46 - - - - 11576 47 147 247 347 - - - - - - 11577 48 148 248 348 148 48 248 48 - - 11578 49 149 249 349 - - - - - - 11579 50 150 250 350 150 50 - - 350 50 11580 51 151 251 351 - - 251 51 - - 11581 52 152 252 352 152 52 - - - - 11582 53 153 253 353 - - - - - - 11583 54 154 254 354 154 54 254 54 - - 11584 55 155 255 355 - - - - 355 55 11585 56 156 256 356 156 56 - - - - 11586 57 157 257 357 - - 257 57 - - 11587 58 158 258 358 158 58 - - - - 11588 59 159 259 359 - - - - - - 11589 60 160 260 360 160 60 260 60 360 60 11590 61 161 261 361 - - - - - - 11591 62 162 262 362 162 62 - - - - 11592 63 163 263 363 - - 263 63 - - 11593 64 164 264 364 164 64 - - - - 11594 65 165 265 365 - - - - 365 65 11595 66 166 266 366 166 66 266 66 - - 11596 67 167 267 367 - - - - - - 11597 68 168 268 368 168 68 - - - - 11598 69 169 269 369 - - 269 69 - - 11599 70 170 270 370 170 70 - - 370 70 11600 71 171 271 371 - - - - - - 11601 72 172 272 372 172 72 272 72 - - 11602 73 173 273 373 - - - - - - 11603 74 174 274 374 174 74 - - - - 11604 75 175 275 375 - - 275 75 375 75 11605 76 176 276 376 176 76 - - - - 11606 77 177 277 377 - - - - - - 11607 78 178 278 378 178 78 278 78 - - 11608 79 179 279 379 - - - - - - 11609 80 180 280 380 180 80 - - 380 80 11610 81 181 281 381 - - 281 81 - - 11611 82 182 282 382 182 82 - - - - 11612 83 183 283 383 - - - - - - 11613 84 184 284 384 184 84 284 84 - - 11614 85 185 285 385 - - - - 385 85 11615 86 186 286 386 186 86 - - - - 11616 87 187 287 387 - - 287 87 - - 11617 88 188 288 388 188 88 - - - - 11618 89 189 289 389 - - - - - - 11619 90 190 290 390 190 90 290 90 390 90 11620 91 191 291 391 - - - - - - 11621 92 192 292 392 192 92 - - - - 11622 93 193 293 393 - - 293 93 - - 11623 94 194 294 394 194 94 - - - - 11624 95 195 295 395 - - - - 395 95 11625 96 - 296 396 - - - - - - 11626 97 197 - 397 - - - - - - 11627 98 198 298 - - - - - - - 11628 99 - - - - - - - - - 11629} 11630do_execsql_test joinD-414 { 11631 SELECT t1.*, t2.*, t3.*, t4.* 11632 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11633 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 11634 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 11635 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11636} { 11637 0 100 200 300 - - - - - - 11638 1 101 201 301 - - - - - - 11639 2 102 202 302 102 2 - - - - 11640 3 103 203 303 - - 203 3 - - 11641 4 104 204 304 104 4 - - - - 11642 5 105 205 305 - - - - 305 5 11643 6 106 206 306 106 6 206 6 - - 11644 7 107 207 307 - - - - - - 11645 8 108 208 308 108 8 - - - - 11646 9 109 209 309 - - 209 9 - - 11647 10 110 210 310 110 10 - - 310 10 11648 11 111 211 311 - - - - - - 11649 12 112 212 312 112 12 212 12 - - 11650 13 113 213 313 - - - - - - 11651 14 114 214 314 114 14 - - - - 11652 15 115 215 315 - - 215 15 315 15 11653 16 116 216 316 116 16 - - - - 11654 17 117 217 317 - - - - - - 11655 18 118 218 318 118 18 218 18 - - 11656 19 119 219 319 - - - - - - 11657 20 120 220 320 120 20 - - 320 20 11658 21 121 221 321 - - 221 21 - - 11659 22 122 222 322 122 22 - - - - 11660 23 123 223 323 - - - - - - 11661 24 124 224 324 124 24 224 24 - - 11662 25 125 225 325 - - - - 325 25 11663 26 126 226 326 126 26 - - - - 11664 27 127 227 327 - - 227 27 - - 11665 28 128 228 328 128 28 - - - - 11666 29 129 229 329 - - - - - - 11667 30 130 230 330 130 30 230 30 330 30 11668 31 131 231 331 - - - - - - 11669 32 132 232 332 132 32 - - - - 11670 33 133 233 333 - - 233 33 - - 11671 34 134 234 334 134 34 - - - - 11672 35 135 235 335 - - - - 335 35 11673 36 136 236 336 136 36 236 36 - - 11674 37 137 237 337 - - - - - - 11675 38 138 238 338 138 38 - - - - 11676 39 139 239 339 - - 239 39 - - 11677 40 140 240 340 140 40 - - 340 40 11678 41 141 241 341 - - - - - - 11679 42 142 242 342 142 42 242 42 - - 11680 43 143 243 343 - - - - - - 11681 44 144 244 344 144 44 - - - - 11682 45 145 245 345 - - 245 45 345 45 11683 46 146 246 346 146 46 - - - - 11684 47 147 247 347 - - - - - - 11685 48 148 248 348 148 48 248 48 - - 11686 49 149 249 349 - - - - - - 11687 50 150 250 350 150 50 - - 350 50 11688 51 151 251 351 - - 251 51 - - 11689 52 152 252 352 152 52 - - - - 11690 53 153 253 353 - - - - - - 11691 54 154 254 354 154 54 254 54 - - 11692 55 155 255 355 - - - - 355 55 11693 56 156 256 356 156 56 - - - - 11694 57 157 257 357 - - 257 57 - - 11695 58 158 258 358 158 58 - - - - 11696 59 159 259 359 - - - - - - 11697 60 160 260 360 160 60 260 60 360 60 11698 61 161 261 361 - - - - - - 11699 62 162 262 362 162 62 - - - - 11700 63 163 263 363 - - 263 63 - - 11701 64 164 264 364 164 64 - - - - 11702 65 165 265 365 - - - - 365 65 11703 66 166 266 366 166 66 266 66 - - 11704 67 167 267 367 - - - - - - 11705 68 168 268 368 168 68 - - - - 11706 69 169 269 369 - - 269 69 - - 11707 70 170 270 370 170 70 - - 370 70 11708 71 171 271 371 - - - - - - 11709 72 172 272 372 172 72 272 72 - - 11710 73 173 273 373 - - - - - - 11711 74 174 274 374 174 74 - - - - 11712 75 175 275 375 - - 275 75 375 75 11713 76 176 276 376 176 76 - - - - 11714 77 177 277 377 - - - - - - 11715 78 178 278 378 178 78 278 78 - - 11716 79 179 279 379 - - - - - - 11717 80 180 280 380 180 80 - - 380 80 11718 81 181 281 381 - - 281 81 - - 11719 82 182 282 382 182 82 - - - - 11720 83 183 283 383 - - - - - - 11721 84 184 284 384 184 84 284 84 - - 11722 85 185 285 385 - - - - 385 85 11723 86 186 286 386 186 86 - - - - 11724 87 187 287 387 - - 287 87 - - 11725 88 188 288 388 188 88 - - - - 11726 89 189 289 389 - - - - - - 11727 90 190 290 390 190 90 290 90 390 90 11728 91 191 291 391 - - - - - - 11729 92 192 292 392 192 92 - - - - 11730 93 193 293 393 - - 293 93 - - 11731 94 194 294 394 194 94 - - - - 11732 95 195 295 395 - - - - 395 95 11733 96 - 296 396 - - - - - - 11734 97 197 - 397 - - - - - - 11735 98 198 298 - - - - - - - 11736 99 - - - - - - - - - 11737} 11738do_execsql_test joinD-415 { 11739 SELECT t1.*, t2.*, t3.*, t4.* 11740 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11741 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11742 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 11743 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11744} { 11745 5 105 205 305 - - - - 305 5 11746 10 110 210 310 110 10 - - 310 10 11747 15 115 215 315 - - 215 15 315 15 11748 20 120 220 320 120 20 - - 320 20 11749 25 125 225 325 - - - - 325 25 11750 30 130 230 330 130 30 230 30 330 30 11751 35 135 235 335 - - - - 335 35 11752 40 140 240 340 140 40 - - 340 40 11753 45 145 245 345 - - 245 45 345 45 11754 50 150 250 350 150 50 - - 350 50 11755 55 155 255 355 - - - - 355 55 11756 60 160 260 360 160 60 260 60 360 60 11757 65 165 265 365 - - - - 365 65 11758 70 170 270 370 170 70 - - 370 70 11759 75 175 275 375 - - 275 75 375 75 11760 80 180 280 380 180 80 - - 380 80 11761 85 185 285 385 - - - - 385 85 11762 90 190 290 390 190 90 290 90 390 90 11763 95 195 295 395 - - - - 395 95 11764 - - - - - - - - 300 0 11765} 11766do_execsql_test joinD-416 { 11767 SELECT t1.*, t2.*, t3.*, t4.* 11768 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 11769 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11770 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 11771 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11772} { 11773 5 105 205 305 - - - - 305 5 11774 10 110 210 310 110 10 - - 310 10 11775 15 115 215 315 - - 215 15 315 15 11776 20 120 220 320 120 20 - - 320 20 11777 25 125 225 325 - - - - 325 25 11778 30 130 230 330 130 30 230 30 330 30 11779 35 135 235 335 - - - - 335 35 11780 40 140 240 340 140 40 - - 340 40 11781 45 145 245 345 - - 245 45 345 45 11782 50 150 250 350 150 50 - - 350 50 11783 55 155 255 355 - - - - 355 55 11784 60 160 260 360 160 60 260 60 360 60 11785 65 165 265 365 - - - - 365 65 11786 70 170 270 370 170 70 - - 370 70 11787 75 175 275 375 - - 275 75 375 75 11788 80 180 280 380 180 80 - - 380 80 11789 85 185 285 385 - - - - 385 85 11790 90 190 290 390 190 90 290 90 390 90 11791 95 195 295 395 - - - - 395 95 11792 - - - - - - - - 300 0 11793} 11794do_execsql_test joinD-417 { 11795 SELECT t1.*, t2.*, t3.*, t4.* 11796 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 11797 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11798 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 11799 WHERE t2.x>0 11800 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11801} { 11802 10 110 210 310 110 10 - - 310 10 11803 20 120 220 320 120 20 - - 320 20 11804 30 130 230 330 130 30 230 30 330 30 11805 40 140 240 340 140 40 - - 340 40 11806 50 150 250 350 150 50 - - 350 50 11807 60 160 260 360 160 60 260 60 360 60 11808 70 170 270 370 170 70 - - 370 70 11809 80 180 280 380 180 80 - - 380 80 11810 90 190 290 390 190 90 290 90 390 90 11811} 11812do_execsql_test joinD-418 { 11813 SELECT t1.*, t2.*, t3.*, t4.* 11814 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 11815 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11816 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 11817 WHERE (t2.x>0 OR t2.x IS NULL) 11818 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11819} { 11820 5 105 205 305 - - - - 305 5 11821 10 110 210 310 110 10 - - 310 10 11822 15 115 215 315 - - 215 15 315 15 11823 20 120 220 320 120 20 - - 320 20 11824 25 125 225 325 - - - - 325 25 11825 30 130 230 330 130 30 230 30 330 30 11826 35 135 235 335 - - - - 335 35 11827 40 140 240 340 140 40 - - 340 40 11828 45 145 245 345 - - 245 45 345 45 11829 50 150 250 350 150 50 - - 350 50 11830 55 155 255 355 - - - - 355 55 11831 60 160 260 360 160 60 260 60 360 60 11832 65 165 265 365 - - - - 365 65 11833 70 170 270 370 170 70 - - 370 70 11834 75 175 275 375 - - 275 75 375 75 11835 80 180 280 380 180 80 - - 380 80 11836 85 185 285 385 - - - - 385 85 11837 90 190 290 390 190 90 290 90 390 90 11838 95 195 295 395 - - - - 395 95 11839 - - - - - - - - 300 0 11840} 11841do_execsql_test joinD-419 { 11842 SELECT t1.*, t2.*, t3.*, t4.* 11843 FROM t1 LEFT JOIN t2 ON true 11844 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11845 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 11846 WHERE t1.b=t2.b AND t2.x>0 11847 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11848} { 11849 10 110 210 310 110 10 - - 310 10 11850 20 120 220 320 120 20 - - 320 20 11851 30 130 230 330 130 30 230 30 330 30 11852 40 140 240 340 140 40 - - 340 40 11853 50 150 250 350 150 50 - - 350 50 11854 60 160 260 360 160 60 260 60 360 60 11855 70 170 270 370 170 70 - - 370 70 11856 80 180 280 380 180 80 - - 380 80 11857 90 190 290 390 190 90 290 90 390 90 11858} 11859do_execsql_test joinD-420 { 11860 SELECT t1.*, t2.*, t3.*, t4.* 11861 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11862 LEFT JOIN t3 ON t1.c=t3.c 11863 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 11864 WHERE t3.y>0 11865 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11866} { 11867 15 115 215 315 - - 215 15 315 15 11868 30 130 230 330 130 30 230 30 330 30 11869 45 145 245 345 - - 245 45 345 45 11870 60 160 260 360 160 60 260 60 360 60 11871 75 175 275 375 - - 275 75 375 75 11872 90 190 290 390 190 90 290 90 390 90 11873} 11874do_execsql_test joinD-421 { 11875 SELECT t1.*, t2.*, t3.*, t4.* 11876 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11877 LEFT JOIN t3 ON t1.c=t3.c 11878 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 11879 WHERE t3.y>0 OR t3.y IS NULL 11880 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11881} { 11882 5 105 205 305 - - - - 305 5 11883 10 110 210 310 110 10 - - 310 10 11884 15 115 215 315 - - 215 15 315 15 11885 20 120 220 320 120 20 - - 320 20 11886 25 125 225 325 - - - - 325 25 11887 30 130 230 330 130 30 230 30 330 30 11888 35 135 235 335 - - - - 335 35 11889 40 140 240 340 140 40 - - 340 40 11890 45 145 245 345 - - 245 45 345 45 11891 50 150 250 350 150 50 - - 350 50 11892 55 155 255 355 - - - - 355 55 11893 60 160 260 360 160 60 260 60 360 60 11894 65 165 265 365 - - - - 365 65 11895 70 170 270 370 170 70 - - 370 70 11896 75 175 275 375 - - 275 75 375 75 11897 80 180 280 380 180 80 - - 380 80 11898 85 185 285 385 - - - - 385 85 11899 90 190 290 390 190 90 290 90 390 90 11900 95 195 295 395 - - - - 395 95 11901 - - - - - - - - 300 0 11902} 11903do_execsql_test joinD-422 { 11904 SELECT t1.*, t2.*, t3.*, t4.* 11905 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11906 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11907 RIGHT JOIN t4 ON t1.d=t4.d 11908 WHERE t4.z>0 11909 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11910} { 11911 5 105 205 305 - - - - 305 5 11912 10 110 210 310 110 10 - - 310 10 11913 15 115 215 315 - - 215 15 315 15 11914 20 120 220 320 120 20 - - 320 20 11915 25 125 225 325 - - - - 325 25 11916 30 130 230 330 130 30 230 30 330 30 11917 35 135 235 335 - - - - 335 35 11918 40 140 240 340 140 40 - - 340 40 11919 45 145 245 345 - - 245 45 345 45 11920 50 150 250 350 150 50 - - 350 50 11921 55 155 255 355 - - - - 355 55 11922 60 160 260 360 160 60 260 60 360 60 11923 65 165 265 365 - - - - 365 65 11924 70 170 270 370 170 70 - - 370 70 11925 75 175 275 375 - - 275 75 375 75 11926 80 180 280 380 180 80 - - 380 80 11927 85 185 285 385 - - - - 385 85 11928 90 190 290 390 190 90 290 90 390 90 11929 95 195 295 395 - - - - 395 95 11930} 11931do_execsql_test joinD-423 { 11932 SELECT t1.*, t2.*, t3.*, t4.* 11933 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11934 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11935 RIGHT JOIN t4 ON t1.d=t4.d 11936 WHERE t4.z IS NULL OR t4.z>0 11937 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11938} { 11939 5 105 205 305 - - - - 305 5 11940 10 110 210 310 110 10 - - 310 10 11941 15 115 215 315 - - 215 15 315 15 11942 20 120 220 320 120 20 - - 320 20 11943 25 125 225 325 - - - - 325 25 11944 30 130 230 330 130 30 230 30 330 30 11945 35 135 235 335 - - - - 335 35 11946 40 140 240 340 140 40 - - 340 40 11947 45 145 245 345 - - 245 45 345 45 11948 50 150 250 350 150 50 - - 350 50 11949 55 155 255 355 - - - - 355 55 11950 60 160 260 360 160 60 260 60 360 60 11951 65 165 265 365 - - - - 365 65 11952 70 170 270 370 170 70 - - 370 70 11953 75 175 275 375 - - 275 75 375 75 11954 80 180 280 380 180 80 - - 380 80 11955 85 185 285 385 - - - - 385 85 11956 90 190 290 390 190 90 290 90 390 90 11957 95 195 295 395 - - - - 395 95 11958} 11959do_execsql_test joinD-424 { 11960 SELECT t1.*, t2.*, t3.*, t4.* 11961 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 11962 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11963 RIGHT JOIN t4 ON t1.d=t4.d 11964 WHERE t2.x>0 AND t4.z>0 11965 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11966} { 11967 10 110 210 310 110 10 - - 310 10 11968 20 120 220 320 120 20 - - 320 20 11969 30 130 230 330 130 30 230 30 330 30 11970 40 140 240 340 140 40 - - 340 40 11971 50 150 250 350 150 50 - - 350 50 11972 60 160 260 360 160 60 260 60 360 60 11973 70 170 270 370 170 70 - - 370 70 11974 80 180 280 380 180 80 - - 380 80 11975 90 190 290 390 190 90 290 90 390 90 11976} 11977do_execsql_test joinD-425 { 11978 SELECT t1.*, t2.*, t3.*, t4.* 11979 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11980 LEFT JOIN t3 ON t1.c=t3.c 11981 RIGHT JOIN t4 ON t1.d=t4.d 11982 WHERE t4.z>0 AND t3.y>0 11983 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11984} { 11985 15 115 215 315 - - 215 15 315 15 11986 30 130 230 330 130 30 230 30 330 30 11987 45 145 245 345 - - 245 45 345 45 11988 60 160 260 360 160 60 260 60 360 60 11989 75 175 275 375 - - 275 75 375 75 11990 90 190 290 390 190 90 290 90 390 90 11991} 11992do_execsql_test joinD-426 { 11993 SELECT t1.*, t2.*, t3.*, t4.* 11994 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 11995 LEFT JOIN t3 ON t1.c=t3.c 11996 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 11997 WHERE t2.x>0 AND t3.y>0 11998 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11999} { 12000 30 130 230 330 130 30 230 30 330 30 12001 60 160 260 360 160 60 260 60 360 60 12002 90 190 290 390 190 90 290 90 390 90 12003} 12004do_execsql_test joinD-427 { 12005 SELECT t1.*, t2.*, t3.*, t4.* 12006 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 12007 LEFT JOIN t3 ON t1.c=t3.c 12008 RIGHT JOIN t4 ON t1.d=t4.d 12009 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 12010 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12011} { 12012 30 130 230 330 130 30 230 30 330 30 12013 60 160 260 360 160 60 260 60 360 60 12014 90 190 290 390 190 90 290 90 390 90 12015} 12016do_execsql_test joinD-428 { 12017 SELECT t1.*, t2.*, t3.*, t4.* 12018 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 12019 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 12020 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 12021 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12022} { 12023 5 105 205 305 - - - - 305 5 12024 10 110 210 310 110 10 - - 310 10 12025 15 115 215 315 - - 215 15 315 15 12026 20 120 220 320 120 20 - - 320 20 12027 25 125 225 325 - - - - 325 25 12028 30 130 230 330 130 30 230 30 330 30 12029 35 135 235 335 - - - - 335 35 12030 40 140 240 340 140 40 - - 340 40 12031 45 145 245 345 - - 245 45 345 45 12032 50 150 250 350 150 50 - - 350 50 12033 55 155 255 355 - - - - 355 55 12034 60 160 260 360 160 60 260 60 360 60 12035 65 165 265 365 - - - - 365 65 12036 70 170 270 370 170 70 - - 370 70 12037 75 175 275 375 - - 275 75 375 75 12038 80 180 280 380 180 80 - - 380 80 12039 85 185 285 385 - - - - 385 85 12040 90 190 290 390 190 90 290 90 390 90 12041 95 195 295 395 - - - - 395 95 12042 - - - - - - - - 300 0 12043} 12044do_execsql_test joinD-429 { 12045 SELECT t1.*, t2.*, t3.*, t4.* 12046 FROM t1 LEFT JOIN t2 ON t2.x>0 12047 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 12048 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 12049 WHERE t1.b IS NOT DISTINCT FROM t2.b 12050 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12051} { 12052 10 110 210 310 110 10 - - 310 10 12053 20 120 220 320 120 20 - - 320 20 12054 30 130 230 330 130 30 230 30 330 30 12055 40 140 240 340 140 40 - - 340 40 12056 50 150 250 350 150 50 - - 350 50 12057 60 160 260 360 160 60 260 60 360 60 12058 70 170 270 370 170 70 - - 370 70 12059 80 180 280 380 180 80 - - 380 80 12060 90 190 290 390 190 90 290 90 390 90 12061 - - - - - - - - 300 0 12062} 12063do_execsql_test joinD-430 { 12064 SELECT t1.*, t2.*, t3.*, t4.* 12065 FROM t1 LEFT JOIN t2 ON t2.x>0 12066 LEFT JOIN t3 ON t3.y>0 12067 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 12068 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 12069 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12070} { 12071 30 130 230 330 130 30 230 30 330 30 12072 60 160 260 360 160 60 260 60 360 60 12073 90 190 290 390 190 90 290 90 390 90 12074 - - - - - - - - 300 0 12075} 12076do_execsql_test joinD-431 { 12077 SELECT t1.*, t2.*, t3.*, t4.* 12078 FROM t1 LEFT JOIN t2 ON t2.x>0 12079 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 12080 RIGHT JOIN t4 ON t4.z>0 12081 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 12082 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12083} { 12084 10 110 210 310 110 10 - - 310 10 12085 20 120 220 320 120 20 - - 320 20 12086 30 130 230 330 130 30 230 30 330 30 12087 40 140 240 340 140 40 - - 340 40 12088 50 150 250 350 150 50 - - 350 50 12089 60 160 260 360 160 60 260 60 360 60 12090 70 170 270 370 170 70 - - 370 70 12091 80 180 280 380 180 80 - - 380 80 12092 90 190 290 390 190 90 290 90 390 90 12093} 12094do_execsql_test joinD-432 { 12095 SELECT t1.*, t2.*, t3.*, t4.* 12096 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 12097 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 12098 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 12099 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12100} { 12101 5 105 205 305 - - - - 305 5 12102 10 110 210 310 110 10 - - 310 10 12103 15 115 215 315 - - 215 15 315 15 12104 20 120 220 320 120 20 - - 320 20 12105 25 125 225 325 - - - - 325 25 12106 30 130 230 330 130 30 230 30 330 30 12107 35 135 235 335 - - - - 335 35 12108 40 140 240 340 140 40 - - 340 40 12109 45 145 245 345 - - 245 45 345 45 12110 50 150 250 350 150 50 - - 350 50 12111 55 155 255 355 - - - - 355 55 12112 60 160 260 360 160 60 260 60 360 60 12113 65 165 265 365 - - - - 365 65 12114 70 170 270 370 170 70 - - 370 70 12115 75 175 275 375 - - 275 75 375 75 12116 80 180 280 380 180 80 - - 380 80 12117 85 185 285 385 - - - - 385 85 12118 90 190 290 390 190 90 290 90 390 90 12119 95 195 295 395 - - - - 395 95 12120 - - - - - - - - 300 0 12121} 12122do_execsql_test joinD-433 { 12123 SELECT t1.*, t2.*, t3.*, t4.* 12124 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 12125 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 12126 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 12127 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12128} { 12129 5 105 205 305 - - - - 305 5 12130 10 110 210 310 110 10 - - 310 10 12131 15 115 215 315 - - 215 15 315 15 12132 20 120 220 320 120 20 - - 320 20 12133 25 125 225 325 - - - - 325 25 12134 30 130 230 330 130 30 230 30 330 30 12135 35 135 235 335 - - - - 335 35 12136 40 140 240 340 140 40 - - 340 40 12137 45 145 245 345 - - 245 45 345 45 12138 50 150 250 350 150 50 - - 350 50 12139 55 155 255 355 - - - - 355 55 12140 60 160 260 360 160 60 260 60 360 60 12141 65 165 265 365 - - - - 365 65 12142 70 170 270 370 170 70 - - 370 70 12143 75 175 275 375 - - 275 75 375 75 12144 80 180 280 380 180 80 - - 380 80 12145 85 185 285 385 - - - - 385 85 12146 90 190 290 390 190 90 290 90 390 90 12147 95 195 295 395 - - - - 395 95 12148 - - - - - - - - 300 0 12149} 12150do_execsql_test joinD-434 { 12151 SELECT t1.*, t2.*, t3.*, t4.* 12152 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 12153 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 12154 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 12155 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12156} { 12157 0 100 200 300 - - - - - - 12158 1 101 201 301 - - - - - - 12159 2 102 202 302 102 2 - - - - 12160 3 103 203 303 - - 203 3 - - 12161 4 104 204 304 104 4 - - - - 12162 5 105 205 305 - - - - 305 5 12163 6 106 206 306 106 6 206 6 - - 12164 7 107 207 307 - - - - - - 12165 8 108 208 308 108 8 - - - - 12166 9 109 209 309 - - 209 9 - - 12167 10 110 210 310 110 10 - - 310 10 12168 11 111 211 311 - - - - - - 12169 12 112 212 312 112 12 212 12 - - 12170 13 113 213 313 - - - - - - 12171 14 114 214 314 114 14 - - - - 12172 15 115 215 315 - - 215 15 315 15 12173 16 116 216 316 116 16 - - - - 12174 17 117 217 317 - - - - - - 12175 18 118 218 318 118 18 218 18 - - 12176 19 119 219 319 - - - - - - 12177 20 120 220 320 120 20 - - 320 20 12178 21 121 221 321 - - 221 21 - - 12179 22 122 222 322 122 22 - - - - 12180 23 123 223 323 - - - - - - 12181 24 124 224 324 124 24 224 24 - - 12182 25 125 225 325 - - - - 325 25 12183 26 126 226 326 126 26 - - - - 12184 27 127 227 327 - - 227 27 - - 12185 28 128 228 328 128 28 - - - - 12186 29 129 229 329 - - - - - - 12187 30 130 230 330 130 30 230 30 330 30 12188 31 131 231 331 - - - - - - 12189 32 132 232 332 132 32 - - - - 12190 33 133 233 333 - - 233 33 - - 12191 34 134 234 334 134 34 - - - - 12192 35 135 235 335 - - - - 335 35 12193 36 136 236 336 136 36 236 36 - - 12194 37 137 237 337 - - - - - - 12195 38 138 238 338 138 38 - - - - 12196 39 139 239 339 - - 239 39 - - 12197 40 140 240 340 140 40 - - 340 40 12198 41 141 241 341 - - - - - - 12199 42 142 242 342 142 42 242 42 - - 12200 43 143 243 343 - - - - - - 12201 44 144 244 344 144 44 - - - - 12202 45 145 245 345 - - 245 45 345 45 12203 46 146 246 346 146 46 - - - - 12204 47 147 247 347 - - - - - - 12205 48 148 248 348 148 48 248 48 - - 12206 49 149 249 349 - - - - - - 12207 50 150 250 350 150 50 - - 350 50 12208 51 151 251 351 - - 251 51 - - 12209 52 152 252 352 152 52 - - - - 12210 53 153 253 353 - - - - - - 12211 54 154 254 354 154 54 254 54 - - 12212 55 155 255 355 - - - - 355 55 12213 56 156 256 356 156 56 - - - - 12214 57 157 257 357 - - 257 57 - - 12215 58 158 258 358 158 58 - - - - 12216 59 159 259 359 - - - - - - 12217 60 160 260 360 160 60 260 60 360 60 12218 61 161 261 361 - - - - - - 12219 62 162 262 362 162 62 - - - - 12220 63 163 263 363 - - 263 63 - - 12221 64 164 264 364 164 64 - - - - 12222 65 165 265 365 - - - - 365 65 12223 66 166 266 366 166 66 266 66 - - 12224 67 167 267 367 - - - - - - 12225 68 168 268 368 168 68 - - - - 12226 69 169 269 369 - - 269 69 - - 12227 70 170 270 370 170 70 - - 370 70 12228 71 171 271 371 - - - - - - 12229 72 172 272 372 172 72 272 72 - - 12230 73 173 273 373 - - - - - - 12231 74 174 274 374 174 74 - - - - 12232 75 175 275 375 - - 275 75 375 75 12233 76 176 276 376 176 76 - - - - 12234 77 177 277 377 - - - - - - 12235 78 178 278 378 178 78 278 78 - - 12236 79 179 279 379 - - - - - - 12237 80 180 280 380 180 80 - - 380 80 12238 81 181 281 381 - - 281 81 - - 12239 82 182 282 382 182 82 - - - - 12240 83 183 283 383 - - - - - - 12241 84 184 284 384 184 84 284 84 - - 12242 85 185 285 385 - - - - 385 85 12243 86 186 286 386 186 86 - - - - 12244 87 187 287 387 - - 287 87 - - 12245 88 188 288 388 188 88 - - - - 12246 89 189 289 389 - - - - - - 12247 90 190 290 390 190 90 290 90 390 90 12248 91 191 291 391 - - - - - - 12249 92 192 292 392 192 92 - - - - 12250 93 193 293 393 - - 293 93 - - 12251 94 194 294 394 194 94 - - - - 12252 95 195 295 395 - - - - 395 95 12253 96 - 296 396 - - - - - - 12254 97 197 - 397 - - - - - - 12255 98 198 298 - - - - - - - 12256 99 - - - - - - - - - 12257 - - - - - - - - 300 0 12258} 12259do_execsql_test joinD-435 { 12260 SELECT t1.*, t2.*, t3.*, t4.* 12261 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 12262 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 12263 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 12264 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12265} { 12266 0 100 200 300 - - - - - - 12267 1 101 201 301 - - - - - - 12268 2 102 202 302 102 2 - - - - 12269 3 103 203 303 - - 203 3 - - 12270 4 104 204 304 104 4 - - - - 12271 5 105 205 305 - - - - 305 5 12272 6 106 206 306 106 6 206 6 - - 12273 7 107 207 307 - - - - - - 12274 8 108 208 308 108 8 - - - - 12275 9 109 209 309 - - 209 9 - - 12276 10 110 210 310 110 10 - - 310 10 12277 11 111 211 311 - - - - - - 12278 12 112 212 312 112 12 212 12 - - 12279 13 113 213 313 - - - - - - 12280 14 114 214 314 114 14 - - - - 12281 15 115 215 315 - - 215 15 315 15 12282 16 116 216 316 116 16 - - - - 12283 17 117 217 317 - - - - - - 12284 18 118 218 318 118 18 218 18 - - 12285 19 119 219 319 - - - - - - 12286 20 120 220 320 120 20 - - 320 20 12287 21 121 221 321 - - 221 21 - - 12288 22 122 222 322 122 22 - - - - 12289 23 123 223 323 - - - - - - 12290 24 124 224 324 124 24 224 24 - - 12291 25 125 225 325 - - - - 325 25 12292 26 126 226 326 126 26 - - - - 12293 27 127 227 327 - - 227 27 - - 12294 28 128 228 328 128 28 - - - - 12295 29 129 229 329 - - - - - - 12296 30 130 230 330 130 30 230 30 330 30 12297 31 131 231 331 - - - - - - 12298 32 132 232 332 132 32 - - - - 12299 33 133 233 333 - - 233 33 - - 12300 34 134 234 334 134 34 - - - - 12301 35 135 235 335 - - - - 335 35 12302 36 136 236 336 136 36 236 36 - - 12303 37 137 237 337 - - - - - - 12304 38 138 238 338 138 38 - - - - 12305 39 139 239 339 - - 239 39 - - 12306 40 140 240 340 140 40 - - 340 40 12307 41 141 241 341 - - - - - - 12308 42 142 242 342 142 42 242 42 - - 12309 43 143 243 343 - - - - - - 12310 44 144 244 344 144 44 - - - - 12311 45 145 245 345 - - 245 45 345 45 12312 46 146 246 346 146 46 - - - - 12313 47 147 247 347 - - - - - - 12314 48 148 248 348 148 48 248 48 - - 12315 49 149 249 349 - - - - - - 12316 50 150 250 350 150 50 - - 350 50 12317 51 151 251 351 - - 251 51 - - 12318 52 152 252 352 152 52 - - - - 12319 53 153 253 353 - - - - - - 12320 54 154 254 354 154 54 254 54 - - 12321 55 155 255 355 - - - - 355 55 12322 56 156 256 356 156 56 - - - - 12323 57 157 257 357 - - 257 57 - - 12324 58 158 258 358 158 58 - - - - 12325 59 159 259 359 - - - - - - 12326 60 160 260 360 160 60 260 60 360 60 12327 61 161 261 361 - - - - - - 12328 62 162 262 362 162 62 - - - - 12329 63 163 263 363 - - 263 63 - - 12330 64 164 264 364 164 64 - - - - 12331 65 165 265 365 - - - - 365 65 12332 66 166 266 366 166 66 266 66 - - 12333 67 167 267 367 - - - - - - 12334 68 168 268 368 168 68 - - - - 12335 69 169 269 369 - - 269 69 - - 12336 70 170 270 370 170 70 - - 370 70 12337 71 171 271 371 - - - - - - 12338 72 172 272 372 172 72 272 72 - - 12339 73 173 273 373 - - - - - - 12340 74 174 274 374 174 74 - - - - 12341 75 175 275 375 - - 275 75 375 75 12342 76 176 276 376 176 76 - - - - 12343 77 177 277 377 - - - - - - 12344 78 178 278 378 178 78 278 78 - - 12345 79 179 279 379 - - - - - - 12346 80 180 280 380 180 80 - - 380 80 12347 81 181 281 381 - - 281 81 - - 12348 82 182 282 382 182 82 - - - - 12349 83 183 283 383 - - - - - - 12350 84 184 284 384 184 84 284 84 - - 12351 85 185 285 385 - - - - 385 85 12352 86 186 286 386 186 86 - - - - 12353 87 187 287 387 - - 287 87 - - 12354 88 188 288 388 188 88 - - - - 12355 89 189 289 389 - - - - - - 12356 90 190 290 390 190 90 290 90 390 90 12357 91 191 291 391 - - - - - - 12358 92 192 292 392 192 92 - - - - 12359 93 193 293 393 - - 293 93 - - 12360 94 194 294 394 194 94 - - - - 12361 95 195 295 395 - - - - 395 95 12362 96 - 296 396 - - - - - - 12363 97 197 - 397 - - - - - - 12364 98 198 298 - - - - - - - 12365 99 - - - - - - - - - 12366 - - - - - - - - 300 0 12367} 12368do_execsql_test joinD-436 { 12369 SELECT t1.*, t2.*, t3.*, t4.* 12370 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 12371 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 12372 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 12373 WHERE t2.x>0 12374 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12375} { 12376 2 102 202 302 102 2 - - - - 12377 4 104 204 304 104 4 - - - - 12378 6 106 206 306 106 6 206 6 - - 12379 8 108 208 308 108 8 - - - - 12380 10 110 210 310 110 10 - - 310 10 12381 12 112 212 312 112 12 212 12 - - 12382 14 114 214 314 114 14 - - - - 12383 16 116 216 316 116 16 - - - - 12384 18 118 218 318 118 18 218 18 - - 12385 20 120 220 320 120 20 - - 320 20 12386 22 122 222 322 122 22 - - - - 12387 24 124 224 324 124 24 224 24 - - 12388 26 126 226 326 126 26 - - - - 12389 28 128 228 328 128 28 - - - - 12390 30 130 230 330 130 30 230 30 330 30 12391 32 132 232 332 132 32 - - - - 12392 34 134 234 334 134 34 - - - - 12393 36 136 236 336 136 36 236 36 - - 12394 38 138 238 338 138 38 - - - - 12395 40 140 240 340 140 40 - - 340 40 12396 42 142 242 342 142 42 242 42 - - 12397 44 144 244 344 144 44 - - - - 12398 46 146 246 346 146 46 - - - - 12399 48 148 248 348 148 48 248 48 - - 12400 50 150 250 350 150 50 - - 350 50 12401 52 152 252 352 152 52 - - - - 12402 54 154 254 354 154 54 254 54 - - 12403 56 156 256 356 156 56 - - - - 12404 58 158 258 358 158 58 - - - - 12405 60 160 260 360 160 60 260 60 360 60 12406 62 162 262 362 162 62 - - - - 12407 64 164 264 364 164 64 - - - - 12408 66 166 266 366 166 66 266 66 - - 12409 68 168 268 368 168 68 - - - - 12410 70 170 270 370 170 70 - - 370 70 12411 72 172 272 372 172 72 272 72 - - 12412 74 174 274 374 174 74 - - - - 12413 76 176 276 376 176 76 - - - - 12414 78 178 278 378 178 78 278 78 - - 12415 80 180 280 380 180 80 - - 380 80 12416 82 182 282 382 182 82 - - - - 12417 84 184 284 384 184 84 284 84 - - 12418 86 186 286 386 186 86 - - - - 12419 88 188 288 388 188 88 - - - - 12420 90 190 290 390 190 90 290 90 390 90 12421 92 192 292 392 192 92 - - - - 12422 94 194 294 394 194 94 - - - - 12423} 12424do_execsql_test joinD-437 { 12425 SELECT t1.*, t2.*, t3.*, t4.* 12426 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 12427 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 12428 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 12429 WHERE (t2.x>0 OR t2.x IS NULL) 12430 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12431} { 12432 1 101 201 301 - - - - - - 12433 2 102 202 302 102 2 - - - - 12434 3 103 203 303 - - 203 3 - - 12435 4 104 204 304 104 4 - - - - 12436 5 105 205 305 - - - - 305 5 12437 6 106 206 306 106 6 206 6 - - 12438 7 107 207 307 - - - - - - 12439 8 108 208 308 108 8 - - - - 12440 9 109 209 309 - - 209 9 - - 12441 10 110 210 310 110 10 - - 310 10 12442 11 111 211 311 - - - - - - 12443 12 112 212 312 112 12 212 12 - - 12444 13 113 213 313 - - - - - - 12445 14 114 214 314 114 14 - - - - 12446 15 115 215 315 - - 215 15 315 15 12447 16 116 216 316 116 16 - - - - 12448 17 117 217 317 - - - - - - 12449 18 118 218 318 118 18 218 18 - - 12450 19 119 219 319 - - - - - - 12451 20 120 220 320 120 20 - - 320 20 12452 21 121 221 321 - - 221 21 - - 12453 22 122 222 322 122 22 - - - - 12454 23 123 223 323 - - - - - - 12455 24 124 224 324 124 24 224 24 - - 12456 25 125 225 325 - - - - 325 25 12457 26 126 226 326 126 26 - - - - 12458 27 127 227 327 - - 227 27 - - 12459 28 128 228 328 128 28 - - - - 12460 29 129 229 329 - - - - - - 12461 30 130 230 330 130 30 230 30 330 30 12462 31 131 231 331 - - - - - - 12463 32 132 232 332 132 32 - - - - 12464 33 133 233 333 - - 233 33 - - 12465 34 134 234 334 134 34 - - - - 12466 35 135 235 335 - - - - 335 35 12467 36 136 236 336 136 36 236 36 - - 12468 37 137 237 337 - - - - - - 12469 38 138 238 338 138 38 - - - - 12470 39 139 239 339 - - 239 39 - - 12471 40 140 240 340 140 40 - - 340 40 12472 41 141 241 341 - - - - - - 12473 42 142 242 342 142 42 242 42 - - 12474 43 143 243 343 - - - - - - 12475 44 144 244 344 144 44 - - - - 12476 45 145 245 345 - - 245 45 345 45 12477 46 146 246 346 146 46 - - - - 12478 47 147 247 347 - - - - - - 12479 48 148 248 348 148 48 248 48 - - 12480 49 149 249 349 - - - - - - 12481 50 150 250 350 150 50 - - 350 50 12482 51 151 251 351 - - 251 51 - - 12483 52 152 252 352 152 52 - - - - 12484 53 153 253 353 - - - - - - 12485 54 154 254 354 154 54 254 54 - - 12486 55 155 255 355 - - - - 355 55 12487 56 156 256 356 156 56 - - - - 12488 57 157 257 357 - - 257 57 - - 12489 58 158 258 358 158 58 - - - - 12490 59 159 259 359 - - - - - - 12491 60 160 260 360 160 60 260 60 360 60 12492 61 161 261 361 - - - - - - 12493 62 162 262 362 162 62 - - - - 12494 63 163 263 363 - - 263 63 - - 12495 64 164 264 364 164 64 - - - - 12496 65 165 265 365 - - - - 365 65 12497 66 166 266 366 166 66 266 66 - - 12498 67 167 267 367 - - - - - - 12499 68 168 268 368 168 68 - - - - 12500 69 169 269 369 - - 269 69 - - 12501 70 170 270 370 170 70 - - 370 70 12502 71 171 271 371 - - - - - - 12503 72 172 272 372 172 72 272 72 - - 12504 73 173 273 373 - - - - - - 12505 74 174 274 374 174 74 - - - - 12506 75 175 275 375 - - 275 75 375 75 12507 76 176 276 376 176 76 - - - - 12508 77 177 277 377 - - - - - - 12509 78 178 278 378 178 78 278 78 - - 12510 79 179 279 379 - - - - - - 12511 80 180 280 380 180 80 - - 380 80 12512 81 181 281 381 - - 281 81 - - 12513 82 182 282 382 182 82 - - - - 12514 83 183 283 383 - - - - - - 12515 84 184 284 384 184 84 284 84 - - 12516 85 185 285 385 - - - - 385 85 12517 86 186 286 386 186 86 - - - - 12518 87 187 287 387 - - 287 87 - - 12519 88 188 288 388 188 88 - - - - 12520 89 189 289 389 - - - - - - 12521 90 190 290 390 190 90 290 90 390 90 12522 91 191 291 391 - - - - - - 12523 92 192 292 392 192 92 - - - - 12524 93 193 293 393 - - 293 93 - - 12525 94 194 294 394 194 94 - - - - 12526 95 195 295 395 - - - - 395 95 12527 96 - 296 396 - - - - - - 12528 97 197 - 397 - - - - - - 12529 98 198 298 - - - - - - - 12530 99 - - - - - - - - - 12531 - - - - - - - - 300 0 12532} 12533do_execsql_test joinD-438 { 12534 SELECT t1.*, t2.*, t3.*, t4.* 12535 FROM t1 LEFT JOIN t2 ON true 12536 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 12537 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 12538 WHERE t1.b=t2.b AND t2.x>0 12539 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12540} { 12541 2 102 202 302 102 2 - - - - 12542 4 104 204 304 104 4 - - - - 12543 6 106 206 306 106 6 206 6 - - 12544 8 108 208 308 108 8 - - - - 12545 10 110 210 310 110 10 - - 310 10 12546 12 112 212 312 112 12 212 12 - - 12547 14 114 214 314 114 14 - - - - 12548 16 116 216 316 116 16 - - - - 12549 18 118 218 318 118 18 218 18 - - 12550 20 120 220 320 120 20 - - 320 20 12551 22 122 222 322 122 22 - - - - 12552 24 124 224 324 124 24 224 24 - - 12553 26 126 226 326 126 26 - - - - 12554 28 128 228 328 128 28 - - - - 12555 30 130 230 330 130 30 230 30 330 30 12556 32 132 232 332 132 32 - - - - 12557 34 134 234 334 134 34 - - - - 12558 36 136 236 336 136 36 236 36 - - 12559 38 138 238 338 138 38 - - - - 12560 40 140 240 340 140 40 - - 340 40 12561 42 142 242 342 142 42 242 42 - - 12562 44 144 244 344 144 44 - - - - 12563 46 146 246 346 146 46 - - - - 12564 48 148 248 348 148 48 248 48 - - 12565 50 150 250 350 150 50 - - 350 50 12566 52 152 252 352 152 52 - - - - 12567 54 154 254 354 154 54 254 54 - - 12568 56 156 256 356 156 56 - - - - 12569 58 158 258 358 158 58 - - - - 12570 60 160 260 360 160 60 260 60 360 60 12571 62 162 262 362 162 62 - - - - 12572 64 164 264 364 164 64 - - - - 12573 66 166 266 366 166 66 266 66 - - 12574 68 168 268 368 168 68 - - - - 12575 70 170 270 370 170 70 - - 370 70 12576 72 172 272 372 172 72 272 72 - - 12577 74 174 274 374 174 74 - - - - 12578 76 176 276 376 176 76 - - - - 12579 78 178 278 378 178 78 278 78 - - 12580 80 180 280 380 180 80 - - 380 80 12581 82 182 282 382 182 82 - - - - 12582 84 184 284 384 184 84 284 84 - - 12583 86 186 286 386 186 86 - - - - 12584 88 188 288 388 188 88 - - - - 12585 90 190 290 390 190 90 290 90 390 90 12586 92 192 292 392 192 92 - - - - 12587 94 194 294 394 194 94 - - - - 12588} 12589do_execsql_test joinD-439 { 12590 SELECT t1.*, t2.*, t3.*, t4.* 12591 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 12592 LEFT JOIN t3 ON t1.c=t3.c 12593 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 12594 WHERE t3.y>0 12595 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12596} { 12597 3 103 203 303 - - 203 3 - - 12598 6 106 206 306 106 6 206 6 - - 12599 9 109 209 309 - - 209 9 - - 12600 12 112 212 312 112 12 212 12 - - 12601 15 115 215 315 - - 215 15 315 15 12602 18 118 218 318 118 18 218 18 - - 12603 21 121 221 321 - - 221 21 - - 12604 24 124 224 324 124 24 224 24 - - 12605 27 127 227 327 - - 227 27 - - 12606 30 130 230 330 130 30 230 30 330 30 12607 33 133 233 333 - - 233 33 - - 12608 36 136 236 336 136 36 236 36 - - 12609 39 139 239 339 - - 239 39 - - 12610 42 142 242 342 142 42 242 42 - - 12611 45 145 245 345 - - 245 45 345 45 12612 48 148 248 348 148 48 248 48 - - 12613 51 151 251 351 - - 251 51 - - 12614 54 154 254 354 154 54 254 54 - - 12615 57 157 257 357 - - 257 57 - - 12616 60 160 260 360 160 60 260 60 360 60 12617 63 163 263 363 - - 263 63 - - 12618 66 166 266 366 166 66 266 66 - - 12619 69 169 269 369 - - 269 69 - - 12620 72 172 272 372 172 72 272 72 - - 12621 75 175 275 375 - - 275 75 375 75 12622 78 178 278 378 178 78 278 78 - - 12623 81 181 281 381 - - 281 81 - - 12624 84 184 284 384 184 84 284 84 - - 12625 87 187 287 387 - - 287 87 - - 12626 90 190 290 390 190 90 290 90 390 90 12627 93 193 293 393 - - 293 93 - - 12628} 12629do_execsql_test joinD-440 { 12630 SELECT t1.*, t2.*, t3.*, t4.* 12631 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 12632 LEFT JOIN t3 ON t1.c=t3.c 12633 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 12634 WHERE t3.y>0 OR t3.y IS NULL 12635 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12636} { 12637 1 101 201 301 - - - - - - 12638 2 102 202 302 102 2 - - - - 12639 3 103 203 303 - - 203 3 - - 12640 4 104 204 304 104 4 - - - - 12641 5 105 205 305 - - - - 305 5 12642 6 106 206 306 106 6 206 6 - - 12643 7 107 207 307 - - - - - - 12644 8 108 208 308 108 8 - - - - 12645 9 109 209 309 - - 209 9 - - 12646 10 110 210 310 110 10 - - 310 10 12647 11 111 211 311 - - - - - - 12648 12 112 212 312 112 12 212 12 - - 12649 13 113 213 313 - - - - - - 12650 14 114 214 314 114 14 - - - - 12651 15 115 215 315 - - 215 15 315 15 12652 16 116 216 316 116 16 - - - - 12653 17 117 217 317 - - - - - - 12654 18 118 218 318 118 18 218 18 - - 12655 19 119 219 319 - - - - - - 12656 20 120 220 320 120 20 - - 320 20 12657 21 121 221 321 - - 221 21 - - 12658 22 122 222 322 122 22 - - - - 12659 23 123 223 323 - - - - - - 12660 24 124 224 324 124 24 224 24 - - 12661 25 125 225 325 - - - - 325 25 12662 26 126 226 326 126 26 - - - - 12663 27 127 227 327 - - 227 27 - - 12664 28 128 228 328 128 28 - - - - 12665 29 129 229 329 - - - - - - 12666 30 130 230 330 130 30 230 30 330 30 12667 31 131 231 331 - - - - - - 12668 32 132 232 332 132 32 - - - - 12669 33 133 233 333 - - 233 33 - - 12670 34 134 234 334 134 34 - - - - 12671 35 135 235 335 - - - - 335 35 12672 36 136 236 336 136 36 236 36 - - 12673 37 137 237 337 - - - - - - 12674 38 138 238 338 138 38 - - - - 12675 39 139 239 339 - - 239 39 - - 12676 40 140 240 340 140 40 - - 340 40 12677 41 141 241 341 - - - - - - 12678 42 142 242 342 142 42 242 42 - - 12679 43 143 243 343 - - - - - - 12680 44 144 244 344 144 44 - - - - 12681 45 145 245 345 - - 245 45 345 45 12682 46 146 246 346 146 46 - - - - 12683 47 147 247 347 - - - - - - 12684 48 148 248 348 148 48 248 48 - - 12685 49 149 249 349 - - - - - - 12686 50 150 250 350 150 50 - - 350 50 12687 51 151 251 351 - - 251 51 - - 12688 52 152 252 352 152 52 - - - - 12689 53 153 253 353 - - - - - - 12690 54 154 254 354 154 54 254 54 - - 12691 55 155 255 355 - - - - 355 55 12692 56 156 256 356 156 56 - - - - 12693 57 157 257 357 - - 257 57 - - 12694 58 158 258 358 158 58 - - - - 12695 59 159 259 359 - - - - - - 12696 60 160 260 360 160 60 260 60 360 60 12697 61 161 261 361 - - - - - - 12698 62 162 262 362 162 62 - - - - 12699 63 163 263 363 - - 263 63 - - 12700 64 164 264 364 164 64 - - - - 12701 65 165 265 365 - - - - 365 65 12702 66 166 266 366 166 66 266 66 - - 12703 67 167 267 367 - - - - - - 12704 68 168 268 368 168 68 - - - - 12705 69 169 269 369 - - 269 69 - - 12706 70 170 270 370 170 70 - - 370 70 12707 71 171 271 371 - - - - - - 12708 72 172 272 372 172 72 272 72 - - 12709 73 173 273 373 - - - - - - 12710 74 174 274 374 174 74 - - - - 12711 75 175 275 375 - - 275 75 375 75 12712 76 176 276 376 176 76 - - - - 12713 77 177 277 377 - - - - - - 12714 78 178 278 378 178 78 278 78 - - 12715 79 179 279 379 - - - - - - 12716 80 180 280 380 180 80 - - 380 80 12717 81 181 281 381 - - 281 81 - - 12718 82 182 282 382 182 82 - - - - 12719 83 183 283 383 - - - - - - 12720 84 184 284 384 184 84 284 84 - - 12721 85 185 285 385 - - - - 385 85 12722 86 186 286 386 186 86 - - - - 12723 87 187 287 387 - - 287 87 - - 12724 88 188 288 388 188 88 - - - - 12725 89 189 289 389 - - - - - - 12726 90 190 290 390 190 90 290 90 390 90 12727 91 191 291 391 - - - - - - 12728 92 192 292 392 192 92 - - - - 12729 93 193 293 393 - - 293 93 - - 12730 94 194 294 394 194 94 - - - - 12731 95 195 295 395 - - - - 395 95 12732 96 - 296 396 - - - - - - 12733 97 197 - 397 - - - - - - 12734 98 198 298 - - - - - - - 12735 99 - - - - - - - - - 12736 - - - - - - - - 300 0 12737} 12738do_execsql_test joinD-441 { 12739 SELECT t1.*, t2.*, t3.*, t4.* 12740 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 12741 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 12742 FULL JOIN t4 ON t1.d=t4.d 12743 WHERE t4.z>0 12744 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12745} { 12746 5 105 205 305 - - - - 305 5 12747 10 110 210 310 110 10 - - 310 10 12748 15 115 215 315 - - 215 15 315 15 12749 20 120 220 320 120 20 - - 320 20 12750 25 125 225 325 - - - - 325 25 12751 30 130 230 330 130 30 230 30 330 30 12752 35 135 235 335 - - - - 335 35 12753 40 140 240 340 140 40 - - 340 40 12754 45 145 245 345 - - 245 45 345 45 12755 50 150 250 350 150 50 - - 350 50 12756 55 155 255 355 - - - - 355 55 12757 60 160 260 360 160 60 260 60 360 60 12758 65 165 265 365 - - - - 365 65 12759 70 170 270 370 170 70 - - 370 70 12760 75 175 275 375 - - 275 75 375 75 12761 80 180 280 380 180 80 - - 380 80 12762 85 185 285 385 - - - - 385 85 12763 90 190 290 390 190 90 290 90 390 90 12764 95 195 295 395 - - - - 395 95 12765} 12766do_execsql_test joinD-442 { 12767 SELECT t1.*, t2.*, t3.*, t4.* 12768 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 12769 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 12770 FULL JOIN t4 ON t1.d=t4.d 12771 WHERE t4.z IS NULL OR t4.z>0 12772 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12773} { 12774 1 101 201 301 - - - - - - 12775 2 102 202 302 102 2 - - - - 12776 3 103 203 303 - - 203 3 - - 12777 4 104 204 304 104 4 - - - - 12778 5 105 205 305 - - - - 305 5 12779 6 106 206 306 106 6 206 6 - - 12780 7 107 207 307 - - - - - - 12781 8 108 208 308 108 8 - - - - 12782 9 109 209 309 - - 209 9 - - 12783 10 110 210 310 110 10 - - 310 10 12784 11 111 211 311 - - - - - - 12785 12 112 212 312 112 12 212 12 - - 12786 13 113 213 313 - - - - - - 12787 14 114 214 314 114 14 - - - - 12788 15 115 215 315 - - 215 15 315 15 12789 16 116 216 316 116 16 - - - - 12790 17 117 217 317 - - - - - - 12791 18 118 218 318 118 18 218 18 - - 12792 19 119 219 319 - - - - - - 12793 20 120 220 320 120 20 - - 320 20 12794 21 121 221 321 - - 221 21 - - 12795 22 122 222 322 122 22 - - - - 12796 23 123 223 323 - - - - - - 12797 24 124 224 324 124 24 224 24 - - 12798 25 125 225 325 - - - - 325 25 12799 26 126 226 326 126 26 - - - - 12800 27 127 227 327 - - 227 27 - - 12801 28 128 228 328 128 28 - - - - 12802 29 129 229 329 - - - - - - 12803 30 130 230 330 130 30 230 30 330 30 12804 31 131 231 331 - - - - - - 12805 32 132 232 332 132 32 - - - - 12806 33 133 233 333 - - 233 33 - - 12807 34 134 234 334 134 34 - - - - 12808 35 135 235 335 - - - - 335 35 12809 36 136 236 336 136 36 236 36 - - 12810 37 137 237 337 - - - - - - 12811 38 138 238 338 138 38 - - - - 12812 39 139 239 339 - - 239 39 - - 12813 40 140 240 340 140 40 - - 340 40 12814 41 141 241 341 - - - - - - 12815 42 142 242 342 142 42 242 42 - - 12816 43 143 243 343 - - - - - - 12817 44 144 244 344 144 44 - - - - 12818 45 145 245 345 - - 245 45 345 45 12819 46 146 246 346 146 46 - - - - 12820 47 147 247 347 - - - - - - 12821 48 148 248 348 148 48 248 48 - - 12822 49 149 249 349 - - - - - - 12823 50 150 250 350 150 50 - - 350 50 12824 51 151 251 351 - - 251 51 - - 12825 52 152 252 352 152 52 - - - - 12826 53 153 253 353 - - - - - - 12827 54 154 254 354 154 54 254 54 - - 12828 55 155 255 355 - - - - 355 55 12829 56 156 256 356 156 56 - - - - 12830 57 157 257 357 - - 257 57 - - 12831 58 158 258 358 158 58 - - - - 12832 59 159 259 359 - - - - - - 12833 60 160 260 360 160 60 260 60 360 60 12834 61 161 261 361 - - - - - - 12835 62 162 262 362 162 62 - - - - 12836 63 163 263 363 - - 263 63 - - 12837 64 164 264 364 164 64 - - - - 12838 65 165 265 365 - - - - 365 65 12839 66 166 266 366 166 66 266 66 - - 12840 67 167 267 367 - - - - - - 12841 68 168 268 368 168 68 - - - - 12842 69 169 269 369 - - 269 69 - - 12843 70 170 270 370 170 70 - - 370 70 12844 71 171 271 371 - - - - - - 12845 72 172 272 372 172 72 272 72 - - 12846 73 173 273 373 - - - - - - 12847 74 174 274 374 174 74 - - - - 12848 75 175 275 375 - - 275 75 375 75 12849 76 176 276 376 176 76 - - - - 12850 77 177 277 377 - - - - - - 12851 78 178 278 378 178 78 278 78 - - 12852 79 179 279 379 - - - - - - 12853 80 180 280 380 180 80 - - 380 80 12854 81 181 281 381 - - 281 81 - - 12855 82 182 282 382 182 82 - - - - 12856 83 183 283 383 - - - - - - 12857 84 184 284 384 184 84 284 84 - - 12858 85 185 285 385 - - - - 385 85 12859 86 186 286 386 186 86 - - - - 12860 87 187 287 387 - - 287 87 - - 12861 88 188 288 388 188 88 - - - - 12862 89 189 289 389 - - - - - - 12863 90 190 290 390 190 90 290 90 390 90 12864 91 191 291 391 - - - - - - 12865 92 192 292 392 192 92 - - - - 12866 93 193 293 393 - - 293 93 - - 12867 94 194 294 394 194 94 - - - - 12868 95 195 295 395 - - - - 395 95 12869 96 - 296 396 - - - - - - 12870 97 197 - 397 - - - - - - 12871 98 198 298 - - - - - - - 12872 99 - - - - - - - - - 12873} 12874do_execsql_test joinD-443 { 12875 SELECT t1.*, t2.*, t3.*, t4.* 12876 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 12877 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 12878 FULL JOIN t4 ON t1.d=t4.d 12879 WHERE t2.x>0 AND t4.z>0 12880 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12881} { 12882 10 110 210 310 110 10 - - 310 10 12883 20 120 220 320 120 20 - - 320 20 12884 30 130 230 330 130 30 230 30 330 30 12885 40 140 240 340 140 40 - - 340 40 12886 50 150 250 350 150 50 - - 350 50 12887 60 160 260 360 160 60 260 60 360 60 12888 70 170 270 370 170 70 - - 370 70 12889 80 180 280 380 180 80 - - 380 80 12890 90 190 290 390 190 90 290 90 390 90 12891} 12892do_execsql_test joinD-444 { 12893 SELECT t1.*, t2.*, t3.*, t4.* 12894 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 12895 LEFT JOIN t3 ON t1.c=t3.c 12896 FULL JOIN t4 ON t1.d=t4.d 12897 WHERE t4.z>0 AND t3.y>0 12898 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12899} { 12900 15 115 215 315 - - 215 15 315 15 12901 30 130 230 330 130 30 230 30 330 30 12902 45 145 245 345 - - 245 45 345 45 12903 60 160 260 360 160 60 260 60 360 60 12904 75 175 275 375 - - 275 75 375 75 12905 90 190 290 390 190 90 290 90 390 90 12906} 12907do_execsql_test joinD-445 { 12908 SELECT t1.*, t2.*, t3.*, t4.* 12909 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 12910 LEFT JOIN t3 ON t1.c=t3.c 12911 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 12912 WHERE t2.x>0 AND t3.y>0 12913 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12914} { 12915 6 106 206 306 106 6 206 6 - - 12916 12 112 212 312 112 12 212 12 - - 12917 18 118 218 318 118 18 218 18 - - 12918 24 124 224 324 124 24 224 24 - - 12919 30 130 230 330 130 30 230 30 330 30 12920 36 136 236 336 136 36 236 36 - - 12921 42 142 242 342 142 42 242 42 - - 12922 48 148 248 348 148 48 248 48 - - 12923 54 154 254 354 154 54 254 54 - - 12924 60 160 260 360 160 60 260 60 360 60 12925 66 166 266 366 166 66 266 66 - - 12926 72 172 272 372 172 72 272 72 - - 12927 78 178 278 378 178 78 278 78 - - 12928 84 184 284 384 184 84 284 84 - - 12929 90 190 290 390 190 90 290 90 390 90 12930} 12931do_execsql_test joinD-446 { 12932 SELECT t1.*, t2.*, t3.*, t4.* 12933 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 12934 LEFT JOIN t3 ON t1.c=t3.c 12935 FULL JOIN t4 ON t1.d=t4.d 12936 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 12937 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12938} { 12939 30 130 230 330 130 30 230 30 330 30 12940 60 160 260 360 160 60 260 60 360 60 12941 90 190 290 390 190 90 290 90 390 90 12942} 12943do_execsql_test joinD-447 { 12944 SELECT t1.*, t2.*, t3.*, t4.* 12945 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 12946 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 12947 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 12948 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12949} { 12950 0 100 200 300 - - - - - - 12951 1 101 201 301 - - - - - - 12952 2 102 202 302 102 2 - - - - 12953 3 103 203 303 - - 203 3 - - 12954 4 104 204 304 104 4 - - - - 12955 5 105 205 305 - - - - 305 5 12956 6 106 206 306 106 6 206 6 - - 12957 7 107 207 307 - - - - - - 12958 8 108 208 308 108 8 - - - - 12959 9 109 209 309 - - 209 9 - - 12960 10 110 210 310 110 10 - - 310 10 12961 11 111 211 311 - - - - - - 12962 12 112 212 312 112 12 212 12 - - 12963 13 113 213 313 - - - - - - 12964 14 114 214 314 114 14 - - - - 12965 15 115 215 315 - - 215 15 315 15 12966 16 116 216 316 116 16 - - - - 12967 17 117 217 317 - - - - - - 12968 18 118 218 318 118 18 218 18 - - 12969 19 119 219 319 - - - - - - 12970 20 120 220 320 120 20 - - 320 20 12971 21 121 221 321 - - 221 21 - - 12972 22 122 222 322 122 22 - - - - 12973 23 123 223 323 - - - - - - 12974 24 124 224 324 124 24 224 24 - - 12975 25 125 225 325 - - - - 325 25 12976 26 126 226 326 126 26 - - - - 12977 27 127 227 327 - - 227 27 - - 12978 28 128 228 328 128 28 - - - - 12979 29 129 229 329 - - - - - - 12980 30 130 230 330 130 30 230 30 330 30 12981 31 131 231 331 - - - - - - 12982 32 132 232 332 132 32 - - - - 12983 33 133 233 333 - - 233 33 - - 12984 34 134 234 334 134 34 - - - - 12985 35 135 235 335 - - - - 335 35 12986 36 136 236 336 136 36 236 36 - - 12987 37 137 237 337 - - - - - - 12988 38 138 238 338 138 38 - - - - 12989 39 139 239 339 - - 239 39 - - 12990 40 140 240 340 140 40 - - 340 40 12991 41 141 241 341 - - - - - - 12992 42 142 242 342 142 42 242 42 - - 12993 43 143 243 343 - - - - - - 12994 44 144 244 344 144 44 - - - - 12995 45 145 245 345 - - 245 45 345 45 12996 46 146 246 346 146 46 - - - - 12997 47 147 247 347 - - - - - - 12998 48 148 248 348 148 48 248 48 - - 12999 49 149 249 349 - - - - - - 13000 50 150 250 350 150 50 - - 350 50 13001 51 151 251 351 - - 251 51 - - 13002 52 152 252 352 152 52 - - - - 13003 53 153 253 353 - - - - - - 13004 54 154 254 354 154 54 254 54 - - 13005 55 155 255 355 - - - - 355 55 13006 56 156 256 356 156 56 - - - - 13007 57 157 257 357 - - 257 57 - - 13008 58 158 258 358 158 58 - - - - 13009 59 159 259 359 - - - - - - 13010 60 160 260 360 160 60 260 60 360 60 13011 61 161 261 361 - - - - - - 13012 62 162 262 362 162 62 - - - - 13013 63 163 263 363 - - 263 63 - - 13014 64 164 264 364 164 64 - - - - 13015 65 165 265 365 - - - - 365 65 13016 66 166 266 366 166 66 266 66 - - 13017 67 167 267 367 - - - - - - 13018 68 168 268 368 168 68 - - - - 13019 69 169 269 369 - - 269 69 - - 13020 70 170 270 370 170 70 - - 370 70 13021 71 171 271 371 - - - - - - 13022 72 172 272 372 172 72 272 72 - - 13023 73 173 273 373 - - - - - - 13024 74 174 274 374 174 74 - - - - 13025 75 175 275 375 - - 275 75 375 75 13026 76 176 276 376 176 76 - - - - 13027 77 177 277 377 - - - - - - 13028 78 178 278 378 178 78 278 78 - - 13029 79 179 279 379 - - - - - - 13030 80 180 280 380 180 80 - - 380 80 13031 81 181 281 381 - - 281 81 - - 13032 82 182 282 382 182 82 - - - - 13033 83 183 283 383 - - - - - - 13034 84 184 284 384 184 84 284 84 - - 13035 85 185 285 385 - - - - 385 85 13036 86 186 286 386 186 86 - - - - 13037 87 187 287 387 - - 287 87 - - 13038 88 188 288 388 188 88 - - - - 13039 89 189 289 389 - - - - - - 13040 90 190 290 390 190 90 290 90 390 90 13041 91 191 291 391 - - - - - - 13042 92 192 292 392 192 92 - - - - 13043 93 193 293 393 - - 293 93 - - 13044 94 194 294 394 194 94 - - - - 13045 95 195 295 395 - - - - 395 95 13046 96 - 296 396 - - - - - - 13047 97 197 - 397 - - - - - - 13048 98 198 298 - - - - - - - 13049 99 - - - - - - - - - 13050 - - - - - - - - 300 0 13051} 13052do_execsql_test joinD-448 { 13053 SELECT t1.*, t2.*, t3.*, t4.* 13054 FROM t1 LEFT JOIN t2 ON t2.x>0 13055 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 13056 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 13057 WHERE t1.b IS NOT DISTINCT FROM t2.b 13058 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13059} { 13060 2 102 202 302 102 2 - - - - 13061 4 104 204 304 104 4 - - - - 13062 6 106 206 306 106 6 206 6 - - 13063 8 108 208 308 108 8 - - - - 13064 10 110 210 310 110 10 - - 310 10 13065 12 112 212 312 112 12 212 12 - - 13066 14 114 214 314 114 14 - - - - 13067 16 116 216 316 116 16 - - - - 13068 18 118 218 318 118 18 218 18 - - 13069 20 120 220 320 120 20 - - 320 20 13070 22 122 222 322 122 22 - - - - 13071 24 124 224 324 124 24 224 24 - - 13072 26 126 226 326 126 26 - - - - 13073 28 128 228 328 128 28 - - - - 13074 30 130 230 330 130 30 230 30 330 30 13075 32 132 232 332 132 32 - - - - 13076 34 134 234 334 134 34 - - - - 13077 36 136 236 336 136 36 236 36 - - 13078 38 138 238 338 138 38 - - - - 13079 40 140 240 340 140 40 - - 340 40 13080 42 142 242 342 142 42 242 42 - - 13081 44 144 244 344 144 44 - - - - 13082 46 146 246 346 146 46 - - - - 13083 48 148 248 348 148 48 248 48 - - 13084 50 150 250 350 150 50 - - 350 50 13085 52 152 252 352 152 52 - - - - 13086 54 154 254 354 154 54 254 54 - - 13087 56 156 256 356 156 56 - - - - 13088 58 158 258 358 158 58 - - - - 13089 60 160 260 360 160 60 260 60 360 60 13090 62 162 262 362 162 62 - - - - 13091 64 164 264 364 164 64 - - - - 13092 66 166 266 366 166 66 266 66 - - 13093 68 168 268 368 168 68 - - - - 13094 70 170 270 370 170 70 - - 370 70 13095 72 172 272 372 172 72 272 72 - - 13096 74 174 274 374 174 74 - - - - 13097 76 176 276 376 176 76 - - - - 13098 78 178 278 378 178 78 278 78 - - 13099 80 180 280 380 180 80 - - 380 80 13100 82 182 282 382 182 82 - - - - 13101 84 184 284 384 184 84 284 84 - - 13102 86 186 286 386 186 86 - - - - 13103 88 188 288 388 188 88 - - - - 13104 90 190 290 390 190 90 290 90 390 90 13105 92 192 292 392 192 92 - - - - 13106 94 194 294 394 194 94 - - - - 13107 - - - - - - - - 300 0 13108} 13109do_execsql_test joinD-449 { 13110 SELECT t1.*, t2.*, t3.*, t4.* 13111 FROM t1 LEFT JOIN t2 ON t2.x>0 13112 LEFT JOIN t3 ON t3.y>0 13113 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 13114 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 13115 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13116} { 13117 6 106 206 306 106 6 206 6 - - 13118 12 112 212 312 112 12 212 12 - - 13119 18 118 218 318 118 18 218 18 - - 13120 24 124 224 324 124 24 224 24 - - 13121 30 130 230 330 130 30 230 30 330 30 13122 36 136 236 336 136 36 236 36 - - 13123 42 142 242 342 142 42 242 42 - - 13124 48 148 248 348 148 48 248 48 - - 13125 54 154 254 354 154 54 254 54 - - 13126 60 160 260 360 160 60 260 60 360 60 13127 66 166 266 366 166 66 266 66 - - 13128 72 172 272 372 172 72 272 72 - - 13129 78 178 278 378 178 78 278 78 - - 13130 84 184 284 384 184 84 284 84 - - 13131 90 190 290 390 190 90 290 90 390 90 13132 - - - - - - - - 300 0 13133} 13134do_execsql_test joinD-450 { 13135 SELECT t1.*, t2.*, t3.*, t4.* 13136 FROM t1 LEFT JOIN t2 ON t2.x>0 13137 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 13138 FULL JOIN t4 ON t4.z>0 13139 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 13140 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13141} { 13142 10 110 210 310 110 10 - - 310 10 13143 20 120 220 320 120 20 - - 320 20 13144 30 130 230 330 130 30 230 30 330 30 13145 40 140 240 340 140 40 - - 340 40 13146 50 150 250 350 150 50 - - 350 50 13147 60 160 260 360 160 60 260 60 360 60 13148 70 170 270 370 170 70 - - 370 70 13149 80 180 280 380 180 80 - - 380 80 13150 90 190 290 390 190 90 290 90 390 90 13151} 13152do_execsql_test joinD-451 { 13153 SELECT t1.*, t2.*, t3.*, t4.* 13154 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 13155 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 13156 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 13157 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13158} { 13159 0 100 200 300 - - - - - - 13160 1 101 201 301 - - - - - - 13161 2 102 202 302 102 2 - - - - 13162 3 103 203 303 - - 203 3 - - 13163 4 104 204 304 104 4 - - - - 13164 5 105 205 305 - - - - 305 5 13165 6 106 206 306 106 6 206 6 - - 13166 7 107 207 307 - - - - - - 13167 8 108 208 308 108 8 - - - - 13168 9 109 209 309 - - 209 9 - - 13169 10 110 210 310 110 10 - - 310 10 13170 11 111 211 311 - - - - - - 13171 12 112 212 312 112 12 212 12 - - 13172 13 113 213 313 - - - - - - 13173 14 114 214 314 114 14 - - - - 13174 15 115 215 315 - - 215 15 315 15 13175 16 116 216 316 116 16 - - - - 13176 17 117 217 317 - - - - - - 13177 18 118 218 318 118 18 218 18 - - 13178 19 119 219 319 - - - - - - 13179 20 120 220 320 120 20 - - 320 20 13180 21 121 221 321 - - 221 21 - - 13181 22 122 222 322 122 22 - - - - 13182 23 123 223 323 - - - - - - 13183 24 124 224 324 124 24 224 24 - - 13184 25 125 225 325 - - - - 325 25 13185 26 126 226 326 126 26 - - - - 13186 27 127 227 327 - - 227 27 - - 13187 28 128 228 328 128 28 - - - - 13188 29 129 229 329 - - - - - - 13189 30 130 230 330 130 30 230 30 330 30 13190 31 131 231 331 - - - - - - 13191 32 132 232 332 132 32 - - - - 13192 33 133 233 333 - - 233 33 - - 13193 34 134 234 334 134 34 - - - - 13194 35 135 235 335 - - - - 335 35 13195 36 136 236 336 136 36 236 36 - - 13196 37 137 237 337 - - - - - - 13197 38 138 238 338 138 38 - - - - 13198 39 139 239 339 - - 239 39 - - 13199 40 140 240 340 140 40 - - 340 40 13200 41 141 241 341 - - - - - - 13201 42 142 242 342 142 42 242 42 - - 13202 43 143 243 343 - - - - - - 13203 44 144 244 344 144 44 - - - - 13204 45 145 245 345 - - 245 45 345 45 13205 46 146 246 346 146 46 - - - - 13206 47 147 247 347 - - - - - - 13207 48 148 248 348 148 48 248 48 - - 13208 49 149 249 349 - - - - - - 13209 50 150 250 350 150 50 - - 350 50 13210 51 151 251 351 - - 251 51 - - 13211 52 152 252 352 152 52 - - - - 13212 53 153 253 353 - - - - - - 13213 54 154 254 354 154 54 254 54 - - 13214 55 155 255 355 - - - - 355 55 13215 56 156 256 356 156 56 - - - - 13216 57 157 257 357 - - 257 57 - - 13217 58 158 258 358 158 58 - - - - 13218 59 159 259 359 - - - - - - 13219 60 160 260 360 160 60 260 60 360 60 13220 61 161 261 361 - - - - - - 13221 62 162 262 362 162 62 - - - - 13222 63 163 263 363 - - 263 63 - - 13223 64 164 264 364 164 64 - - - - 13224 65 165 265 365 - - - - 365 65 13225 66 166 266 366 166 66 266 66 - - 13226 67 167 267 367 - - - - - - 13227 68 168 268 368 168 68 - - - - 13228 69 169 269 369 - - 269 69 - - 13229 70 170 270 370 170 70 - - 370 70 13230 71 171 271 371 - - - - - - 13231 72 172 272 372 172 72 272 72 - - 13232 73 173 273 373 - - - - - - 13233 74 174 274 374 174 74 - - - - 13234 75 175 275 375 - - 275 75 375 75 13235 76 176 276 376 176 76 - - - - 13236 77 177 277 377 - - - - - - 13237 78 178 278 378 178 78 278 78 - - 13238 79 179 279 379 - - - - - - 13239 80 180 280 380 180 80 - - 380 80 13240 81 181 281 381 - - 281 81 - - 13241 82 182 282 382 182 82 - - - - 13242 83 183 283 383 - - - - - - 13243 84 184 284 384 184 84 284 84 - - 13244 85 185 285 385 - - - - 385 85 13245 86 186 286 386 186 86 - - - - 13246 87 187 287 387 - - 287 87 - - 13247 88 188 288 388 188 88 - - - - 13248 89 189 289 389 - - - - - - 13249 90 190 290 390 190 90 290 90 390 90 13250 91 191 291 391 - - - - - - 13251 92 192 292 392 192 92 - - - - 13252 93 193 293 393 - - 293 93 - - 13253 94 194 294 394 194 94 - - - - 13254 95 195 295 395 - - - - 395 95 13255 96 - 296 396 - - - - - - 13256 97 197 - 397 - - - - - - 13257 98 198 298 - - - - - - - 13258 99 - - - - - - - - - 13259 - - - - - - - - 300 0 13260} 13261do_execsql_test joinD-452 { 13262 SELECT t1.*, t2.*, t3.*, t4.* 13263 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13264 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 13265 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 13266 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13267} { 13268 0 100 200 300 - - - - - - 13269 1 101 201 301 - - - - - - 13270 2 102 202 302 102 2 - - - - 13271 3 103 203 303 - - 203 3 - - 13272 4 104 204 304 104 4 - - - - 13273 5 105 205 305 - - - - 305 5 13274 6 106 206 306 106 6 206 6 - - 13275 7 107 207 307 - - - - - - 13276 8 108 208 308 108 8 - - - - 13277 9 109 209 309 - - 209 9 - - 13278 10 110 210 310 110 10 - - 310 10 13279 11 111 211 311 - - - - - - 13280 12 112 212 312 112 12 212 12 - - 13281 13 113 213 313 - - - - - - 13282 14 114 214 314 114 14 - - - - 13283 15 115 215 315 - - 215 15 315 15 13284 16 116 216 316 116 16 - - - - 13285 17 117 217 317 - - - - - - 13286 18 118 218 318 118 18 218 18 - - 13287 19 119 219 319 - - - - - - 13288 20 120 220 320 120 20 - - 320 20 13289 21 121 221 321 - - 221 21 - - 13290 22 122 222 322 122 22 - - - - 13291 23 123 223 323 - - - - - - 13292 24 124 224 324 124 24 224 24 - - 13293 25 125 225 325 - - - - 325 25 13294 26 126 226 326 126 26 - - - - 13295 27 127 227 327 - - 227 27 - - 13296 28 128 228 328 128 28 - - - - 13297 29 129 229 329 - - - - - - 13298 30 130 230 330 130 30 230 30 330 30 13299 31 131 231 331 - - - - - - 13300 32 132 232 332 132 32 - - - - 13301 33 133 233 333 - - 233 33 - - 13302 34 134 234 334 134 34 - - - - 13303 35 135 235 335 - - - - 335 35 13304 36 136 236 336 136 36 236 36 - - 13305 37 137 237 337 - - - - - - 13306 38 138 238 338 138 38 - - - - 13307 39 139 239 339 - - 239 39 - - 13308 40 140 240 340 140 40 - - 340 40 13309 41 141 241 341 - - - - - - 13310 42 142 242 342 142 42 242 42 - - 13311 43 143 243 343 - - - - - - 13312 44 144 244 344 144 44 - - - - 13313 45 145 245 345 - - 245 45 345 45 13314 46 146 246 346 146 46 - - - - 13315 47 147 247 347 - - - - - - 13316 48 148 248 348 148 48 248 48 - - 13317 49 149 249 349 - - - - - - 13318 50 150 250 350 150 50 - - 350 50 13319 51 151 251 351 - - 251 51 - - 13320 52 152 252 352 152 52 - - - - 13321 53 153 253 353 - - - - - - 13322 54 154 254 354 154 54 254 54 - - 13323 55 155 255 355 - - - - 355 55 13324 56 156 256 356 156 56 - - - - 13325 57 157 257 357 - - 257 57 - - 13326 58 158 258 358 158 58 - - - - 13327 59 159 259 359 - - - - - - 13328 60 160 260 360 160 60 260 60 360 60 13329 61 161 261 361 - - - - - - 13330 62 162 262 362 162 62 - - - - 13331 63 163 263 363 - - 263 63 - - 13332 64 164 264 364 164 64 - - - - 13333 65 165 265 365 - - - - 365 65 13334 66 166 266 366 166 66 266 66 - - 13335 67 167 267 367 - - - - - - 13336 68 168 268 368 168 68 - - - - 13337 69 169 269 369 - - 269 69 - - 13338 70 170 270 370 170 70 - - 370 70 13339 71 171 271 371 - - - - - - 13340 72 172 272 372 172 72 272 72 - - 13341 73 173 273 373 - - - - - - 13342 74 174 274 374 174 74 - - - - 13343 75 175 275 375 - - 275 75 375 75 13344 76 176 276 376 176 76 - - - - 13345 77 177 277 377 - - - - - - 13346 78 178 278 378 178 78 278 78 - - 13347 79 179 279 379 - - - - - - 13348 80 180 280 380 180 80 - - 380 80 13349 81 181 281 381 - - 281 81 - - 13350 82 182 282 382 182 82 - - - - 13351 83 183 283 383 - - - - - - 13352 84 184 284 384 184 84 284 84 - - 13353 85 185 285 385 - - - - 385 85 13354 86 186 286 386 186 86 - - - - 13355 87 187 287 387 - - 287 87 - - 13356 88 188 288 388 188 88 - - - - 13357 89 189 289 389 - - - - - - 13358 90 190 290 390 190 90 290 90 390 90 13359 91 191 291 391 - - - - - - 13360 92 192 292 392 192 92 - - - - 13361 93 193 293 393 - - 293 93 - - 13362 94 194 294 394 194 94 - - - - 13363 95 195 295 395 - - - - 395 95 13364 96 - 296 396 - - - - - - 13365 97 197 - 397 - - - - - - 13366 98 198 298 - - - - - - - 13367 99 - - - - - - - - - 13368 - - - - - - - - 300 0 13369} 13370do_execsql_test joinD-453 { 13371 SELECT t1.*, t2.*, t3.*, t4.* 13372 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13373 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13374 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13375 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13376} { 13377 15 115 215 315 - - 215 15 315 15 13378 30 130 230 330 130 30 230 30 330 30 13379 45 145 245 345 - - 245 45 345 45 13380 60 160 260 360 160 60 260 60 360 60 13381 75 175 275 375 - - 275 75 375 75 13382 90 190 290 390 190 90 290 90 390 90 13383} 13384do_execsql_test joinD-454 { 13385 SELECT t1.*, t2.*, t3.*, t4.* 13386 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 13387 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13388 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13389 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13390} { 13391 15 115 215 315 - - 215 15 315 15 13392 30 130 230 330 130 30 230 30 330 30 13393 45 145 245 345 - - 245 45 345 45 13394 60 160 260 360 160 60 260 60 360 60 13395 75 175 275 375 - - 275 75 375 75 13396 90 190 290 390 190 90 290 90 390 90 13397} 13398do_execsql_test joinD-455 { 13399 SELECT t1.*, t2.*, t3.*, t4.* 13400 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13401 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13402 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13403 WHERE t2.x>0 13404 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13405} { 13406 30 130 230 330 130 30 230 30 330 30 13407 60 160 260 360 160 60 260 60 360 60 13408 90 190 290 390 190 90 290 90 390 90 13409} 13410do_execsql_test joinD-456 { 13411 SELECT t1.*, t2.*, t3.*, t4.* 13412 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13413 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13414 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13415 WHERE (t2.x>0 OR t2.x IS NULL) 13416 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13417} { 13418 15 115 215 315 - - 215 15 315 15 13419 30 130 230 330 130 30 230 30 330 30 13420 45 145 245 345 - - 245 45 345 45 13421 60 160 260 360 160 60 260 60 360 60 13422 75 175 275 375 - - 275 75 375 75 13423 90 190 290 390 190 90 290 90 390 90 13424} 13425do_execsql_test joinD-457 { 13426 SELECT t1.*, t2.*, t3.*, t4.* 13427 FROM t1 LEFT JOIN t2 ON true 13428 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13429 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13430 WHERE t1.b=t2.b AND t2.x>0 13431 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13432} { 13433 30 130 230 330 130 30 230 30 330 30 13434 60 160 260 360 160 60 260 60 360 60 13435 90 190 290 390 190 90 290 90 390 90 13436} 13437do_execsql_test joinD-458 { 13438 SELECT t1.*, t2.*, t3.*, t4.* 13439 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13440 RIGHT JOIN t3 ON t1.c=t3.c 13441 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13442 WHERE t3.y>0 13443 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13444} { 13445 15 115 215 315 - - 215 15 315 15 13446 30 130 230 330 130 30 230 30 330 30 13447 45 145 245 345 - - 245 45 345 45 13448 60 160 260 360 160 60 260 60 360 60 13449 75 175 275 375 - - 275 75 375 75 13450 90 190 290 390 190 90 290 90 390 90 13451} 13452do_execsql_test joinD-459 { 13453 SELECT t1.*, t2.*, t3.*, t4.* 13454 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13455 RIGHT JOIN t3 ON t1.c=t3.c 13456 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13457 WHERE t3.y>0 OR t3.y IS NULL 13458 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13459} { 13460 15 115 215 315 - - 215 15 315 15 13461 30 130 230 330 130 30 230 30 330 30 13462 45 145 245 345 - - 245 45 345 45 13463 60 160 260 360 160 60 260 60 360 60 13464 75 175 275 375 - - 275 75 375 75 13465 90 190 290 390 190 90 290 90 390 90 13466} 13467do_execsql_test joinD-460 { 13468 SELECT t1.*, t2.*, t3.*, t4.* 13469 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13470 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13471 INNER JOIN t4 ON t1.d=t4.d 13472 WHERE t4.z>0 13473 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13474} { 13475 15 115 215 315 - - 215 15 315 15 13476 30 130 230 330 130 30 230 30 330 30 13477 45 145 245 345 - - 245 45 345 45 13478 60 160 260 360 160 60 260 60 360 60 13479 75 175 275 375 - - 275 75 375 75 13480 90 190 290 390 190 90 290 90 390 90 13481} 13482do_execsql_test joinD-461 { 13483 SELECT t1.*, t2.*, t3.*, t4.* 13484 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13485 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13486 INNER JOIN t4 ON t1.d=t4.d 13487 WHERE t4.z IS NULL OR t4.z>0 13488 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13489} { 13490 15 115 215 315 - - 215 15 315 15 13491 30 130 230 330 130 30 230 30 330 30 13492 45 145 245 345 - - 245 45 345 45 13493 60 160 260 360 160 60 260 60 360 60 13494 75 175 275 375 - - 275 75 375 75 13495 90 190 290 390 190 90 290 90 390 90 13496} 13497do_execsql_test joinD-462 { 13498 SELECT t1.*, t2.*, t3.*, t4.* 13499 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13500 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13501 INNER JOIN t4 ON t1.d=t4.d 13502 WHERE t2.x>0 AND t4.z>0 13503 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13504} { 13505 30 130 230 330 130 30 230 30 330 30 13506 60 160 260 360 160 60 260 60 360 60 13507 90 190 290 390 190 90 290 90 390 90 13508} 13509do_execsql_test joinD-463 { 13510 SELECT t1.*, t2.*, t3.*, t4.* 13511 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13512 RIGHT JOIN t3 ON t1.c=t3.c 13513 INNER JOIN t4 ON t1.d=t4.d 13514 WHERE t4.z>0 AND t3.y>0 13515 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13516} { 13517 15 115 215 315 - - 215 15 315 15 13518 30 130 230 330 130 30 230 30 330 30 13519 45 145 245 345 - - 245 45 345 45 13520 60 160 260 360 160 60 260 60 360 60 13521 75 175 275 375 - - 275 75 375 75 13522 90 190 290 390 190 90 290 90 390 90 13523} 13524do_execsql_test joinD-464 { 13525 SELECT t1.*, t2.*, t3.*, t4.* 13526 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13527 RIGHT JOIN t3 ON t1.c=t3.c 13528 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13529 WHERE t2.x>0 AND t3.y>0 13530 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13531} { 13532 30 130 230 330 130 30 230 30 330 30 13533 60 160 260 360 160 60 260 60 360 60 13534 90 190 290 390 190 90 290 90 390 90 13535} 13536do_execsql_test joinD-465 { 13537 SELECT t1.*, t2.*, t3.*, t4.* 13538 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13539 RIGHT JOIN t3 ON t1.c=t3.c 13540 INNER JOIN t4 ON t1.d=t4.d 13541 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 13542 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13543} { 13544 30 130 230 330 130 30 230 30 330 30 13545 60 160 260 360 160 60 260 60 360 60 13546 90 190 290 390 190 90 290 90 390 90 13547} 13548do_execsql_test joinD-466 { 13549 SELECT t1.*, t2.*, t3.*, t4.* 13550 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 13551 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 13552 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 13553 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13554} { 13555 15 115 215 315 - - 215 15 315 15 13556 30 130 230 330 130 30 230 30 330 30 13557 45 145 245 345 - - 245 45 345 45 13558 60 160 260 360 160 60 260 60 360 60 13559 75 175 275 375 - - 275 75 375 75 13560 90 190 290 390 190 90 290 90 390 90 13561} 13562do_execsql_test joinD-467 { 13563 SELECT t1.*, t2.*, t3.*, t4.* 13564 FROM t1 LEFT JOIN t2 ON t2.x>0 13565 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 13566 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 13567 WHERE t1.b IS NOT DISTINCT FROM t2.b 13568 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13569} { 13570 30 130 230 330 130 30 230 30 330 30 13571 60 160 260 360 160 60 260 60 360 60 13572 90 190 290 390 190 90 290 90 390 90 13573} 13574do_execsql_test joinD-468 { 13575 SELECT t1.*, t2.*, t3.*, t4.* 13576 FROM t1 LEFT JOIN t2 ON t2.x>0 13577 RIGHT JOIN t3 ON t3.y>0 13578 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 13579 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 13580 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13581} { 13582 30 130 230 330 130 30 230 30 330 30 13583 60 160 260 360 160 60 260 60 360 60 13584 90 190 290 390 190 90 290 90 390 90 13585} 13586do_execsql_test joinD-469 { 13587 SELECT t1.*, t2.*, t3.*, t4.* 13588 FROM t1 LEFT JOIN t2 ON t2.x>0 13589 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 13590 INNER JOIN t4 ON t4.z>0 13591 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 13592 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13593} { 13594 30 130 230 330 130 30 230 30 330 30 13595 60 160 260 360 160 60 260 60 360 60 13596 90 190 290 390 190 90 290 90 390 90 13597} 13598do_execsql_test joinD-470 { 13599 SELECT t1.*, t2.*, t3.*, t4.* 13600 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 13601 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13602 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13603 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13604} { 13605 15 115 215 315 - - 215 15 315 15 13606 30 130 230 330 130 30 230 30 330 30 13607 45 145 245 345 - - 245 45 345 45 13608 60 160 260 360 160 60 260 60 360 60 13609 75 175 275 375 - - 275 75 375 75 13610 90 190 290 390 190 90 290 90 390 90 13611} 13612do_execsql_test joinD-471 { 13613 SELECT t1.*, t2.*, t3.*, t4.* 13614 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13615 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 13616 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13617 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13618} { 13619 15 115 215 315 - - 215 15 315 15 13620 30 130 230 330 130 30 230 30 330 30 13621 45 145 245 345 - - 245 45 345 45 13622 60 160 260 360 160 60 260 60 360 60 13623 75 175 275 375 - - 275 75 375 75 13624 90 190 290 390 190 90 290 90 390 90 13625} 13626do_execsql_test joinD-472 { 13627 SELECT t1.*, t2.*, t3.*, t4.* 13628 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13629 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13630 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 13631 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13632} { 13633 3 103 203 303 - - 203 3 - - 13634 6 106 206 306 106 6 206 6 - - 13635 9 109 209 309 - - 209 9 - - 13636 12 112 212 312 112 12 212 12 - - 13637 15 115 215 315 - - 215 15 315 15 13638 18 118 218 318 118 18 218 18 - - 13639 21 121 221 321 - - 221 21 - - 13640 24 124 224 324 124 24 224 24 - - 13641 27 127 227 327 - - 227 27 - - 13642 30 130 230 330 130 30 230 30 330 30 13643 33 133 233 333 - - 233 33 - - 13644 36 136 236 336 136 36 236 36 - - 13645 39 139 239 339 - - 239 39 - - 13646 42 142 242 342 142 42 242 42 - - 13647 45 145 245 345 - - 245 45 345 45 13648 48 148 248 348 148 48 248 48 - - 13649 51 151 251 351 - - 251 51 - - 13650 54 154 254 354 154 54 254 54 - - 13651 57 157 257 357 - - 257 57 - - 13652 60 160 260 360 160 60 260 60 360 60 13653 63 163 263 363 - - 263 63 - - 13654 66 166 266 366 166 66 266 66 - - 13655 69 169 269 369 - - 269 69 - - 13656 72 172 272 372 172 72 272 72 - - 13657 75 175 275 375 - - 275 75 375 75 13658 78 178 278 378 178 78 278 78 - - 13659 81 181 281 381 - - 281 81 - - 13660 84 184 284 384 184 84 284 84 - - 13661 87 187 287 387 - - 287 87 - - 13662 90 190 290 390 190 90 290 90 390 90 13663 93 193 293 393 - - 293 93 - - 13664 - - - - - - 200 0 - - 13665} 13666do_execsql_test joinD-473 { 13667 SELECT t1.*, t2.*, t3.*, t4.* 13668 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 13669 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13670 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 13671 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13672} { 13673 3 103 203 303 - - 203 3 - - 13674 6 106 206 306 106 6 206 6 - - 13675 9 109 209 309 - - 209 9 - - 13676 12 112 212 312 112 12 212 12 - - 13677 15 115 215 315 - - 215 15 315 15 13678 18 118 218 318 118 18 218 18 - - 13679 21 121 221 321 - - 221 21 - - 13680 24 124 224 324 124 24 224 24 - - 13681 27 127 227 327 - - 227 27 - - 13682 30 130 230 330 130 30 230 30 330 30 13683 33 133 233 333 - - 233 33 - - 13684 36 136 236 336 136 36 236 36 - - 13685 39 139 239 339 - - 239 39 - - 13686 42 142 242 342 142 42 242 42 - - 13687 45 145 245 345 - - 245 45 345 45 13688 48 148 248 348 148 48 248 48 - - 13689 51 151 251 351 - - 251 51 - - 13690 54 154 254 354 154 54 254 54 - - 13691 57 157 257 357 - - 257 57 - - 13692 60 160 260 360 160 60 260 60 360 60 13693 63 163 263 363 - - 263 63 - - 13694 66 166 266 366 166 66 266 66 - - 13695 69 169 269 369 - - 269 69 - - 13696 72 172 272 372 172 72 272 72 - - 13697 75 175 275 375 - - 275 75 375 75 13698 78 178 278 378 178 78 278 78 - - 13699 81 181 281 381 - - 281 81 - - 13700 84 184 284 384 184 84 284 84 - - 13701 87 187 287 387 - - 287 87 - - 13702 90 190 290 390 190 90 290 90 390 90 13703 93 193 293 393 - - 293 93 - - 13704 - - - - - - 200 0 - - 13705} 13706do_execsql_test joinD-474 { 13707 SELECT t1.*, t2.*, t3.*, t4.* 13708 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13709 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13710 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 13711 WHERE t2.x>0 13712 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13713} { 13714 6 106 206 306 106 6 206 6 - - 13715 12 112 212 312 112 12 212 12 - - 13716 18 118 218 318 118 18 218 18 - - 13717 24 124 224 324 124 24 224 24 - - 13718 30 130 230 330 130 30 230 30 330 30 13719 36 136 236 336 136 36 236 36 - - 13720 42 142 242 342 142 42 242 42 - - 13721 48 148 248 348 148 48 248 48 - - 13722 54 154 254 354 154 54 254 54 - - 13723 60 160 260 360 160 60 260 60 360 60 13724 66 166 266 366 166 66 266 66 - - 13725 72 172 272 372 172 72 272 72 - - 13726 78 178 278 378 178 78 278 78 - - 13727 84 184 284 384 184 84 284 84 - - 13728 90 190 290 390 190 90 290 90 390 90 13729} 13730do_execsql_test joinD-475 { 13731 SELECT t1.*, t2.*, t3.*, t4.* 13732 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13733 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13734 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 13735 WHERE (t2.x>0 OR t2.x IS NULL) 13736 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13737} { 13738 3 103 203 303 - - 203 3 - - 13739 6 106 206 306 106 6 206 6 - - 13740 9 109 209 309 - - 209 9 - - 13741 12 112 212 312 112 12 212 12 - - 13742 15 115 215 315 - - 215 15 315 15 13743 18 118 218 318 118 18 218 18 - - 13744 21 121 221 321 - - 221 21 - - 13745 24 124 224 324 124 24 224 24 - - 13746 27 127 227 327 - - 227 27 - - 13747 30 130 230 330 130 30 230 30 330 30 13748 33 133 233 333 - - 233 33 - - 13749 36 136 236 336 136 36 236 36 - - 13750 39 139 239 339 - - 239 39 - - 13751 42 142 242 342 142 42 242 42 - - 13752 45 145 245 345 - - 245 45 345 45 13753 48 148 248 348 148 48 248 48 - - 13754 51 151 251 351 - - 251 51 - - 13755 54 154 254 354 154 54 254 54 - - 13756 57 157 257 357 - - 257 57 - - 13757 60 160 260 360 160 60 260 60 360 60 13758 63 163 263 363 - - 263 63 - - 13759 66 166 266 366 166 66 266 66 - - 13760 69 169 269 369 - - 269 69 - - 13761 72 172 272 372 172 72 272 72 - - 13762 75 175 275 375 - - 275 75 375 75 13763 78 178 278 378 178 78 278 78 - - 13764 81 181 281 381 - - 281 81 - - 13765 84 184 284 384 184 84 284 84 - - 13766 87 187 287 387 - - 287 87 - - 13767 90 190 290 390 190 90 290 90 390 90 13768 93 193 293 393 - - 293 93 - - 13769 - - - - - - 200 0 - - 13770} 13771do_execsql_test joinD-476 { 13772 SELECT t1.*, t2.*, t3.*, t4.* 13773 FROM t1 LEFT JOIN t2 ON true 13774 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13775 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 13776 WHERE t1.b=t2.b AND t2.x>0 13777 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13778} { 13779 6 106 206 306 106 6 206 6 - - 13780 12 112 212 312 112 12 212 12 - - 13781 18 118 218 318 118 18 218 18 - - 13782 24 124 224 324 124 24 224 24 - - 13783 30 130 230 330 130 30 230 30 330 30 13784 36 136 236 336 136 36 236 36 - - 13785 42 142 242 342 142 42 242 42 - - 13786 48 148 248 348 148 48 248 48 - - 13787 54 154 254 354 154 54 254 54 - - 13788 60 160 260 360 160 60 260 60 360 60 13789 66 166 266 366 166 66 266 66 - - 13790 72 172 272 372 172 72 272 72 - - 13791 78 178 278 378 178 78 278 78 - - 13792 84 184 284 384 184 84 284 84 - - 13793 90 190 290 390 190 90 290 90 390 90 13794} 13795do_execsql_test joinD-477 { 13796 SELECT t1.*, t2.*, t3.*, t4.* 13797 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13798 RIGHT JOIN t3 ON t1.c=t3.c 13799 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 13800 WHERE t3.y>0 13801 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13802} { 13803 3 103 203 303 - - 203 3 - - 13804 6 106 206 306 106 6 206 6 - - 13805 9 109 209 309 - - 209 9 - - 13806 12 112 212 312 112 12 212 12 - - 13807 15 115 215 315 - - 215 15 315 15 13808 18 118 218 318 118 18 218 18 - - 13809 21 121 221 321 - - 221 21 - - 13810 24 124 224 324 124 24 224 24 - - 13811 27 127 227 327 - - 227 27 - - 13812 30 130 230 330 130 30 230 30 330 30 13813 33 133 233 333 - - 233 33 - - 13814 36 136 236 336 136 36 236 36 - - 13815 39 139 239 339 - - 239 39 - - 13816 42 142 242 342 142 42 242 42 - - 13817 45 145 245 345 - - 245 45 345 45 13818 48 148 248 348 148 48 248 48 - - 13819 51 151 251 351 - - 251 51 - - 13820 54 154 254 354 154 54 254 54 - - 13821 57 157 257 357 - - 257 57 - - 13822 60 160 260 360 160 60 260 60 360 60 13823 63 163 263 363 - - 263 63 - - 13824 66 166 266 366 166 66 266 66 - - 13825 69 169 269 369 - - 269 69 - - 13826 72 172 272 372 172 72 272 72 - - 13827 75 175 275 375 - - 275 75 375 75 13828 78 178 278 378 178 78 278 78 - - 13829 81 181 281 381 - - 281 81 - - 13830 84 184 284 384 184 84 284 84 - - 13831 87 187 287 387 - - 287 87 - - 13832 90 190 290 390 190 90 290 90 390 90 13833 93 193 293 393 - - 293 93 - - 13834} 13835do_execsql_test joinD-478 { 13836 SELECT t1.*, t2.*, t3.*, t4.* 13837 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13838 RIGHT JOIN t3 ON t1.c=t3.c 13839 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 13840 WHERE t3.y>0 OR t3.y IS NULL 13841 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13842} { 13843 3 103 203 303 - - 203 3 - - 13844 6 106 206 306 106 6 206 6 - - 13845 9 109 209 309 - - 209 9 - - 13846 12 112 212 312 112 12 212 12 - - 13847 15 115 215 315 - - 215 15 315 15 13848 18 118 218 318 118 18 218 18 - - 13849 21 121 221 321 - - 221 21 - - 13850 24 124 224 324 124 24 224 24 - - 13851 27 127 227 327 - - 227 27 - - 13852 30 130 230 330 130 30 230 30 330 30 13853 33 133 233 333 - - 233 33 - - 13854 36 136 236 336 136 36 236 36 - - 13855 39 139 239 339 - - 239 39 - - 13856 42 142 242 342 142 42 242 42 - - 13857 45 145 245 345 - - 245 45 345 45 13858 48 148 248 348 148 48 248 48 - - 13859 51 151 251 351 - - 251 51 - - 13860 54 154 254 354 154 54 254 54 - - 13861 57 157 257 357 - - 257 57 - - 13862 60 160 260 360 160 60 260 60 360 60 13863 63 163 263 363 - - 263 63 - - 13864 66 166 266 366 166 66 266 66 - - 13865 69 169 269 369 - - 269 69 - - 13866 72 172 272 372 172 72 272 72 - - 13867 75 175 275 375 - - 275 75 375 75 13868 78 178 278 378 178 78 278 78 - - 13869 81 181 281 381 - - 281 81 - - 13870 84 184 284 384 184 84 284 84 - - 13871 87 187 287 387 - - 287 87 - - 13872 90 190 290 390 190 90 290 90 390 90 13873 93 193 293 393 - - 293 93 - - 13874} 13875do_execsql_test joinD-479 { 13876 SELECT t1.*, t2.*, t3.*, t4.* 13877 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13878 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13879 LEFT JOIN t4 ON t1.d=t4.d 13880 WHERE t4.z>0 13881 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13882} { 13883 15 115 215 315 - - 215 15 315 15 13884 30 130 230 330 130 30 230 30 330 30 13885 45 145 245 345 - - 245 45 345 45 13886 60 160 260 360 160 60 260 60 360 60 13887 75 175 275 375 - - 275 75 375 75 13888 90 190 290 390 190 90 290 90 390 90 13889} 13890do_execsql_test joinD-480 { 13891 SELECT t1.*, t2.*, t3.*, t4.* 13892 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13893 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13894 LEFT JOIN t4 ON t1.d=t4.d 13895 WHERE t4.z IS NULL OR t4.z>0 13896 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13897} { 13898 3 103 203 303 - - 203 3 - - 13899 6 106 206 306 106 6 206 6 - - 13900 9 109 209 309 - - 209 9 - - 13901 12 112 212 312 112 12 212 12 - - 13902 15 115 215 315 - - 215 15 315 15 13903 18 118 218 318 118 18 218 18 - - 13904 21 121 221 321 - - 221 21 - - 13905 24 124 224 324 124 24 224 24 - - 13906 27 127 227 327 - - 227 27 - - 13907 30 130 230 330 130 30 230 30 330 30 13908 33 133 233 333 - - 233 33 - - 13909 36 136 236 336 136 36 236 36 - - 13910 39 139 239 339 - - 239 39 - - 13911 42 142 242 342 142 42 242 42 - - 13912 45 145 245 345 - - 245 45 345 45 13913 48 148 248 348 148 48 248 48 - - 13914 51 151 251 351 - - 251 51 - - 13915 54 154 254 354 154 54 254 54 - - 13916 57 157 257 357 - - 257 57 - - 13917 60 160 260 360 160 60 260 60 360 60 13918 63 163 263 363 - - 263 63 - - 13919 66 166 266 366 166 66 266 66 - - 13920 69 169 269 369 - - 269 69 - - 13921 72 172 272 372 172 72 272 72 - - 13922 75 175 275 375 - - 275 75 375 75 13923 78 178 278 378 178 78 278 78 - - 13924 81 181 281 381 - - 281 81 - - 13925 84 184 284 384 184 84 284 84 - - 13926 87 187 287 387 - - 287 87 - - 13927 90 190 290 390 190 90 290 90 390 90 13928 93 193 293 393 - - 293 93 - - 13929 - - - - - - 200 0 - - 13930} 13931do_execsql_test joinD-481 { 13932 SELECT t1.*, t2.*, t3.*, t4.* 13933 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13934 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13935 LEFT JOIN t4 ON t1.d=t4.d 13936 WHERE t2.x>0 AND t4.z>0 13937 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13938} { 13939 30 130 230 330 130 30 230 30 330 30 13940 60 160 260 360 160 60 260 60 360 60 13941 90 190 290 390 190 90 290 90 390 90 13942} 13943do_execsql_test joinD-482 { 13944 SELECT t1.*, t2.*, t3.*, t4.* 13945 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13946 RIGHT JOIN t3 ON t1.c=t3.c 13947 LEFT JOIN t4 ON t1.d=t4.d 13948 WHERE t4.z>0 AND t3.y>0 13949 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13950} { 13951 15 115 215 315 - - 215 15 315 15 13952 30 130 230 330 130 30 230 30 330 30 13953 45 145 245 345 - - 245 45 345 45 13954 60 160 260 360 160 60 260 60 360 60 13955 75 175 275 375 - - 275 75 375 75 13956 90 190 290 390 190 90 290 90 390 90 13957} 13958do_execsql_test joinD-483 { 13959 SELECT t1.*, t2.*, t3.*, t4.* 13960 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13961 RIGHT JOIN t3 ON t1.c=t3.c 13962 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 13963 WHERE t2.x>0 AND t3.y>0 13964 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13965} { 13966 6 106 206 306 106 6 206 6 - - 13967 12 112 212 312 112 12 212 12 - - 13968 18 118 218 318 118 18 218 18 - - 13969 24 124 224 324 124 24 224 24 - - 13970 30 130 230 330 130 30 230 30 330 30 13971 36 136 236 336 136 36 236 36 - - 13972 42 142 242 342 142 42 242 42 - - 13973 48 148 248 348 148 48 248 48 - - 13974 54 154 254 354 154 54 254 54 - - 13975 60 160 260 360 160 60 260 60 360 60 13976 66 166 266 366 166 66 266 66 - - 13977 72 172 272 372 172 72 272 72 - - 13978 78 178 278 378 178 78 278 78 - - 13979 84 184 284 384 184 84 284 84 - - 13980 90 190 290 390 190 90 290 90 390 90 13981} 13982do_execsql_test joinD-484 { 13983 SELECT t1.*, t2.*, t3.*, t4.* 13984 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13985 RIGHT JOIN t3 ON t1.c=t3.c 13986 LEFT JOIN t4 ON t1.d=t4.d 13987 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 13988 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13989} { 13990 30 130 230 330 130 30 230 30 330 30 13991 60 160 260 360 160 60 260 60 360 60 13992 90 190 290 390 190 90 290 90 390 90 13993} 13994do_execsql_test joinD-485 { 13995 SELECT t1.*, t2.*, t3.*, t4.* 13996 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 13997 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 13998 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 13999 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14000} { 14001 3 103 203 303 - - 203 3 - - 14002 6 106 206 306 106 6 206 6 - - 14003 9 109 209 309 - - 209 9 - - 14004 12 112 212 312 112 12 212 12 - - 14005 15 115 215 315 - - 215 15 315 15 14006 18 118 218 318 118 18 218 18 - - 14007 21 121 221 321 - - 221 21 - - 14008 24 124 224 324 124 24 224 24 - - 14009 27 127 227 327 - - 227 27 - - 14010 30 130 230 330 130 30 230 30 330 30 14011 33 133 233 333 - - 233 33 - - 14012 36 136 236 336 136 36 236 36 - - 14013 39 139 239 339 - - 239 39 - - 14014 42 142 242 342 142 42 242 42 - - 14015 45 145 245 345 - - 245 45 345 45 14016 48 148 248 348 148 48 248 48 - - 14017 51 151 251 351 - - 251 51 - - 14018 54 154 254 354 154 54 254 54 - - 14019 57 157 257 357 - - 257 57 - - 14020 60 160 260 360 160 60 260 60 360 60 14021 63 163 263 363 - - 263 63 - - 14022 66 166 266 366 166 66 266 66 - - 14023 69 169 269 369 - - 269 69 - - 14024 72 172 272 372 172 72 272 72 - - 14025 75 175 275 375 - - 275 75 375 75 14026 78 178 278 378 178 78 278 78 - - 14027 81 181 281 381 - - 281 81 - - 14028 84 184 284 384 184 84 284 84 - - 14029 87 187 287 387 - - 287 87 - - 14030 90 190 290 390 190 90 290 90 390 90 14031 93 193 293 393 - - 293 93 - - 14032 - - - - - - 200 0 - - 14033} 14034do_execsql_test joinD-486 { 14035 SELECT t1.*, t2.*, t3.*, t4.* 14036 FROM t1 LEFT JOIN t2 ON t2.x>0 14037 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 14038 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 14039 WHERE t1.b IS NOT DISTINCT FROM t2.b 14040 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14041} { 14042 6 106 206 306 106 6 206 6 - - 14043 12 112 212 312 112 12 212 12 - - 14044 18 118 218 318 118 18 218 18 - - 14045 24 124 224 324 124 24 224 24 - - 14046 30 130 230 330 130 30 230 30 330 30 14047 36 136 236 336 136 36 236 36 - - 14048 42 142 242 342 142 42 242 42 - - 14049 48 148 248 348 148 48 248 48 - - 14050 54 154 254 354 154 54 254 54 - - 14051 60 160 260 360 160 60 260 60 360 60 14052 66 166 266 366 166 66 266 66 - - 14053 72 172 272 372 172 72 272 72 - - 14054 78 178 278 378 178 78 278 78 - - 14055 84 184 284 384 184 84 284 84 - - 14056 90 190 290 390 190 90 290 90 390 90 14057 - - - - - - 200 0 - - 14058} 14059do_execsql_test joinD-487 { 14060 SELECT t1.*, t2.*, t3.*, t4.* 14061 FROM t1 LEFT JOIN t2 ON t2.x>0 14062 RIGHT JOIN t3 ON t3.y>0 14063 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 14064 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 14065 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14066} { 14067 6 106 206 306 106 6 206 6 - - 14068 12 112 212 312 112 12 212 12 - - 14069 18 118 218 318 118 18 218 18 - - 14070 24 124 224 324 124 24 224 24 - - 14071 30 130 230 330 130 30 230 30 330 30 14072 36 136 236 336 136 36 236 36 - - 14073 42 142 242 342 142 42 242 42 - - 14074 48 148 248 348 148 48 248 48 - - 14075 54 154 254 354 154 54 254 54 - - 14076 60 160 260 360 160 60 260 60 360 60 14077 66 166 266 366 166 66 266 66 - - 14078 72 172 272 372 172 72 272 72 - - 14079 78 178 278 378 178 78 278 78 - - 14080 84 184 284 384 184 84 284 84 - - 14081 90 190 290 390 190 90 290 90 390 90 14082} 14083do_execsql_test joinD-488 { 14084 SELECT t1.*, t2.*, t3.*, t4.* 14085 FROM t1 LEFT JOIN t2 ON t2.x>0 14086 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 14087 LEFT JOIN t4 ON t4.z>0 14088 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 14089 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14090} { 14091 30 130 230 330 130 30 230 30 330 30 14092 60 160 260 360 160 60 260 60 360 60 14093 90 190 290 390 190 90 290 90 390 90 14094} 14095do_execsql_test joinD-489 { 14096 SELECT t1.*, t2.*, t3.*, t4.* 14097 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 14098 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14099 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 14100 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14101} { 14102 3 103 203 303 - - 203 3 - - 14103 6 106 206 306 106 6 206 6 - - 14104 9 109 209 309 - - 209 9 - - 14105 12 112 212 312 112 12 212 12 - - 14106 15 115 215 315 - - 215 15 315 15 14107 18 118 218 318 118 18 218 18 - - 14108 21 121 221 321 - - 221 21 - - 14109 24 124 224 324 124 24 224 24 - - 14110 27 127 227 327 - - 227 27 - - 14111 30 130 230 330 130 30 230 30 330 30 14112 33 133 233 333 - - 233 33 - - 14113 36 136 236 336 136 36 236 36 - - 14114 39 139 239 339 - - 239 39 - - 14115 42 142 242 342 142 42 242 42 - - 14116 45 145 245 345 - - 245 45 345 45 14117 48 148 248 348 148 48 248 48 - - 14118 51 151 251 351 - - 251 51 - - 14119 54 154 254 354 154 54 254 54 - - 14120 57 157 257 357 - - 257 57 - - 14121 60 160 260 360 160 60 260 60 360 60 14122 63 163 263 363 - - 263 63 - - 14123 66 166 266 366 166 66 266 66 - - 14124 69 169 269 369 - - 269 69 - - 14125 72 172 272 372 172 72 272 72 - - 14126 75 175 275 375 - - 275 75 375 75 14127 78 178 278 378 178 78 278 78 - - 14128 81 181 281 381 - - 281 81 - - 14129 84 184 284 384 184 84 284 84 - - 14130 87 187 287 387 - - 287 87 - - 14131 90 190 290 390 190 90 290 90 390 90 14132 93 193 293 393 - - 293 93 - - 14133 - - - - - - 200 0 - - 14134} 14135do_execsql_test joinD-490 { 14136 SELECT t1.*, t2.*, t3.*, t4.* 14137 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14138 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 14139 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 14140 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14141} { 14142 3 103 203 303 - - 203 3 - - 14143 6 106 206 306 106 6 206 6 - - 14144 9 109 209 309 - - 209 9 - - 14145 12 112 212 312 112 12 212 12 - - 14146 15 115 215 315 - - 215 15 315 15 14147 18 118 218 318 118 18 218 18 - - 14148 21 121 221 321 - - 221 21 - - 14149 24 124 224 324 124 24 224 24 - - 14150 27 127 227 327 - - 227 27 - - 14151 30 130 230 330 130 30 230 30 330 30 14152 33 133 233 333 - - 233 33 - - 14153 36 136 236 336 136 36 236 36 - - 14154 39 139 239 339 - - 239 39 - - 14155 42 142 242 342 142 42 242 42 - - 14156 45 145 245 345 - - 245 45 345 45 14157 48 148 248 348 148 48 248 48 - - 14158 51 151 251 351 - - 251 51 - - 14159 54 154 254 354 154 54 254 54 - - 14160 57 157 257 357 - - 257 57 - - 14161 60 160 260 360 160 60 260 60 360 60 14162 63 163 263 363 - - 263 63 - - 14163 66 166 266 366 166 66 266 66 - - 14164 69 169 269 369 - - 269 69 - - 14165 72 172 272 372 172 72 272 72 - - 14166 75 175 275 375 - - 275 75 375 75 14167 78 178 278 378 178 78 278 78 - - 14168 81 181 281 381 - - 281 81 - - 14169 84 184 284 384 184 84 284 84 - - 14170 87 187 287 387 - - 287 87 - - 14171 90 190 290 390 190 90 290 90 390 90 14172 93 193 293 393 - - 293 93 - - 14173 - - - - - - 200 0 - - 14174} 14175do_execsql_test joinD-491 { 14176 SELECT t1.*, t2.*, t3.*, t4.* 14177 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14178 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14179 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14180 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14181} { 14182 15 115 215 315 - - 215 15 315 15 14183 30 130 230 330 130 30 230 30 330 30 14184 45 145 245 345 - - 245 45 345 45 14185 60 160 260 360 160 60 260 60 360 60 14186 75 175 275 375 - - 275 75 375 75 14187 90 190 290 390 190 90 290 90 390 90 14188 - - - - - - - - 300 0 14189 - - - - - - - - 305 5 14190 - - - - - - - - 310 10 14191 - - - - - - - - 320 20 14192 - - - - - - - - 325 25 14193 - - - - - - - - 335 35 14194 - - - - - - - - 340 40 14195 - - - - - - - - 350 50 14196 - - - - - - - - 355 55 14197 - - - - - - - - 365 65 14198 - - - - - - - - 370 70 14199 - - - - - - - - 380 80 14200 - - - - - - - - 385 85 14201 - - - - - - - - 395 95 14202} 14203do_execsql_test joinD-492 { 14204 SELECT t1.*, t2.*, t3.*, t4.* 14205 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 14206 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14207 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14208 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14209} { 14210 15 115 215 315 - - 215 15 315 15 14211 30 130 230 330 130 30 230 30 330 30 14212 45 145 245 345 - - 245 45 345 45 14213 60 160 260 360 160 60 260 60 360 60 14214 75 175 275 375 - - 275 75 375 75 14215 90 190 290 390 190 90 290 90 390 90 14216 - - - - - - - - 300 0 14217 - - - - - - - - 305 5 14218 - - - - - - - - 310 10 14219 - - - - - - - - 320 20 14220 - - - - - - - - 325 25 14221 - - - - - - - - 335 35 14222 - - - - - - - - 340 40 14223 - - - - - - - - 350 50 14224 - - - - - - - - 355 55 14225 - - - - - - - - 365 65 14226 - - - - - - - - 370 70 14227 - - - - - - - - 380 80 14228 - - - - - - - - 385 85 14229 - - - - - - - - 395 95 14230} 14231do_execsql_test joinD-493 { 14232 SELECT t1.*, t2.*, t3.*, t4.* 14233 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 14234 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14235 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14236 WHERE t2.x>0 14237 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14238} { 14239 30 130 230 330 130 30 230 30 330 30 14240 60 160 260 360 160 60 260 60 360 60 14241 90 190 290 390 190 90 290 90 390 90 14242} 14243do_execsql_test joinD-494 { 14244 SELECT t1.*, t2.*, t3.*, t4.* 14245 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 14246 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14247 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14248 WHERE (t2.x>0 OR t2.x IS NULL) 14249 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14250} { 14251 15 115 215 315 - - 215 15 315 15 14252 30 130 230 330 130 30 230 30 330 30 14253 45 145 245 345 - - 245 45 345 45 14254 60 160 260 360 160 60 260 60 360 60 14255 75 175 275 375 - - 275 75 375 75 14256 90 190 290 390 190 90 290 90 390 90 14257 - - - - - - - - 300 0 14258 - - - - - - - - 305 5 14259 - - - - - - - - 310 10 14260 - - - - - - - - 320 20 14261 - - - - - - - - 325 25 14262 - - - - - - - - 335 35 14263 - - - - - - - - 340 40 14264 - - - - - - - - 350 50 14265 - - - - - - - - 355 55 14266 - - - - - - - - 365 65 14267 - - - - - - - - 370 70 14268 - - - - - - - - 380 80 14269 - - - - - - - - 385 85 14270 - - - - - - - - 395 95 14271} 14272do_execsql_test joinD-495 { 14273 SELECT t1.*, t2.*, t3.*, t4.* 14274 FROM t1 LEFT JOIN t2 ON true 14275 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14276 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14277 WHERE t1.b=t2.b AND t2.x>0 14278 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14279} { 14280 30 130 230 330 130 30 230 30 330 30 14281 60 160 260 360 160 60 260 60 360 60 14282 90 190 290 390 190 90 290 90 390 90 14283} 14284do_execsql_test joinD-496 { 14285 SELECT t1.*, t2.*, t3.*, t4.* 14286 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14287 RIGHT JOIN t3 ON t1.c=t3.c 14288 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14289 WHERE t3.y>0 14290 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14291} { 14292 15 115 215 315 - - 215 15 315 15 14293 30 130 230 330 130 30 230 30 330 30 14294 45 145 245 345 - - 245 45 345 45 14295 60 160 260 360 160 60 260 60 360 60 14296 75 175 275 375 - - 275 75 375 75 14297 90 190 290 390 190 90 290 90 390 90 14298} 14299do_execsql_test joinD-497 { 14300 SELECT t1.*, t2.*, t3.*, t4.* 14301 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14302 RIGHT JOIN t3 ON t1.c=t3.c 14303 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14304 WHERE t3.y>0 OR t3.y IS NULL 14305 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14306} { 14307 15 115 215 315 - - 215 15 315 15 14308 30 130 230 330 130 30 230 30 330 30 14309 45 145 245 345 - - 245 45 345 45 14310 60 160 260 360 160 60 260 60 360 60 14311 75 175 275 375 - - 275 75 375 75 14312 90 190 290 390 190 90 290 90 390 90 14313 - - - - - - - - 300 0 14314 - - - - - - - - 305 5 14315 - - - - - - - - 310 10 14316 - - - - - - - - 320 20 14317 - - - - - - - - 325 25 14318 - - - - - - - - 335 35 14319 - - - - - - - - 340 40 14320 - - - - - - - - 350 50 14321 - - - - - - - - 355 55 14322 - - - - - - - - 365 65 14323 - - - - - - - - 370 70 14324 - - - - - - - - 380 80 14325 - - - - - - - - 385 85 14326 - - - - - - - - 395 95 14327} 14328do_execsql_test joinD-498 { 14329 SELECT t1.*, t2.*, t3.*, t4.* 14330 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14331 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14332 RIGHT JOIN t4 ON t1.d=t4.d 14333 WHERE t4.z>0 14334 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14335} { 14336 15 115 215 315 - - 215 15 315 15 14337 30 130 230 330 130 30 230 30 330 30 14338 45 145 245 345 - - 245 45 345 45 14339 60 160 260 360 160 60 260 60 360 60 14340 75 175 275 375 - - 275 75 375 75 14341 90 190 290 390 190 90 290 90 390 90 14342 - - - - - - - - 305 5 14343 - - - - - - - - 310 10 14344 - - - - - - - - 320 20 14345 - - - - - - - - 325 25 14346 - - - - - - - - 335 35 14347 - - - - - - - - 340 40 14348 - - - - - - - - 350 50 14349 - - - - - - - - 355 55 14350 - - - - - - - - 365 65 14351 - - - - - - - - 370 70 14352 - - - - - - - - 380 80 14353 - - - - - - - - 385 85 14354 - - - - - - - - 395 95 14355} 14356do_execsql_test joinD-499 { 14357 SELECT t1.*, t2.*, t3.*, t4.* 14358 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14359 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14360 RIGHT JOIN t4 ON t1.d=t4.d 14361 WHERE t4.z IS NULL OR t4.z>0 14362 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14363} { 14364 15 115 215 315 - - 215 15 315 15 14365 30 130 230 330 130 30 230 30 330 30 14366 45 145 245 345 - - 245 45 345 45 14367 60 160 260 360 160 60 260 60 360 60 14368 75 175 275 375 - - 275 75 375 75 14369 90 190 290 390 190 90 290 90 390 90 14370 - - - - - - - - 305 5 14371 - - - - - - - - 310 10 14372 - - - - - - - - 320 20 14373 - - - - - - - - 325 25 14374 - - - - - - - - 335 35 14375 - - - - - - - - 340 40 14376 - - - - - - - - 350 50 14377 - - - - - - - - 355 55 14378 - - - - - - - - 365 65 14379 - - - - - - - - 370 70 14380 - - - - - - - - 380 80 14381 - - - - - - - - 385 85 14382 - - - - - - - - 395 95 14383} 14384do_execsql_test joinD-500 { 14385 SELECT t1.*, t2.*, t3.*, t4.* 14386 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 14387 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14388 RIGHT JOIN t4 ON t1.d=t4.d 14389 WHERE t2.x>0 AND t4.z>0 14390 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14391} { 14392 30 130 230 330 130 30 230 30 330 30 14393 60 160 260 360 160 60 260 60 360 60 14394 90 190 290 390 190 90 290 90 390 90 14395} 14396do_execsql_test joinD-501 { 14397 SELECT t1.*, t2.*, t3.*, t4.* 14398 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14399 RIGHT JOIN t3 ON t1.c=t3.c 14400 RIGHT JOIN t4 ON t1.d=t4.d 14401 WHERE t4.z>0 AND t3.y>0 14402 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14403} { 14404 15 115 215 315 - - 215 15 315 15 14405 30 130 230 330 130 30 230 30 330 30 14406 45 145 245 345 - - 245 45 345 45 14407 60 160 260 360 160 60 260 60 360 60 14408 75 175 275 375 - - 275 75 375 75 14409 90 190 290 390 190 90 290 90 390 90 14410} 14411do_execsql_test joinD-502 { 14412 SELECT t1.*, t2.*, t3.*, t4.* 14413 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 14414 RIGHT JOIN t3 ON t1.c=t3.c 14415 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14416 WHERE t2.x>0 AND t3.y>0 14417 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14418} { 14419 30 130 230 330 130 30 230 30 330 30 14420 60 160 260 360 160 60 260 60 360 60 14421 90 190 290 390 190 90 290 90 390 90 14422} 14423do_execsql_test joinD-503 { 14424 SELECT t1.*, t2.*, t3.*, t4.* 14425 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 14426 RIGHT JOIN t3 ON t1.c=t3.c 14427 RIGHT JOIN t4 ON t1.d=t4.d 14428 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 14429 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14430} { 14431 30 130 230 330 130 30 230 30 330 30 14432 60 160 260 360 160 60 260 60 360 60 14433 90 190 290 390 190 90 290 90 390 90 14434} 14435do_execsql_test joinD-504 { 14436 SELECT t1.*, t2.*, t3.*, t4.* 14437 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 14438 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 14439 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 14440 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14441} { 14442 15 115 215 315 - - 215 15 315 15 14443 30 130 230 330 130 30 230 30 330 30 14444 45 145 245 345 - - 245 45 345 45 14445 60 160 260 360 160 60 260 60 360 60 14446 75 175 275 375 - - 275 75 375 75 14447 90 190 290 390 190 90 290 90 390 90 14448 - - - - - - - - 300 0 14449 - - - - - - - - 305 5 14450 - - - - - - - - 310 10 14451 - - - - - - - - 320 20 14452 - - - - - - - - 325 25 14453 - - - - - - - - 335 35 14454 - - - - - - - - 340 40 14455 - - - - - - - - 350 50 14456 - - - - - - - - 355 55 14457 - - - - - - - - 365 65 14458 - - - - - - - - 370 70 14459 - - - - - - - - 380 80 14460 - - - - - - - - 385 85 14461 - - - - - - - - 395 95 14462} 14463do_execsql_test joinD-505 { 14464 SELECT t1.*, t2.*, t3.*, t4.* 14465 FROM t1 LEFT JOIN t2 ON t2.x>0 14466 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 14467 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 14468 WHERE t1.b IS NOT DISTINCT FROM t2.b 14469 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14470} { 14471 30 130 230 330 130 30 230 30 330 30 14472 60 160 260 360 160 60 260 60 360 60 14473 90 190 290 390 190 90 290 90 390 90 14474 - - - - - - - - 300 0 14475 - - - - - - - - 305 5 14476 - - - - - - - - 310 10 14477 - - - - - - - - 320 20 14478 - - - - - - - - 325 25 14479 - - - - - - - - 335 35 14480 - - - - - - - - 340 40 14481 - - - - - - - - 350 50 14482 - - - - - - - - 355 55 14483 - - - - - - - - 365 65 14484 - - - - - - - - 370 70 14485 - - - - - - - - 380 80 14486 - - - - - - - - 385 85 14487 - - - - - - - - 395 95 14488} 14489do_execsql_test joinD-506 { 14490 SELECT t1.*, t2.*, t3.*, t4.* 14491 FROM t1 LEFT JOIN t2 ON t2.x>0 14492 RIGHT JOIN t3 ON t3.y>0 14493 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 14494 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 14495 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14496} { 14497 30 130 230 330 130 30 230 30 330 30 14498 60 160 260 360 160 60 260 60 360 60 14499 90 190 290 390 190 90 290 90 390 90 14500 - - - - - - - - 300 0 14501} 14502do_execsql_test joinD-507 { 14503 SELECT t1.*, t2.*, t3.*, t4.* 14504 FROM t1 LEFT JOIN t2 ON t2.x>0 14505 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 14506 RIGHT JOIN t4 ON t4.z>0 14507 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 14508 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14509} { 14510 30 130 230 330 130 30 230 30 330 30 14511 60 160 260 360 160 60 260 60 360 60 14512 90 190 290 390 190 90 290 90 390 90 14513} 14514do_execsql_test joinD-508 { 14515 SELECT t1.*, t2.*, t3.*, t4.* 14516 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 14517 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14518 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14519 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14520} { 14521 15 115 215 315 - - 215 15 315 15 14522 30 130 230 330 130 30 230 30 330 30 14523 45 145 245 345 - - 245 45 345 45 14524 60 160 260 360 160 60 260 60 360 60 14525 75 175 275 375 - - 275 75 375 75 14526 90 190 290 390 190 90 290 90 390 90 14527 - - - - - - - - 300 0 14528 - - - - - - - - 305 5 14529 - - - - - - - - 310 10 14530 - - - - - - - - 320 20 14531 - - - - - - - - 325 25 14532 - - - - - - - - 335 35 14533 - - - - - - - - 340 40 14534 - - - - - - - - 350 50 14535 - - - - - - - - 355 55 14536 - - - - - - - - 365 65 14537 - - - - - - - - 370 70 14538 - - - - - - - - 380 80 14539 - - - - - - - - 385 85 14540 - - - - - - - - 395 95 14541} 14542do_execsql_test joinD-509 { 14543 SELECT t1.*, t2.*, t3.*, t4.* 14544 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14545 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 14546 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14547 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14548} { 14549 15 115 215 315 - - 215 15 315 15 14550 30 130 230 330 130 30 230 30 330 30 14551 45 145 245 345 - - 245 45 345 45 14552 60 160 260 360 160 60 260 60 360 60 14553 75 175 275 375 - - 275 75 375 75 14554 90 190 290 390 190 90 290 90 390 90 14555 - - - - - - - - 300 0 14556 - - - - - - - - 305 5 14557 - - - - - - - - 310 10 14558 - - - - - - - - 320 20 14559 - - - - - - - - 325 25 14560 - - - - - - - - 335 35 14561 - - - - - - - - 340 40 14562 - - - - - - - - 350 50 14563 - - - - - - - - 355 55 14564 - - - - - - - - 365 65 14565 - - - - - - - - 370 70 14566 - - - - - - - - 380 80 14567 - - - - - - - - 385 85 14568 - - - - - - - - 395 95 14569} 14570do_execsql_test joinD-510 { 14571 SELECT t1.*, t2.*, t3.*, t4.* 14572 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14573 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14574 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 14575 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14576} { 14577 3 103 203 303 - - 203 3 - - 14578 6 106 206 306 106 6 206 6 - - 14579 9 109 209 309 - - 209 9 - - 14580 12 112 212 312 112 12 212 12 - - 14581 15 115 215 315 - - 215 15 315 15 14582 18 118 218 318 118 18 218 18 - - 14583 21 121 221 321 - - 221 21 - - 14584 24 124 224 324 124 24 224 24 - - 14585 27 127 227 327 - - 227 27 - - 14586 30 130 230 330 130 30 230 30 330 30 14587 33 133 233 333 - - 233 33 - - 14588 36 136 236 336 136 36 236 36 - - 14589 39 139 239 339 - - 239 39 - - 14590 42 142 242 342 142 42 242 42 - - 14591 45 145 245 345 - - 245 45 345 45 14592 48 148 248 348 148 48 248 48 - - 14593 51 151 251 351 - - 251 51 - - 14594 54 154 254 354 154 54 254 54 - - 14595 57 157 257 357 - - 257 57 - - 14596 60 160 260 360 160 60 260 60 360 60 14597 63 163 263 363 - - 263 63 - - 14598 66 166 266 366 166 66 266 66 - - 14599 69 169 269 369 - - 269 69 - - 14600 72 172 272 372 172 72 272 72 - - 14601 75 175 275 375 - - 275 75 375 75 14602 78 178 278 378 178 78 278 78 - - 14603 81 181 281 381 - - 281 81 - - 14604 84 184 284 384 184 84 284 84 - - 14605 87 187 287 387 - - 287 87 - - 14606 90 190 290 390 190 90 290 90 390 90 14607 93 193 293 393 - - 293 93 - - 14608 - - - - - - 200 0 - - 14609 - - - - - - - - 300 0 14610 - - - - - - - - 305 5 14611 - - - - - - - - 310 10 14612 - - - - - - - - 320 20 14613 - - - - - - - - 325 25 14614 - - - - - - - - 335 35 14615 - - - - - - - - 340 40 14616 - - - - - - - - 350 50 14617 - - - - - - - - 355 55 14618 - - - - - - - - 365 65 14619 - - - - - - - - 370 70 14620 - - - - - - - - 380 80 14621 - - - - - - - - 385 85 14622 - - - - - - - - 395 95 14623} 14624do_execsql_test joinD-511 { 14625 SELECT t1.*, t2.*, t3.*, t4.* 14626 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 14627 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14628 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 14629 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14630} { 14631 3 103 203 303 - - 203 3 - - 14632 6 106 206 306 106 6 206 6 - - 14633 9 109 209 309 - - 209 9 - - 14634 12 112 212 312 112 12 212 12 - - 14635 15 115 215 315 - - 215 15 315 15 14636 18 118 218 318 118 18 218 18 - - 14637 21 121 221 321 - - 221 21 - - 14638 24 124 224 324 124 24 224 24 - - 14639 27 127 227 327 - - 227 27 - - 14640 30 130 230 330 130 30 230 30 330 30 14641 33 133 233 333 - - 233 33 - - 14642 36 136 236 336 136 36 236 36 - - 14643 39 139 239 339 - - 239 39 - - 14644 42 142 242 342 142 42 242 42 - - 14645 45 145 245 345 - - 245 45 345 45 14646 48 148 248 348 148 48 248 48 - - 14647 51 151 251 351 - - 251 51 - - 14648 54 154 254 354 154 54 254 54 - - 14649 57 157 257 357 - - 257 57 - - 14650 60 160 260 360 160 60 260 60 360 60 14651 63 163 263 363 - - 263 63 - - 14652 66 166 266 366 166 66 266 66 - - 14653 69 169 269 369 - - 269 69 - - 14654 72 172 272 372 172 72 272 72 - - 14655 75 175 275 375 - - 275 75 375 75 14656 78 178 278 378 178 78 278 78 - - 14657 81 181 281 381 - - 281 81 - - 14658 84 184 284 384 184 84 284 84 - - 14659 87 187 287 387 - - 287 87 - - 14660 90 190 290 390 190 90 290 90 390 90 14661 93 193 293 393 - - 293 93 - - 14662 - - - - - - 200 0 - - 14663 - - - - - - - - 300 0 14664 - - - - - - - - 305 5 14665 - - - - - - - - 310 10 14666 - - - - - - - - 320 20 14667 - - - - - - - - 325 25 14668 - - - - - - - - 335 35 14669 - - - - - - - - 340 40 14670 - - - - - - - - 350 50 14671 - - - - - - - - 355 55 14672 - - - - - - - - 365 65 14673 - - - - - - - - 370 70 14674 - - - - - - - - 380 80 14675 - - - - - - - - 385 85 14676 - - - - - - - - 395 95 14677} 14678do_execsql_test joinD-512 { 14679 SELECT t1.*, t2.*, t3.*, t4.* 14680 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 14681 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14682 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 14683 WHERE t2.x>0 14684 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14685} { 14686 6 106 206 306 106 6 206 6 - - 14687 12 112 212 312 112 12 212 12 - - 14688 18 118 218 318 118 18 218 18 - - 14689 24 124 224 324 124 24 224 24 - - 14690 30 130 230 330 130 30 230 30 330 30 14691 36 136 236 336 136 36 236 36 - - 14692 42 142 242 342 142 42 242 42 - - 14693 48 148 248 348 148 48 248 48 - - 14694 54 154 254 354 154 54 254 54 - - 14695 60 160 260 360 160 60 260 60 360 60 14696 66 166 266 366 166 66 266 66 - - 14697 72 172 272 372 172 72 272 72 - - 14698 78 178 278 378 178 78 278 78 - - 14699 84 184 284 384 184 84 284 84 - - 14700 90 190 290 390 190 90 290 90 390 90 14701} 14702do_execsql_test joinD-513 { 14703 SELECT t1.*, t2.*, t3.*, t4.* 14704 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 14705 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14706 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 14707 WHERE (t2.x>0 OR t2.x IS NULL) 14708 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14709} { 14710 3 103 203 303 - - 203 3 - - 14711 6 106 206 306 106 6 206 6 - - 14712 9 109 209 309 - - 209 9 - - 14713 12 112 212 312 112 12 212 12 - - 14714 15 115 215 315 - - 215 15 315 15 14715 18 118 218 318 118 18 218 18 - - 14716 21 121 221 321 - - 221 21 - - 14717 24 124 224 324 124 24 224 24 - - 14718 27 127 227 327 - - 227 27 - - 14719 30 130 230 330 130 30 230 30 330 30 14720 33 133 233 333 - - 233 33 - - 14721 36 136 236 336 136 36 236 36 - - 14722 39 139 239 339 - - 239 39 - - 14723 42 142 242 342 142 42 242 42 - - 14724 45 145 245 345 - - 245 45 345 45 14725 48 148 248 348 148 48 248 48 - - 14726 51 151 251 351 - - 251 51 - - 14727 54 154 254 354 154 54 254 54 - - 14728 57 157 257 357 - - 257 57 - - 14729 60 160 260 360 160 60 260 60 360 60 14730 63 163 263 363 - - 263 63 - - 14731 66 166 266 366 166 66 266 66 - - 14732 69 169 269 369 - - 269 69 - - 14733 72 172 272 372 172 72 272 72 - - 14734 75 175 275 375 - - 275 75 375 75 14735 78 178 278 378 178 78 278 78 - - 14736 81 181 281 381 - - 281 81 - - 14737 84 184 284 384 184 84 284 84 - - 14738 87 187 287 387 - - 287 87 - - 14739 90 190 290 390 190 90 290 90 390 90 14740 93 193 293 393 - - 293 93 - - 14741 - - - - - - 200 0 - - 14742 - - - - - - - - 300 0 14743 - - - - - - - - 305 5 14744 - - - - - - - - 310 10 14745 - - - - - - - - 320 20 14746 - - - - - - - - 325 25 14747 - - - - - - - - 335 35 14748 - - - - - - - - 340 40 14749 - - - - - - - - 350 50 14750 - - - - - - - - 355 55 14751 - - - - - - - - 365 65 14752 - - - - - - - - 370 70 14753 - - - - - - - - 380 80 14754 - - - - - - - - 385 85 14755 - - - - - - - - 395 95 14756} 14757do_execsql_test joinD-514 { 14758 SELECT t1.*, t2.*, t3.*, t4.* 14759 FROM t1 LEFT JOIN t2 ON true 14760 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14761 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 14762 WHERE t1.b=t2.b AND t2.x>0 14763 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14764} { 14765 6 106 206 306 106 6 206 6 - - 14766 12 112 212 312 112 12 212 12 - - 14767 18 118 218 318 118 18 218 18 - - 14768 24 124 224 324 124 24 224 24 - - 14769 30 130 230 330 130 30 230 30 330 30 14770 36 136 236 336 136 36 236 36 - - 14771 42 142 242 342 142 42 242 42 - - 14772 48 148 248 348 148 48 248 48 - - 14773 54 154 254 354 154 54 254 54 - - 14774 60 160 260 360 160 60 260 60 360 60 14775 66 166 266 366 166 66 266 66 - - 14776 72 172 272 372 172 72 272 72 - - 14777 78 178 278 378 178 78 278 78 - - 14778 84 184 284 384 184 84 284 84 - - 14779 90 190 290 390 190 90 290 90 390 90 14780} 14781do_execsql_test joinD-515 { 14782 SELECT t1.*, t2.*, t3.*, t4.* 14783 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14784 RIGHT JOIN t3 ON t1.c=t3.c 14785 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 14786 WHERE t3.y>0 14787 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14788} { 14789 3 103 203 303 - - 203 3 - - 14790 6 106 206 306 106 6 206 6 - - 14791 9 109 209 309 - - 209 9 - - 14792 12 112 212 312 112 12 212 12 - - 14793 15 115 215 315 - - 215 15 315 15 14794 18 118 218 318 118 18 218 18 - - 14795 21 121 221 321 - - 221 21 - - 14796 24 124 224 324 124 24 224 24 - - 14797 27 127 227 327 - - 227 27 - - 14798 30 130 230 330 130 30 230 30 330 30 14799 33 133 233 333 - - 233 33 - - 14800 36 136 236 336 136 36 236 36 - - 14801 39 139 239 339 - - 239 39 - - 14802 42 142 242 342 142 42 242 42 - - 14803 45 145 245 345 - - 245 45 345 45 14804 48 148 248 348 148 48 248 48 - - 14805 51 151 251 351 - - 251 51 - - 14806 54 154 254 354 154 54 254 54 - - 14807 57 157 257 357 - - 257 57 - - 14808 60 160 260 360 160 60 260 60 360 60 14809 63 163 263 363 - - 263 63 - - 14810 66 166 266 366 166 66 266 66 - - 14811 69 169 269 369 - - 269 69 - - 14812 72 172 272 372 172 72 272 72 - - 14813 75 175 275 375 - - 275 75 375 75 14814 78 178 278 378 178 78 278 78 - - 14815 81 181 281 381 - - 281 81 - - 14816 84 184 284 384 184 84 284 84 - - 14817 87 187 287 387 - - 287 87 - - 14818 90 190 290 390 190 90 290 90 390 90 14819 93 193 293 393 - - 293 93 - - 14820} 14821do_execsql_test joinD-516 { 14822 SELECT t1.*, t2.*, t3.*, t4.* 14823 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14824 RIGHT JOIN t3 ON t1.c=t3.c 14825 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 14826 WHERE t3.y>0 OR t3.y IS NULL 14827 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14828} { 14829 3 103 203 303 - - 203 3 - - 14830 6 106 206 306 106 6 206 6 - - 14831 9 109 209 309 - - 209 9 - - 14832 12 112 212 312 112 12 212 12 - - 14833 15 115 215 315 - - 215 15 315 15 14834 18 118 218 318 118 18 218 18 - - 14835 21 121 221 321 - - 221 21 - - 14836 24 124 224 324 124 24 224 24 - - 14837 27 127 227 327 - - 227 27 - - 14838 30 130 230 330 130 30 230 30 330 30 14839 33 133 233 333 - - 233 33 - - 14840 36 136 236 336 136 36 236 36 - - 14841 39 139 239 339 - - 239 39 - - 14842 42 142 242 342 142 42 242 42 - - 14843 45 145 245 345 - - 245 45 345 45 14844 48 148 248 348 148 48 248 48 - - 14845 51 151 251 351 - - 251 51 - - 14846 54 154 254 354 154 54 254 54 - - 14847 57 157 257 357 - - 257 57 - - 14848 60 160 260 360 160 60 260 60 360 60 14849 63 163 263 363 - - 263 63 - - 14850 66 166 266 366 166 66 266 66 - - 14851 69 169 269 369 - - 269 69 - - 14852 72 172 272 372 172 72 272 72 - - 14853 75 175 275 375 - - 275 75 375 75 14854 78 178 278 378 178 78 278 78 - - 14855 81 181 281 381 - - 281 81 - - 14856 84 184 284 384 184 84 284 84 - - 14857 87 187 287 387 - - 287 87 - - 14858 90 190 290 390 190 90 290 90 390 90 14859 93 193 293 393 - - 293 93 - - 14860 - - - - - - - - 300 0 14861 - - - - - - - - 305 5 14862 - - - - - - - - 310 10 14863 - - - - - - - - 320 20 14864 - - - - - - - - 325 25 14865 - - - - - - - - 335 35 14866 - - - - - - - - 340 40 14867 - - - - - - - - 350 50 14868 - - - - - - - - 355 55 14869 - - - - - - - - 365 65 14870 - - - - - - - - 370 70 14871 - - - - - - - - 380 80 14872 - - - - - - - - 385 85 14873 - - - - - - - - 395 95 14874} 14875do_execsql_test joinD-517 { 14876 SELECT t1.*, t2.*, t3.*, t4.* 14877 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14878 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14879 FULL JOIN t4 ON t1.d=t4.d 14880 WHERE t4.z>0 14881 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14882} { 14883 15 115 215 315 - - 215 15 315 15 14884 30 130 230 330 130 30 230 30 330 30 14885 45 145 245 345 - - 245 45 345 45 14886 60 160 260 360 160 60 260 60 360 60 14887 75 175 275 375 - - 275 75 375 75 14888 90 190 290 390 190 90 290 90 390 90 14889 - - - - - - - - 305 5 14890 - - - - - - - - 310 10 14891 - - - - - - - - 320 20 14892 - - - - - - - - 325 25 14893 - - - - - - - - 335 35 14894 - - - - - - - - 340 40 14895 - - - - - - - - 350 50 14896 - - - - - - - - 355 55 14897 - - - - - - - - 365 65 14898 - - - - - - - - 370 70 14899 - - - - - - - - 380 80 14900 - - - - - - - - 385 85 14901 - - - - - - - - 395 95 14902} 14903do_execsql_test joinD-518 { 14904 SELECT t1.*, t2.*, t3.*, t4.* 14905 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14906 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14907 FULL JOIN t4 ON t1.d=t4.d 14908 WHERE t4.z IS NULL OR t4.z>0 14909 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14910} { 14911 3 103 203 303 - - 203 3 - - 14912 6 106 206 306 106 6 206 6 - - 14913 9 109 209 309 - - 209 9 - - 14914 12 112 212 312 112 12 212 12 - - 14915 15 115 215 315 - - 215 15 315 15 14916 18 118 218 318 118 18 218 18 - - 14917 21 121 221 321 - - 221 21 - - 14918 24 124 224 324 124 24 224 24 - - 14919 27 127 227 327 - - 227 27 - - 14920 30 130 230 330 130 30 230 30 330 30 14921 33 133 233 333 - - 233 33 - - 14922 36 136 236 336 136 36 236 36 - - 14923 39 139 239 339 - - 239 39 - - 14924 42 142 242 342 142 42 242 42 - - 14925 45 145 245 345 - - 245 45 345 45 14926 48 148 248 348 148 48 248 48 - - 14927 51 151 251 351 - - 251 51 - - 14928 54 154 254 354 154 54 254 54 - - 14929 57 157 257 357 - - 257 57 - - 14930 60 160 260 360 160 60 260 60 360 60 14931 63 163 263 363 - - 263 63 - - 14932 66 166 266 366 166 66 266 66 - - 14933 69 169 269 369 - - 269 69 - - 14934 72 172 272 372 172 72 272 72 - - 14935 75 175 275 375 - - 275 75 375 75 14936 78 178 278 378 178 78 278 78 - - 14937 81 181 281 381 - - 281 81 - - 14938 84 184 284 384 184 84 284 84 - - 14939 87 187 287 387 - - 287 87 - - 14940 90 190 290 390 190 90 290 90 390 90 14941 93 193 293 393 - - 293 93 - - 14942 - - - - - - 200 0 - - 14943 - - - - - - - - 305 5 14944 - - - - - - - - 310 10 14945 - - - - - - - - 320 20 14946 - - - - - - - - 325 25 14947 - - - - - - - - 335 35 14948 - - - - - - - - 340 40 14949 - - - - - - - - 350 50 14950 - - - - - - - - 355 55 14951 - - - - - - - - 365 65 14952 - - - - - - - - 370 70 14953 - - - - - - - - 380 80 14954 - - - - - - - - 385 85 14955 - - - - - - - - 395 95 14956} 14957do_execsql_test joinD-519 { 14958 SELECT t1.*, t2.*, t3.*, t4.* 14959 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 14960 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14961 FULL JOIN t4 ON t1.d=t4.d 14962 WHERE t2.x>0 AND t4.z>0 14963 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14964} { 14965 30 130 230 330 130 30 230 30 330 30 14966 60 160 260 360 160 60 260 60 360 60 14967 90 190 290 390 190 90 290 90 390 90 14968} 14969do_execsql_test joinD-520 { 14970 SELECT t1.*, t2.*, t3.*, t4.* 14971 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14972 RIGHT JOIN t3 ON t1.c=t3.c 14973 FULL JOIN t4 ON t1.d=t4.d 14974 WHERE t4.z>0 AND t3.y>0 14975 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14976} { 14977 15 115 215 315 - - 215 15 315 15 14978 30 130 230 330 130 30 230 30 330 30 14979 45 145 245 345 - - 245 45 345 45 14980 60 160 260 360 160 60 260 60 360 60 14981 75 175 275 375 - - 275 75 375 75 14982 90 190 290 390 190 90 290 90 390 90 14983} 14984do_execsql_test joinD-521 { 14985 SELECT t1.*, t2.*, t3.*, t4.* 14986 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 14987 RIGHT JOIN t3 ON t1.c=t3.c 14988 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 14989 WHERE t2.x>0 AND t3.y>0 14990 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14991} { 14992 6 106 206 306 106 6 206 6 - - 14993 12 112 212 312 112 12 212 12 - - 14994 18 118 218 318 118 18 218 18 - - 14995 24 124 224 324 124 24 224 24 - - 14996 30 130 230 330 130 30 230 30 330 30 14997 36 136 236 336 136 36 236 36 - - 14998 42 142 242 342 142 42 242 42 - - 14999 48 148 248 348 148 48 248 48 - - 15000 54 154 254 354 154 54 254 54 - - 15001 60 160 260 360 160 60 260 60 360 60 15002 66 166 266 366 166 66 266 66 - - 15003 72 172 272 372 172 72 272 72 - - 15004 78 178 278 378 178 78 278 78 - - 15005 84 184 284 384 184 84 284 84 - - 15006 90 190 290 390 190 90 290 90 390 90 15007} 15008do_execsql_test joinD-522 { 15009 SELECT t1.*, t2.*, t3.*, t4.* 15010 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 15011 RIGHT JOIN t3 ON t1.c=t3.c 15012 FULL JOIN t4 ON t1.d=t4.d 15013 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 15014 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15015} { 15016 30 130 230 330 130 30 230 30 330 30 15017 60 160 260 360 160 60 260 60 360 60 15018 90 190 290 390 190 90 290 90 390 90 15019} 15020do_execsql_test joinD-523 { 15021 SELECT t1.*, t2.*, t3.*, t4.* 15022 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 15023 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 15024 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 15025 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15026} { 15027 3 103 203 303 - - 203 3 - - 15028 6 106 206 306 106 6 206 6 - - 15029 9 109 209 309 - - 209 9 - - 15030 12 112 212 312 112 12 212 12 - - 15031 15 115 215 315 - - 215 15 315 15 15032 18 118 218 318 118 18 218 18 - - 15033 21 121 221 321 - - 221 21 - - 15034 24 124 224 324 124 24 224 24 - - 15035 27 127 227 327 - - 227 27 - - 15036 30 130 230 330 130 30 230 30 330 30 15037 33 133 233 333 - - 233 33 - - 15038 36 136 236 336 136 36 236 36 - - 15039 39 139 239 339 - - 239 39 - - 15040 42 142 242 342 142 42 242 42 - - 15041 45 145 245 345 - - 245 45 345 45 15042 48 148 248 348 148 48 248 48 - - 15043 51 151 251 351 - - 251 51 - - 15044 54 154 254 354 154 54 254 54 - - 15045 57 157 257 357 - - 257 57 - - 15046 60 160 260 360 160 60 260 60 360 60 15047 63 163 263 363 - - 263 63 - - 15048 66 166 266 366 166 66 266 66 - - 15049 69 169 269 369 - - 269 69 - - 15050 72 172 272 372 172 72 272 72 - - 15051 75 175 275 375 - - 275 75 375 75 15052 78 178 278 378 178 78 278 78 - - 15053 81 181 281 381 - - 281 81 - - 15054 84 184 284 384 184 84 284 84 - - 15055 87 187 287 387 - - 287 87 - - 15056 90 190 290 390 190 90 290 90 390 90 15057 93 193 293 393 - - 293 93 - - 15058 - - - - - - 200 0 - - 15059 - - - - - - - - 300 0 15060 - - - - - - - - 305 5 15061 - - - - - - - - 310 10 15062 - - - - - - - - 320 20 15063 - - - - - - - - 325 25 15064 - - - - - - - - 335 35 15065 - - - - - - - - 340 40 15066 - - - - - - - - 350 50 15067 - - - - - - - - 355 55 15068 - - - - - - - - 365 65 15069 - - - - - - - - 370 70 15070 - - - - - - - - 380 80 15071 - - - - - - - - 385 85 15072 - - - - - - - - 395 95 15073} 15074do_execsql_test joinD-524 { 15075 SELECT t1.*, t2.*, t3.*, t4.* 15076 FROM t1 LEFT JOIN t2 ON t2.x>0 15077 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 15078 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 15079 WHERE t1.b IS NOT DISTINCT FROM t2.b 15080 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15081} { 15082 6 106 206 306 106 6 206 6 - - 15083 12 112 212 312 112 12 212 12 - - 15084 18 118 218 318 118 18 218 18 - - 15085 24 124 224 324 124 24 224 24 - - 15086 30 130 230 330 130 30 230 30 330 30 15087 36 136 236 336 136 36 236 36 - - 15088 42 142 242 342 142 42 242 42 - - 15089 48 148 248 348 148 48 248 48 - - 15090 54 154 254 354 154 54 254 54 - - 15091 60 160 260 360 160 60 260 60 360 60 15092 66 166 266 366 166 66 266 66 - - 15093 72 172 272 372 172 72 272 72 - - 15094 78 178 278 378 178 78 278 78 - - 15095 84 184 284 384 184 84 284 84 - - 15096 90 190 290 390 190 90 290 90 390 90 15097 - - - - - - 200 0 - - 15098 - - - - - - - - 300 0 15099 - - - - - - - - 305 5 15100 - - - - - - - - 310 10 15101 - - - - - - - - 320 20 15102 - - - - - - - - 325 25 15103 - - - - - - - - 335 35 15104 - - - - - - - - 340 40 15105 - - - - - - - - 350 50 15106 - - - - - - - - 355 55 15107 - - - - - - - - 365 65 15108 - - - - - - - - 370 70 15109 - - - - - - - - 380 80 15110 - - - - - - - - 385 85 15111 - - - - - - - - 395 95 15112} 15113do_execsql_test joinD-525 { 15114 SELECT t1.*, t2.*, t3.*, t4.* 15115 FROM t1 LEFT JOIN t2 ON t2.x>0 15116 RIGHT JOIN t3 ON t3.y>0 15117 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 15118 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 15119 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15120} { 15121 6 106 206 306 106 6 206 6 - - 15122 12 112 212 312 112 12 212 12 - - 15123 18 118 218 318 118 18 218 18 - - 15124 24 124 224 324 124 24 224 24 - - 15125 30 130 230 330 130 30 230 30 330 30 15126 36 136 236 336 136 36 236 36 - - 15127 42 142 242 342 142 42 242 42 - - 15128 48 148 248 348 148 48 248 48 - - 15129 54 154 254 354 154 54 254 54 - - 15130 60 160 260 360 160 60 260 60 360 60 15131 66 166 266 366 166 66 266 66 - - 15132 72 172 272 372 172 72 272 72 - - 15133 78 178 278 378 178 78 278 78 - - 15134 84 184 284 384 184 84 284 84 - - 15135 90 190 290 390 190 90 290 90 390 90 15136 - - - - - - - - 300 0 15137} 15138do_execsql_test joinD-526 { 15139 SELECT t1.*, t2.*, t3.*, t4.* 15140 FROM t1 LEFT JOIN t2 ON t2.x>0 15141 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 15142 FULL JOIN t4 ON t4.z>0 15143 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 15144 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15145} { 15146 30 130 230 330 130 30 230 30 330 30 15147 60 160 260 360 160 60 260 60 360 60 15148 90 190 290 390 190 90 290 90 390 90 15149} 15150do_execsql_test joinD-527 { 15151 SELECT t1.*, t2.*, t3.*, t4.* 15152 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 15153 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 15154 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 15155 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15156} { 15157 3 103 203 303 - - 203 3 - - 15158 6 106 206 306 106 6 206 6 - - 15159 9 109 209 309 - - 209 9 - - 15160 12 112 212 312 112 12 212 12 - - 15161 15 115 215 315 - - 215 15 315 15 15162 18 118 218 318 118 18 218 18 - - 15163 21 121 221 321 - - 221 21 - - 15164 24 124 224 324 124 24 224 24 - - 15165 27 127 227 327 - - 227 27 - - 15166 30 130 230 330 130 30 230 30 330 30 15167 33 133 233 333 - - 233 33 - - 15168 36 136 236 336 136 36 236 36 - - 15169 39 139 239 339 - - 239 39 - - 15170 42 142 242 342 142 42 242 42 - - 15171 45 145 245 345 - - 245 45 345 45 15172 48 148 248 348 148 48 248 48 - - 15173 51 151 251 351 - - 251 51 - - 15174 54 154 254 354 154 54 254 54 - - 15175 57 157 257 357 - - 257 57 - - 15176 60 160 260 360 160 60 260 60 360 60 15177 63 163 263 363 - - 263 63 - - 15178 66 166 266 366 166 66 266 66 - - 15179 69 169 269 369 - - 269 69 - - 15180 72 172 272 372 172 72 272 72 - - 15181 75 175 275 375 - - 275 75 375 75 15182 78 178 278 378 178 78 278 78 - - 15183 81 181 281 381 - - 281 81 - - 15184 84 184 284 384 184 84 284 84 - - 15185 87 187 287 387 - - 287 87 - - 15186 90 190 290 390 190 90 290 90 390 90 15187 93 193 293 393 - - 293 93 - - 15188 - - - - - - 200 0 - - 15189 - - - - - - - - 300 0 15190 - - - - - - - - 305 5 15191 - - - - - - - - 310 10 15192 - - - - - - - - 320 20 15193 - - - - - - - - 325 25 15194 - - - - - - - - 335 35 15195 - - - - - - - - 340 40 15196 - - - - - - - - 350 50 15197 - - - - - - - - 355 55 15198 - - - - - - - - 365 65 15199 - - - - - - - - 370 70 15200 - - - - - - - - 380 80 15201 - - - - - - - - 385 85 15202 - - - - - - - - 395 95 15203} 15204do_execsql_test joinD-528 { 15205 SELECT t1.*, t2.*, t3.*, t4.* 15206 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 15207 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 15208 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 15209 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15210} { 15211 3 103 203 303 - - 203 3 - - 15212 6 106 206 306 106 6 206 6 - - 15213 9 109 209 309 - - 209 9 - - 15214 12 112 212 312 112 12 212 12 - - 15215 15 115 215 315 - - 215 15 315 15 15216 18 118 218 318 118 18 218 18 - - 15217 21 121 221 321 - - 221 21 - - 15218 24 124 224 324 124 24 224 24 - - 15219 27 127 227 327 - - 227 27 - - 15220 30 130 230 330 130 30 230 30 330 30 15221 33 133 233 333 - - 233 33 - - 15222 36 136 236 336 136 36 236 36 - - 15223 39 139 239 339 - - 239 39 - - 15224 42 142 242 342 142 42 242 42 - - 15225 45 145 245 345 - - 245 45 345 45 15226 48 148 248 348 148 48 248 48 - - 15227 51 151 251 351 - - 251 51 - - 15228 54 154 254 354 154 54 254 54 - - 15229 57 157 257 357 - - 257 57 - - 15230 60 160 260 360 160 60 260 60 360 60 15231 63 163 263 363 - - 263 63 - - 15232 66 166 266 366 166 66 266 66 - - 15233 69 169 269 369 - - 269 69 - - 15234 72 172 272 372 172 72 272 72 - - 15235 75 175 275 375 - - 275 75 375 75 15236 78 178 278 378 178 78 278 78 - - 15237 81 181 281 381 - - 281 81 - - 15238 84 184 284 384 184 84 284 84 - - 15239 87 187 287 387 - - 287 87 - - 15240 90 190 290 390 190 90 290 90 390 90 15241 93 193 293 393 - - 293 93 - - 15242 - - - - - - 200 0 - - 15243 - - - - - - - - 300 0 15244 - - - - - - - - 305 5 15245 - - - - - - - - 310 10 15246 - - - - - - - - 320 20 15247 - - - - - - - - 325 25 15248 - - - - - - - - 335 35 15249 - - - - - - - - 340 40 15250 - - - - - - - - 350 50 15251 - - - - - - - - 355 55 15252 - - - - - - - - 365 65 15253 - - - - - - - - 370 70 15254 - - - - - - - - 380 80 15255 - - - - - - - - 385 85 15256 - - - - - - - - 395 95 15257} 15258do_execsql_test joinD-529 { 15259 SELECT t1.*, t2.*, t3.*, t4.* 15260 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 15261 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15262 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 15263 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15264} { 15265 5 105 205 305 - - - - 305 5 15266 10 110 210 310 110 10 - - 310 10 15267 15 115 215 315 - - 215 15 315 15 15268 20 120 220 320 120 20 - - 320 20 15269 25 125 225 325 - - - - 325 25 15270 30 130 230 330 130 30 230 30 330 30 15271 35 135 235 335 - - - - 335 35 15272 40 140 240 340 140 40 - - 340 40 15273 45 145 245 345 - - 245 45 345 45 15274 50 150 250 350 150 50 - - 350 50 15275 55 155 255 355 - - - - 355 55 15276 60 160 260 360 160 60 260 60 360 60 15277 65 165 265 365 - - - - 365 65 15278 70 170 270 370 170 70 - - 370 70 15279 75 175 275 375 - - 275 75 375 75 15280 80 180 280 380 180 80 - - 380 80 15281 85 185 285 385 - - - - 385 85 15282 90 190 290 390 190 90 290 90 390 90 15283 95 195 295 395 - - - - 395 95 15284} 15285do_execsql_test joinD-530 { 15286 SELECT t1.*, t2.*, t3.*, t4.* 15287 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 15288 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15289 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 15290 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15291} { 15292 5 105 205 305 - - - - 305 5 15293 10 110 210 310 110 10 - - 310 10 15294 15 115 215 315 - - 215 15 315 15 15295 20 120 220 320 120 20 - - 320 20 15296 25 125 225 325 - - - - 325 25 15297 30 130 230 330 130 30 230 30 330 30 15298 35 135 235 335 - - - - 335 35 15299 40 140 240 340 140 40 - - 340 40 15300 45 145 245 345 - - 245 45 345 45 15301 50 150 250 350 150 50 - - 350 50 15302 55 155 255 355 - - - - 355 55 15303 60 160 260 360 160 60 260 60 360 60 15304 65 165 265 365 - - - - 365 65 15305 70 170 270 370 170 70 - - 370 70 15306 75 175 275 375 - - 275 75 375 75 15307 80 180 280 380 180 80 - - 380 80 15308 85 185 285 385 - - - - 385 85 15309 90 190 290 390 190 90 290 90 390 90 15310 95 195 295 395 - - - - 395 95 15311} 15312do_execsql_test joinD-531 { 15313 SELECT t1.*, t2.*, t3.*, t4.* 15314 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 15315 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15316 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 15317 WHERE t2.x>0 15318 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15319} { 15320 10 110 210 310 110 10 - - 310 10 15321 20 120 220 320 120 20 - - 320 20 15322 30 130 230 330 130 30 230 30 330 30 15323 40 140 240 340 140 40 - - 340 40 15324 50 150 250 350 150 50 - - 350 50 15325 60 160 260 360 160 60 260 60 360 60 15326 70 170 270 370 170 70 - - 370 70 15327 80 180 280 380 180 80 - - 380 80 15328 90 190 290 390 190 90 290 90 390 90 15329} 15330do_execsql_test joinD-532 { 15331 SELECT t1.*, t2.*, t3.*, t4.* 15332 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 15333 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15334 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 15335 WHERE (t2.x>0 OR t2.x IS NULL) 15336 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15337} { 15338 5 105 205 305 - - - - 305 5 15339 10 110 210 310 110 10 - - 310 10 15340 15 115 215 315 - - 215 15 315 15 15341 20 120 220 320 120 20 - - 320 20 15342 25 125 225 325 - - - - 325 25 15343 30 130 230 330 130 30 230 30 330 30 15344 35 135 235 335 - - - - 335 35 15345 40 140 240 340 140 40 - - 340 40 15346 45 145 245 345 - - 245 45 345 45 15347 50 150 250 350 150 50 - - 350 50 15348 55 155 255 355 - - - - 355 55 15349 60 160 260 360 160 60 260 60 360 60 15350 65 165 265 365 - - - - 365 65 15351 70 170 270 370 170 70 - - 370 70 15352 75 175 275 375 - - 275 75 375 75 15353 80 180 280 380 180 80 - - 380 80 15354 85 185 285 385 - - - - 385 85 15355 90 190 290 390 190 90 290 90 390 90 15356 95 195 295 395 - - - - 395 95 15357} 15358do_execsql_test joinD-533 { 15359 SELECT t1.*, t2.*, t3.*, t4.* 15360 FROM t1 LEFT JOIN t2 ON true 15361 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15362 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 15363 WHERE t1.b=t2.b AND t2.x>0 15364 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15365} { 15366 10 110 210 310 110 10 - - 310 10 15367 20 120 220 320 120 20 - - 320 20 15368 30 130 230 330 130 30 230 30 330 30 15369 40 140 240 340 140 40 - - 340 40 15370 50 150 250 350 150 50 - - 350 50 15371 60 160 260 360 160 60 260 60 360 60 15372 70 170 270 370 170 70 - - 370 70 15373 80 180 280 380 180 80 - - 380 80 15374 90 190 290 390 190 90 290 90 390 90 15375} 15376do_execsql_test joinD-534 { 15377 SELECT t1.*, t2.*, t3.*, t4.* 15378 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 15379 FULL JOIN t3 ON t1.c=t3.c 15380 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 15381 WHERE t3.y>0 15382 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15383} { 15384 15 115 215 315 - - 215 15 315 15 15385 30 130 230 330 130 30 230 30 330 30 15386 45 145 245 345 - - 245 45 345 45 15387 60 160 260 360 160 60 260 60 360 60 15388 75 175 275 375 - - 275 75 375 75 15389 90 190 290 390 190 90 290 90 390 90 15390} 15391do_execsql_test joinD-535 { 15392 SELECT t1.*, t2.*, t3.*, t4.* 15393 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 15394 FULL JOIN t3 ON t1.c=t3.c 15395 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 15396 WHERE t3.y>0 OR t3.y IS NULL 15397 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15398} { 15399 5 105 205 305 - - - - 305 5 15400 10 110 210 310 110 10 - - 310 10 15401 15 115 215 315 - - 215 15 315 15 15402 20 120 220 320 120 20 - - 320 20 15403 25 125 225 325 - - - - 325 25 15404 30 130 230 330 130 30 230 30 330 30 15405 35 135 235 335 - - - - 335 35 15406 40 140 240 340 140 40 - - 340 40 15407 45 145 245 345 - - 245 45 345 45 15408 50 150 250 350 150 50 - - 350 50 15409 55 155 255 355 - - - - 355 55 15410 60 160 260 360 160 60 260 60 360 60 15411 65 165 265 365 - - - - 365 65 15412 70 170 270 370 170 70 - - 370 70 15413 75 175 275 375 - - 275 75 375 75 15414 80 180 280 380 180 80 - - 380 80 15415 85 185 285 385 - - - - 385 85 15416 90 190 290 390 190 90 290 90 390 90 15417 95 195 295 395 - - - - 395 95 15418} 15419do_execsql_test joinD-536 { 15420 SELECT t1.*, t2.*, t3.*, t4.* 15421 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 15422 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15423 INNER JOIN t4 ON t1.d=t4.d 15424 WHERE t4.z>0 15425 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15426} { 15427 5 105 205 305 - - - - 305 5 15428 10 110 210 310 110 10 - - 310 10 15429 15 115 215 315 - - 215 15 315 15 15430 20 120 220 320 120 20 - - 320 20 15431 25 125 225 325 - - - - 325 25 15432 30 130 230 330 130 30 230 30 330 30 15433 35 135 235 335 - - - - 335 35 15434 40 140 240 340 140 40 - - 340 40 15435 45 145 245 345 - - 245 45 345 45 15436 50 150 250 350 150 50 - - 350 50 15437 55 155 255 355 - - - - 355 55 15438 60 160 260 360 160 60 260 60 360 60 15439 65 165 265 365 - - - - 365 65 15440 70 170 270 370 170 70 - - 370 70 15441 75 175 275 375 - - 275 75 375 75 15442 80 180 280 380 180 80 - - 380 80 15443 85 185 285 385 - - - - 385 85 15444 90 190 290 390 190 90 290 90 390 90 15445 95 195 295 395 - - - - 395 95 15446} 15447do_execsql_test joinD-537 { 15448 SELECT t1.*, t2.*, t3.*, t4.* 15449 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 15450 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15451 INNER JOIN t4 ON t1.d=t4.d 15452 WHERE t4.z IS NULL OR t4.z>0 15453 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15454} { 15455 5 105 205 305 - - - - 305 5 15456 10 110 210 310 110 10 - - 310 10 15457 15 115 215 315 - - 215 15 315 15 15458 20 120 220 320 120 20 - - 320 20 15459 25 125 225 325 - - - - 325 25 15460 30 130 230 330 130 30 230 30 330 30 15461 35 135 235 335 - - - - 335 35 15462 40 140 240 340 140 40 - - 340 40 15463 45 145 245 345 - - 245 45 345 45 15464 50 150 250 350 150 50 - - 350 50 15465 55 155 255 355 - - - - 355 55 15466 60 160 260 360 160 60 260 60 360 60 15467 65 165 265 365 - - - - 365 65 15468 70 170 270 370 170 70 - - 370 70 15469 75 175 275 375 - - 275 75 375 75 15470 80 180 280 380 180 80 - - 380 80 15471 85 185 285 385 - - - - 385 85 15472 90 190 290 390 190 90 290 90 390 90 15473 95 195 295 395 - - - - 395 95 15474} 15475do_execsql_test joinD-538 { 15476 SELECT t1.*, t2.*, t3.*, t4.* 15477 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 15478 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15479 INNER JOIN t4 ON t1.d=t4.d 15480 WHERE t2.x>0 AND t4.z>0 15481 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15482} { 15483 10 110 210 310 110 10 - - 310 10 15484 20 120 220 320 120 20 - - 320 20 15485 30 130 230 330 130 30 230 30 330 30 15486 40 140 240 340 140 40 - - 340 40 15487 50 150 250 350 150 50 - - 350 50 15488 60 160 260 360 160 60 260 60 360 60 15489 70 170 270 370 170 70 - - 370 70 15490 80 180 280 380 180 80 - - 380 80 15491 90 190 290 390 190 90 290 90 390 90 15492} 15493do_execsql_test joinD-539 { 15494 SELECT t1.*, t2.*, t3.*, t4.* 15495 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 15496 FULL JOIN t3 ON t1.c=t3.c 15497 INNER JOIN t4 ON t1.d=t4.d 15498 WHERE t4.z>0 AND t3.y>0 15499 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15500} { 15501 15 115 215 315 - - 215 15 315 15 15502 30 130 230 330 130 30 230 30 330 30 15503 45 145 245 345 - - 245 45 345 45 15504 60 160 260 360 160 60 260 60 360 60 15505 75 175 275 375 - - 275 75 375 75 15506 90 190 290 390 190 90 290 90 390 90 15507} 15508do_execsql_test joinD-540 { 15509 SELECT t1.*, t2.*, t3.*, t4.* 15510 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 15511 FULL JOIN t3 ON t1.c=t3.c 15512 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 15513 WHERE t2.x>0 AND t3.y>0 15514 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15515} { 15516 30 130 230 330 130 30 230 30 330 30 15517 60 160 260 360 160 60 260 60 360 60 15518 90 190 290 390 190 90 290 90 390 90 15519} 15520do_execsql_test joinD-541 { 15521 SELECT t1.*, t2.*, t3.*, t4.* 15522 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 15523 FULL JOIN t3 ON t1.c=t3.c 15524 INNER JOIN t4 ON t1.d=t4.d 15525 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 15526 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15527} { 15528 30 130 230 330 130 30 230 30 330 30 15529 60 160 260 360 160 60 260 60 360 60 15530 90 190 290 390 190 90 290 90 390 90 15531} 15532do_execsql_test joinD-542 { 15533 SELECT t1.*, t2.*, t3.*, t4.* 15534 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 15535 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 15536 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 15537 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15538} { 15539 5 105 205 305 - - - - 305 5 15540 10 110 210 310 110 10 - - 310 10 15541 15 115 215 315 - - 215 15 315 15 15542 20 120 220 320 120 20 - - 320 20 15543 25 125 225 325 - - - - 325 25 15544 30 130 230 330 130 30 230 30 330 30 15545 35 135 235 335 - - - - 335 35 15546 40 140 240 340 140 40 - - 340 40 15547 45 145 245 345 - - 245 45 345 45 15548 50 150 250 350 150 50 - - 350 50 15549 55 155 255 355 - - - - 355 55 15550 60 160 260 360 160 60 260 60 360 60 15551 65 165 265 365 - - - - 365 65 15552 70 170 270 370 170 70 - - 370 70 15553 75 175 275 375 - - 275 75 375 75 15554 80 180 280 380 180 80 - - 380 80 15555 85 185 285 385 - - - - 385 85 15556 90 190 290 390 190 90 290 90 390 90 15557 95 195 295 395 - - - - 395 95 15558} 15559do_execsql_test joinD-543 { 15560 SELECT t1.*, t2.*, t3.*, t4.* 15561 FROM t1 LEFT JOIN t2 ON t2.x>0 15562 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 15563 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 15564 WHERE t1.b IS NOT DISTINCT FROM t2.b 15565 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15566} { 15567 10 110 210 310 110 10 - - 310 10 15568 20 120 220 320 120 20 - - 320 20 15569 30 130 230 330 130 30 230 30 330 30 15570 40 140 240 340 140 40 - - 340 40 15571 50 150 250 350 150 50 - - 350 50 15572 60 160 260 360 160 60 260 60 360 60 15573 70 170 270 370 170 70 - - 370 70 15574 80 180 280 380 180 80 - - 380 80 15575 90 190 290 390 190 90 290 90 390 90 15576} 15577do_execsql_test joinD-544 { 15578 SELECT t1.*, t2.*, t3.*, t4.* 15579 FROM t1 LEFT JOIN t2 ON t2.x>0 15580 FULL JOIN t3 ON t3.y>0 15581 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 15582 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 15583 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15584} { 15585 30 130 230 330 130 30 230 30 330 30 15586 60 160 260 360 160 60 260 60 360 60 15587 90 190 290 390 190 90 290 90 390 90 15588} 15589do_execsql_test joinD-545 { 15590 SELECT t1.*, t2.*, t3.*, t4.* 15591 FROM t1 LEFT JOIN t2 ON t2.x>0 15592 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 15593 INNER JOIN t4 ON t4.z>0 15594 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 15595 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15596} { 15597 10 110 210 310 110 10 - - 310 10 15598 20 120 220 320 120 20 - - 320 20 15599 30 130 230 330 130 30 230 30 330 30 15600 40 140 240 340 140 40 - - 340 40 15601 50 150 250 350 150 50 - - 350 50 15602 60 160 260 360 160 60 260 60 360 60 15603 70 170 270 370 170 70 - - 370 70 15604 80 180 280 380 180 80 - - 380 80 15605 90 190 290 390 190 90 290 90 390 90 15606} 15607do_execsql_test joinD-546 { 15608 SELECT t1.*, t2.*, t3.*, t4.* 15609 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 15610 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15611 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 15612 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15613} { 15614 5 105 205 305 - - - - 305 5 15615 10 110 210 310 110 10 - - 310 10 15616 15 115 215 315 - - 215 15 315 15 15617 20 120 220 320 120 20 - - 320 20 15618 25 125 225 325 - - - - 325 25 15619 30 130 230 330 130 30 230 30 330 30 15620 35 135 235 335 - - - - 335 35 15621 40 140 240 340 140 40 - - 340 40 15622 45 145 245 345 - - 245 45 345 45 15623 50 150 250 350 150 50 - - 350 50 15624 55 155 255 355 - - - - 355 55 15625 60 160 260 360 160 60 260 60 360 60 15626 65 165 265 365 - - - - 365 65 15627 70 170 270 370 170 70 - - 370 70 15628 75 175 275 375 - - 275 75 375 75 15629 80 180 280 380 180 80 - - 380 80 15630 85 185 285 385 - - - - 385 85 15631 90 190 290 390 190 90 290 90 390 90 15632 95 195 295 395 - - - - 395 95 15633} 15634do_execsql_test joinD-547 { 15635 SELECT t1.*, t2.*, t3.*, t4.* 15636 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 15637 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15638 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 15639 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15640} { 15641 0 100 200 300 - - - - - - 15642 1 101 201 301 - - - - - - 15643 2 102 202 302 102 2 - - - - 15644 3 103 203 303 - - 203 3 - - 15645 4 104 204 304 104 4 - - - - 15646 5 105 205 305 - - - - 305 5 15647 6 106 206 306 106 6 206 6 - - 15648 7 107 207 307 - - - - - - 15649 8 108 208 308 108 8 - - - - 15650 9 109 209 309 - - 209 9 - - 15651 10 110 210 310 110 10 - - 310 10 15652 11 111 211 311 - - - - - - 15653 12 112 212 312 112 12 212 12 - - 15654 13 113 213 313 - - - - - - 15655 14 114 214 314 114 14 - - - - 15656 15 115 215 315 - - 215 15 315 15 15657 16 116 216 316 116 16 - - - - 15658 17 117 217 317 - - - - - - 15659 18 118 218 318 118 18 218 18 - - 15660 19 119 219 319 - - - - - - 15661 20 120 220 320 120 20 - - 320 20 15662 21 121 221 321 - - 221 21 - - 15663 22 122 222 322 122 22 - - - - 15664 23 123 223 323 - - - - - - 15665 24 124 224 324 124 24 224 24 - - 15666 25 125 225 325 - - - - 325 25 15667 26 126 226 326 126 26 - - - - 15668 27 127 227 327 - - 227 27 - - 15669 28 128 228 328 128 28 - - - - 15670 29 129 229 329 - - - - - - 15671 30 130 230 330 130 30 230 30 330 30 15672 31 131 231 331 - - - - - - 15673 32 132 232 332 132 32 - - - - 15674 33 133 233 333 - - 233 33 - - 15675 34 134 234 334 134 34 - - - - 15676 35 135 235 335 - - - - 335 35 15677 36 136 236 336 136 36 236 36 - - 15678 37 137 237 337 - - - - - - 15679 38 138 238 338 138 38 - - - - 15680 39 139 239 339 - - 239 39 - - 15681 40 140 240 340 140 40 - - 340 40 15682 41 141 241 341 - - - - - - 15683 42 142 242 342 142 42 242 42 - - 15684 43 143 243 343 - - - - - - 15685 44 144 244 344 144 44 - - - - 15686 45 145 245 345 - - 245 45 345 45 15687 46 146 246 346 146 46 - - - - 15688 47 147 247 347 - - - - - - 15689 48 148 248 348 148 48 248 48 - - 15690 49 149 249 349 - - - - - - 15691 50 150 250 350 150 50 - - 350 50 15692 51 151 251 351 - - 251 51 - - 15693 52 152 252 352 152 52 - - - - 15694 53 153 253 353 - - - - - - 15695 54 154 254 354 154 54 254 54 - - 15696 55 155 255 355 - - - - 355 55 15697 56 156 256 356 156 56 - - - - 15698 57 157 257 357 - - 257 57 - - 15699 58 158 258 358 158 58 - - - - 15700 59 159 259 359 - - - - - - 15701 60 160 260 360 160 60 260 60 360 60 15702 61 161 261 361 - - - - - - 15703 62 162 262 362 162 62 - - - - 15704 63 163 263 363 - - 263 63 - - 15705 64 164 264 364 164 64 - - - - 15706 65 165 265 365 - - - - 365 65 15707 66 166 266 366 166 66 266 66 - - 15708 67 167 267 367 - - - - - - 15709 68 168 268 368 168 68 - - - - 15710 69 169 269 369 - - 269 69 - - 15711 70 170 270 370 170 70 - - 370 70 15712 71 171 271 371 - - - - - - 15713 72 172 272 372 172 72 272 72 - - 15714 73 173 273 373 - - - - - - 15715 74 174 274 374 174 74 - - - - 15716 75 175 275 375 - - 275 75 375 75 15717 76 176 276 376 176 76 - - - - 15718 77 177 277 377 - - - - - - 15719 78 178 278 378 178 78 278 78 - - 15720 79 179 279 379 - - - - - - 15721 80 180 280 380 180 80 - - 380 80 15722 81 181 281 381 - - 281 81 - - 15723 82 182 282 382 182 82 - - - - 15724 83 183 283 383 - - - - - - 15725 84 184 284 384 184 84 284 84 - - 15726 85 185 285 385 - - - - 385 85 15727 86 186 286 386 186 86 - - - - 15728 87 187 287 387 - - 287 87 - - 15729 88 188 288 388 188 88 - - - - 15730 89 189 289 389 - - - - - - 15731 90 190 290 390 190 90 290 90 390 90 15732 91 191 291 391 - - - - - - 15733 92 192 292 392 192 92 - - - - 15734 93 193 293 393 - - 293 93 - - 15735 94 194 294 394 194 94 - - - - 15736 95 195 295 395 - - - - 395 95 15737 96 - 296 396 - - - - - - 15738 97 197 - 397 - - - - - - 15739 98 198 298 - - - - - - - 15740 99 - - - - - - - - - 15741 - - - - - - 200 0 - - 15742} 15743do_execsql_test joinD-548 { 15744 SELECT t1.*, t2.*, t3.*, t4.* 15745 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 15746 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15747 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 15748 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15749} { 15750 0 100 200 300 - - - - - - 15751 1 101 201 301 - - - - - - 15752 2 102 202 302 102 2 - - - - 15753 3 103 203 303 - - 203 3 - - 15754 4 104 204 304 104 4 - - - - 15755 5 105 205 305 - - - - 305 5 15756 6 106 206 306 106 6 206 6 - - 15757 7 107 207 307 - - - - - - 15758 8 108 208 308 108 8 - - - - 15759 9 109 209 309 - - 209 9 - - 15760 10 110 210 310 110 10 - - 310 10 15761 11 111 211 311 - - - - - - 15762 12 112 212 312 112 12 212 12 - - 15763 13 113 213 313 - - - - - - 15764 14 114 214 314 114 14 - - - - 15765 15 115 215 315 - - 215 15 315 15 15766 16 116 216 316 116 16 - - - - 15767 17 117 217 317 - - - - - - 15768 18 118 218 318 118 18 218 18 - - 15769 19 119 219 319 - - - - - - 15770 20 120 220 320 120 20 - - 320 20 15771 21 121 221 321 - - 221 21 - - 15772 22 122 222 322 122 22 - - - - 15773 23 123 223 323 - - - - - - 15774 24 124 224 324 124 24 224 24 - - 15775 25 125 225 325 - - - - 325 25 15776 26 126 226 326 126 26 - - - - 15777 27 127 227 327 - - 227 27 - - 15778 28 128 228 328 128 28 - - - - 15779 29 129 229 329 - - - - - - 15780 30 130 230 330 130 30 230 30 330 30 15781 31 131 231 331 - - - - - - 15782 32 132 232 332 132 32 - - - - 15783 33 133 233 333 - - 233 33 - - 15784 34 134 234 334 134 34 - - - - 15785 35 135 235 335 - - - - 335 35 15786 36 136 236 336 136 36 236 36 - - 15787 37 137 237 337 - - - - - - 15788 38 138 238 338 138 38 - - - - 15789 39 139 239 339 - - 239 39 - - 15790 40 140 240 340 140 40 - - 340 40 15791 41 141 241 341 - - - - - - 15792 42 142 242 342 142 42 242 42 - - 15793 43 143 243 343 - - - - - - 15794 44 144 244 344 144 44 - - - - 15795 45 145 245 345 - - 245 45 345 45 15796 46 146 246 346 146 46 - - - - 15797 47 147 247 347 - - - - - - 15798 48 148 248 348 148 48 248 48 - - 15799 49 149 249 349 - - - - - - 15800 50 150 250 350 150 50 - - 350 50 15801 51 151 251 351 - - 251 51 - - 15802 52 152 252 352 152 52 - - - - 15803 53 153 253 353 - - - - - - 15804 54 154 254 354 154 54 254 54 - - 15805 55 155 255 355 - - - - 355 55 15806 56 156 256 356 156 56 - - - - 15807 57 157 257 357 - - 257 57 - - 15808 58 158 258 358 158 58 - - - - 15809 59 159 259 359 - - - - - - 15810 60 160 260 360 160 60 260 60 360 60 15811 61 161 261 361 - - - - - - 15812 62 162 262 362 162 62 - - - - 15813 63 163 263 363 - - 263 63 - - 15814 64 164 264 364 164 64 - - - - 15815 65 165 265 365 - - - - 365 65 15816 66 166 266 366 166 66 266 66 - - 15817 67 167 267 367 - - - - - - 15818 68 168 268 368 168 68 - - - - 15819 69 169 269 369 - - 269 69 - - 15820 70 170 270 370 170 70 - - 370 70 15821 71 171 271 371 - - - - - - 15822 72 172 272 372 172 72 272 72 - - 15823 73 173 273 373 - - - - - - 15824 74 174 274 374 174 74 - - - - 15825 75 175 275 375 - - 275 75 375 75 15826 76 176 276 376 176 76 - - - - 15827 77 177 277 377 - - - - - - 15828 78 178 278 378 178 78 278 78 - - 15829 79 179 279 379 - - - - - - 15830 80 180 280 380 180 80 - - 380 80 15831 81 181 281 381 - - 281 81 - - 15832 82 182 282 382 182 82 - - - - 15833 83 183 283 383 - - - - - - 15834 84 184 284 384 184 84 284 84 - - 15835 85 185 285 385 - - - - 385 85 15836 86 186 286 386 186 86 - - - - 15837 87 187 287 387 - - 287 87 - - 15838 88 188 288 388 188 88 - - - - 15839 89 189 289 389 - - - - - - 15840 90 190 290 390 190 90 290 90 390 90 15841 91 191 291 391 - - - - - - 15842 92 192 292 392 192 92 - - - - 15843 93 193 293 393 - - 293 93 - - 15844 94 194 294 394 194 94 - - - - 15845 95 195 295 395 - - - - 395 95 15846 96 - 296 396 - - - - - - 15847 97 197 - 397 - - - - - - 15848 98 198 298 - - - - - - - 15849 99 - - - - - - - - - 15850 - - - - - - 200 0 - - 15851} 15852do_execsql_test joinD-549 { 15853 SELECT t1.*, t2.*, t3.*, t4.* 15854 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 15855 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15856 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 15857 WHERE t2.x>0 15858 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15859} { 15860 2 102 202 302 102 2 - - - - 15861 4 104 204 304 104 4 - - - - 15862 6 106 206 306 106 6 206 6 - - 15863 8 108 208 308 108 8 - - - - 15864 10 110 210 310 110 10 - - 310 10 15865 12 112 212 312 112 12 212 12 - - 15866 14 114 214 314 114 14 - - - - 15867 16 116 216 316 116 16 - - - - 15868 18 118 218 318 118 18 218 18 - - 15869 20 120 220 320 120 20 - - 320 20 15870 22 122 222 322 122 22 - - - - 15871 24 124 224 324 124 24 224 24 - - 15872 26 126 226 326 126 26 - - - - 15873 28 128 228 328 128 28 - - - - 15874 30 130 230 330 130 30 230 30 330 30 15875 32 132 232 332 132 32 - - - - 15876 34 134 234 334 134 34 - - - - 15877 36 136 236 336 136 36 236 36 - - 15878 38 138 238 338 138 38 - - - - 15879 40 140 240 340 140 40 - - 340 40 15880 42 142 242 342 142 42 242 42 - - 15881 44 144 244 344 144 44 - - - - 15882 46 146 246 346 146 46 - - - - 15883 48 148 248 348 148 48 248 48 - - 15884 50 150 250 350 150 50 - - 350 50 15885 52 152 252 352 152 52 - - - - 15886 54 154 254 354 154 54 254 54 - - 15887 56 156 256 356 156 56 - - - - 15888 58 158 258 358 158 58 - - - - 15889 60 160 260 360 160 60 260 60 360 60 15890 62 162 262 362 162 62 - - - - 15891 64 164 264 364 164 64 - - - - 15892 66 166 266 366 166 66 266 66 - - 15893 68 168 268 368 168 68 - - - - 15894 70 170 270 370 170 70 - - 370 70 15895 72 172 272 372 172 72 272 72 - - 15896 74 174 274 374 174 74 - - - - 15897 76 176 276 376 176 76 - - - - 15898 78 178 278 378 178 78 278 78 - - 15899 80 180 280 380 180 80 - - 380 80 15900 82 182 282 382 182 82 - - - - 15901 84 184 284 384 184 84 284 84 - - 15902 86 186 286 386 186 86 - - - - 15903 88 188 288 388 188 88 - - - - 15904 90 190 290 390 190 90 290 90 390 90 15905 92 192 292 392 192 92 - - - - 15906 94 194 294 394 194 94 - - - - 15907} 15908do_execsql_test joinD-550 { 15909 SELECT t1.*, t2.*, t3.*, t4.* 15910 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 15911 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15912 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 15913 WHERE (t2.x>0 OR t2.x IS NULL) 15914 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15915} { 15916 1 101 201 301 - - - - - - 15917 2 102 202 302 102 2 - - - - 15918 3 103 203 303 - - 203 3 - - 15919 4 104 204 304 104 4 - - - - 15920 5 105 205 305 - - - - 305 5 15921 6 106 206 306 106 6 206 6 - - 15922 7 107 207 307 - - - - - - 15923 8 108 208 308 108 8 - - - - 15924 9 109 209 309 - - 209 9 - - 15925 10 110 210 310 110 10 - - 310 10 15926 11 111 211 311 - - - - - - 15927 12 112 212 312 112 12 212 12 - - 15928 13 113 213 313 - - - - - - 15929 14 114 214 314 114 14 - - - - 15930 15 115 215 315 - - 215 15 315 15 15931 16 116 216 316 116 16 - - - - 15932 17 117 217 317 - - - - - - 15933 18 118 218 318 118 18 218 18 - - 15934 19 119 219 319 - - - - - - 15935 20 120 220 320 120 20 - - 320 20 15936 21 121 221 321 - - 221 21 - - 15937 22 122 222 322 122 22 - - - - 15938 23 123 223 323 - - - - - - 15939 24 124 224 324 124 24 224 24 - - 15940 25 125 225 325 - - - - 325 25 15941 26 126 226 326 126 26 - - - - 15942 27 127 227 327 - - 227 27 - - 15943 28 128 228 328 128 28 - - - - 15944 29 129 229 329 - - - - - - 15945 30 130 230 330 130 30 230 30 330 30 15946 31 131 231 331 - - - - - - 15947 32 132 232 332 132 32 - - - - 15948 33 133 233 333 - - 233 33 - - 15949 34 134 234 334 134 34 - - - - 15950 35 135 235 335 - - - - 335 35 15951 36 136 236 336 136 36 236 36 - - 15952 37 137 237 337 - - - - - - 15953 38 138 238 338 138 38 - - - - 15954 39 139 239 339 - - 239 39 - - 15955 40 140 240 340 140 40 - - 340 40 15956 41 141 241 341 - - - - - - 15957 42 142 242 342 142 42 242 42 - - 15958 43 143 243 343 - - - - - - 15959 44 144 244 344 144 44 - - - - 15960 45 145 245 345 - - 245 45 345 45 15961 46 146 246 346 146 46 - - - - 15962 47 147 247 347 - - - - - - 15963 48 148 248 348 148 48 248 48 - - 15964 49 149 249 349 - - - - - - 15965 50 150 250 350 150 50 - - 350 50 15966 51 151 251 351 - - 251 51 - - 15967 52 152 252 352 152 52 - - - - 15968 53 153 253 353 - - - - - - 15969 54 154 254 354 154 54 254 54 - - 15970 55 155 255 355 - - - - 355 55 15971 56 156 256 356 156 56 - - - - 15972 57 157 257 357 - - 257 57 - - 15973 58 158 258 358 158 58 - - - - 15974 59 159 259 359 - - - - - - 15975 60 160 260 360 160 60 260 60 360 60 15976 61 161 261 361 - - - - - - 15977 62 162 262 362 162 62 - - - - 15978 63 163 263 363 - - 263 63 - - 15979 64 164 264 364 164 64 - - - - 15980 65 165 265 365 - - - - 365 65 15981 66 166 266 366 166 66 266 66 - - 15982 67 167 267 367 - - - - - - 15983 68 168 268 368 168 68 - - - - 15984 69 169 269 369 - - 269 69 - - 15985 70 170 270 370 170 70 - - 370 70 15986 71 171 271 371 - - - - - - 15987 72 172 272 372 172 72 272 72 - - 15988 73 173 273 373 - - - - - - 15989 74 174 274 374 174 74 - - - - 15990 75 175 275 375 - - 275 75 375 75 15991 76 176 276 376 176 76 - - - - 15992 77 177 277 377 - - - - - - 15993 78 178 278 378 178 78 278 78 - - 15994 79 179 279 379 - - - - - - 15995 80 180 280 380 180 80 - - 380 80 15996 81 181 281 381 - - 281 81 - - 15997 82 182 282 382 182 82 - - - - 15998 83 183 283 383 - - - - - - 15999 84 184 284 384 184 84 284 84 - - 16000 85 185 285 385 - - - - 385 85 16001 86 186 286 386 186 86 - - - - 16002 87 187 287 387 - - 287 87 - - 16003 88 188 288 388 188 88 - - - - 16004 89 189 289 389 - - - - - - 16005 90 190 290 390 190 90 290 90 390 90 16006 91 191 291 391 - - - - - - 16007 92 192 292 392 192 92 - - - - 16008 93 193 293 393 - - 293 93 - - 16009 94 194 294 394 194 94 - - - - 16010 95 195 295 395 - - - - 395 95 16011 96 - 296 396 - - - - - - 16012 97 197 - 397 - - - - - - 16013 98 198 298 - - - - - - - 16014 99 - - - - - - - - - 16015 - - - - - - 200 0 - - 16016} 16017do_execsql_test joinD-551 { 16018 SELECT t1.*, t2.*, t3.*, t4.* 16019 FROM t1 LEFT JOIN t2 ON true 16020 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16021 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 16022 WHERE t1.b=t2.b AND t2.x>0 16023 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16024} { 16025 2 102 202 302 102 2 - - - - 16026 4 104 204 304 104 4 - - - - 16027 6 106 206 306 106 6 206 6 - - 16028 8 108 208 308 108 8 - - - - 16029 10 110 210 310 110 10 - - 310 10 16030 12 112 212 312 112 12 212 12 - - 16031 14 114 214 314 114 14 - - - - 16032 16 116 216 316 116 16 - - - - 16033 18 118 218 318 118 18 218 18 - - 16034 20 120 220 320 120 20 - - 320 20 16035 22 122 222 322 122 22 - - - - 16036 24 124 224 324 124 24 224 24 - - 16037 26 126 226 326 126 26 - - - - 16038 28 128 228 328 128 28 - - - - 16039 30 130 230 330 130 30 230 30 330 30 16040 32 132 232 332 132 32 - - - - 16041 34 134 234 334 134 34 - - - - 16042 36 136 236 336 136 36 236 36 - - 16043 38 138 238 338 138 38 - - - - 16044 40 140 240 340 140 40 - - 340 40 16045 42 142 242 342 142 42 242 42 - - 16046 44 144 244 344 144 44 - - - - 16047 46 146 246 346 146 46 - - - - 16048 48 148 248 348 148 48 248 48 - - 16049 50 150 250 350 150 50 - - 350 50 16050 52 152 252 352 152 52 - - - - 16051 54 154 254 354 154 54 254 54 - - 16052 56 156 256 356 156 56 - - - - 16053 58 158 258 358 158 58 - - - - 16054 60 160 260 360 160 60 260 60 360 60 16055 62 162 262 362 162 62 - - - - 16056 64 164 264 364 164 64 - - - - 16057 66 166 266 366 166 66 266 66 - - 16058 68 168 268 368 168 68 - - - - 16059 70 170 270 370 170 70 - - 370 70 16060 72 172 272 372 172 72 272 72 - - 16061 74 174 274 374 174 74 - - - - 16062 76 176 276 376 176 76 - - - - 16063 78 178 278 378 178 78 278 78 - - 16064 80 180 280 380 180 80 - - 380 80 16065 82 182 282 382 182 82 - - - - 16066 84 184 284 384 184 84 284 84 - - 16067 86 186 286 386 186 86 - - - - 16068 88 188 288 388 188 88 - - - - 16069 90 190 290 390 190 90 290 90 390 90 16070 92 192 292 392 192 92 - - - - 16071 94 194 294 394 194 94 - - - - 16072} 16073do_execsql_test joinD-552 { 16074 SELECT t1.*, t2.*, t3.*, t4.* 16075 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16076 FULL JOIN t3 ON t1.c=t3.c 16077 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 16078 WHERE t3.y>0 16079 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16080} { 16081 3 103 203 303 - - 203 3 - - 16082 6 106 206 306 106 6 206 6 - - 16083 9 109 209 309 - - 209 9 - - 16084 12 112 212 312 112 12 212 12 - - 16085 15 115 215 315 - - 215 15 315 15 16086 18 118 218 318 118 18 218 18 - - 16087 21 121 221 321 - - 221 21 - - 16088 24 124 224 324 124 24 224 24 - - 16089 27 127 227 327 - - 227 27 - - 16090 30 130 230 330 130 30 230 30 330 30 16091 33 133 233 333 - - 233 33 - - 16092 36 136 236 336 136 36 236 36 - - 16093 39 139 239 339 - - 239 39 - - 16094 42 142 242 342 142 42 242 42 - - 16095 45 145 245 345 - - 245 45 345 45 16096 48 148 248 348 148 48 248 48 - - 16097 51 151 251 351 - - 251 51 - - 16098 54 154 254 354 154 54 254 54 - - 16099 57 157 257 357 - - 257 57 - - 16100 60 160 260 360 160 60 260 60 360 60 16101 63 163 263 363 - - 263 63 - - 16102 66 166 266 366 166 66 266 66 - - 16103 69 169 269 369 - - 269 69 - - 16104 72 172 272 372 172 72 272 72 - - 16105 75 175 275 375 - - 275 75 375 75 16106 78 178 278 378 178 78 278 78 - - 16107 81 181 281 381 - - 281 81 - - 16108 84 184 284 384 184 84 284 84 - - 16109 87 187 287 387 - - 287 87 - - 16110 90 190 290 390 190 90 290 90 390 90 16111 93 193 293 393 - - 293 93 - - 16112} 16113do_execsql_test joinD-553 { 16114 SELECT t1.*, t2.*, t3.*, t4.* 16115 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16116 FULL JOIN t3 ON t1.c=t3.c 16117 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 16118 WHERE t3.y>0 OR t3.y IS NULL 16119 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16120} { 16121 1 101 201 301 - - - - - - 16122 2 102 202 302 102 2 - - - - 16123 3 103 203 303 - - 203 3 - - 16124 4 104 204 304 104 4 - - - - 16125 5 105 205 305 - - - - 305 5 16126 6 106 206 306 106 6 206 6 - - 16127 7 107 207 307 - - - - - - 16128 8 108 208 308 108 8 - - - - 16129 9 109 209 309 - - 209 9 - - 16130 10 110 210 310 110 10 - - 310 10 16131 11 111 211 311 - - - - - - 16132 12 112 212 312 112 12 212 12 - - 16133 13 113 213 313 - - - - - - 16134 14 114 214 314 114 14 - - - - 16135 15 115 215 315 - - 215 15 315 15 16136 16 116 216 316 116 16 - - - - 16137 17 117 217 317 - - - - - - 16138 18 118 218 318 118 18 218 18 - - 16139 19 119 219 319 - - - - - - 16140 20 120 220 320 120 20 - - 320 20 16141 21 121 221 321 - - 221 21 - - 16142 22 122 222 322 122 22 - - - - 16143 23 123 223 323 - - - - - - 16144 24 124 224 324 124 24 224 24 - - 16145 25 125 225 325 - - - - 325 25 16146 26 126 226 326 126 26 - - - - 16147 27 127 227 327 - - 227 27 - - 16148 28 128 228 328 128 28 - - - - 16149 29 129 229 329 - - - - - - 16150 30 130 230 330 130 30 230 30 330 30 16151 31 131 231 331 - - - - - - 16152 32 132 232 332 132 32 - - - - 16153 33 133 233 333 - - 233 33 - - 16154 34 134 234 334 134 34 - - - - 16155 35 135 235 335 - - - - 335 35 16156 36 136 236 336 136 36 236 36 - - 16157 37 137 237 337 - - - - - - 16158 38 138 238 338 138 38 - - - - 16159 39 139 239 339 - - 239 39 - - 16160 40 140 240 340 140 40 - - 340 40 16161 41 141 241 341 - - - - - - 16162 42 142 242 342 142 42 242 42 - - 16163 43 143 243 343 - - - - - - 16164 44 144 244 344 144 44 - - - - 16165 45 145 245 345 - - 245 45 345 45 16166 46 146 246 346 146 46 - - - - 16167 47 147 247 347 - - - - - - 16168 48 148 248 348 148 48 248 48 - - 16169 49 149 249 349 - - - - - - 16170 50 150 250 350 150 50 - - 350 50 16171 51 151 251 351 - - 251 51 - - 16172 52 152 252 352 152 52 - - - - 16173 53 153 253 353 - - - - - - 16174 54 154 254 354 154 54 254 54 - - 16175 55 155 255 355 - - - - 355 55 16176 56 156 256 356 156 56 - - - - 16177 57 157 257 357 - - 257 57 - - 16178 58 158 258 358 158 58 - - - - 16179 59 159 259 359 - - - - - - 16180 60 160 260 360 160 60 260 60 360 60 16181 61 161 261 361 - - - - - - 16182 62 162 262 362 162 62 - - - - 16183 63 163 263 363 - - 263 63 - - 16184 64 164 264 364 164 64 - - - - 16185 65 165 265 365 - - - - 365 65 16186 66 166 266 366 166 66 266 66 - - 16187 67 167 267 367 - - - - - - 16188 68 168 268 368 168 68 - - - - 16189 69 169 269 369 - - 269 69 - - 16190 70 170 270 370 170 70 - - 370 70 16191 71 171 271 371 - - - - - - 16192 72 172 272 372 172 72 272 72 - - 16193 73 173 273 373 - - - - - - 16194 74 174 274 374 174 74 - - - - 16195 75 175 275 375 - - 275 75 375 75 16196 76 176 276 376 176 76 - - - - 16197 77 177 277 377 - - - - - - 16198 78 178 278 378 178 78 278 78 - - 16199 79 179 279 379 - - - - - - 16200 80 180 280 380 180 80 - - 380 80 16201 81 181 281 381 - - 281 81 - - 16202 82 182 282 382 182 82 - - - - 16203 83 183 283 383 - - - - - - 16204 84 184 284 384 184 84 284 84 - - 16205 85 185 285 385 - - - - 385 85 16206 86 186 286 386 186 86 - - - - 16207 87 187 287 387 - - 287 87 - - 16208 88 188 288 388 188 88 - - - - 16209 89 189 289 389 - - - - - - 16210 90 190 290 390 190 90 290 90 390 90 16211 91 191 291 391 - - - - - - 16212 92 192 292 392 192 92 - - - - 16213 93 193 293 393 - - 293 93 - - 16214 94 194 294 394 194 94 - - - - 16215 95 195 295 395 - - - - 395 95 16216 96 - 296 396 - - - - - - 16217 97 197 - 397 - - - - - - 16218 98 198 298 - - - - - - - 16219 99 - - - - - - - - - 16220} 16221do_execsql_test joinD-554 { 16222 SELECT t1.*, t2.*, t3.*, t4.* 16223 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16224 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16225 LEFT JOIN t4 ON t1.d=t4.d 16226 WHERE t4.z>0 16227 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16228} { 16229 5 105 205 305 - - - - 305 5 16230 10 110 210 310 110 10 - - 310 10 16231 15 115 215 315 - - 215 15 315 15 16232 20 120 220 320 120 20 - - 320 20 16233 25 125 225 325 - - - - 325 25 16234 30 130 230 330 130 30 230 30 330 30 16235 35 135 235 335 - - - - 335 35 16236 40 140 240 340 140 40 - - 340 40 16237 45 145 245 345 - - 245 45 345 45 16238 50 150 250 350 150 50 - - 350 50 16239 55 155 255 355 - - - - 355 55 16240 60 160 260 360 160 60 260 60 360 60 16241 65 165 265 365 - - - - 365 65 16242 70 170 270 370 170 70 - - 370 70 16243 75 175 275 375 - - 275 75 375 75 16244 80 180 280 380 180 80 - - 380 80 16245 85 185 285 385 - - - - 385 85 16246 90 190 290 390 190 90 290 90 390 90 16247 95 195 295 395 - - - - 395 95 16248} 16249do_execsql_test joinD-555 { 16250 SELECT t1.*, t2.*, t3.*, t4.* 16251 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16252 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16253 LEFT JOIN t4 ON t1.d=t4.d 16254 WHERE t4.z IS NULL OR t4.z>0 16255 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16256} { 16257 1 101 201 301 - - - - - - 16258 2 102 202 302 102 2 - - - - 16259 3 103 203 303 - - 203 3 - - 16260 4 104 204 304 104 4 - - - - 16261 5 105 205 305 - - - - 305 5 16262 6 106 206 306 106 6 206 6 - - 16263 7 107 207 307 - - - - - - 16264 8 108 208 308 108 8 - - - - 16265 9 109 209 309 - - 209 9 - - 16266 10 110 210 310 110 10 - - 310 10 16267 11 111 211 311 - - - - - - 16268 12 112 212 312 112 12 212 12 - - 16269 13 113 213 313 - - - - - - 16270 14 114 214 314 114 14 - - - - 16271 15 115 215 315 - - 215 15 315 15 16272 16 116 216 316 116 16 - - - - 16273 17 117 217 317 - - - - - - 16274 18 118 218 318 118 18 218 18 - - 16275 19 119 219 319 - - - - - - 16276 20 120 220 320 120 20 - - 320 20 16277 21 121 221 321 - - 221 21 - - 16278 22 122 222 322 122 22 - - - - 16279 23 123 223 323 - - - - - - 16280 24 124 224 324 124 24 224 24 - - 16281 25 125 225 325 - - - - 325 25 16282 26 126 226 326 126 26 - - - - 16283 27 127 227 327 - - 227 27 - - 16284 28 128 228 328 128 28 - - - - 16285 29 129 229 329 - - - - - - 16286 30 130 230 330 130 30 230 30 330 30 16287 31 131 231 331 - - - - - - 16288 32 132 232 332 132 32 - - - - 16289 33 133 233 333 - - 233 33 - - 16290 34 134 234 334 134 34 - - - - 16291 35 135 235 335 - - - - 335 35 16292 36 136 236 336 136 36 236 36 - - 16293 37 137 237 337 - - - - - - 16294 38 138 238 338 138 38 - - - - 16295 39 139 239 339 - - 239 39 - - 16296 40 140 240 340 140 40 - - 340 40 16297 41 141 241 341 - - - - - - 16298 42 142 242 342 142 42 242 42 - - 16299 43 143 243 343 - - - - - - 16300 44 144 244 344 144 44 - - - - 16301 45 145 245 345 - - 245 45 345 45 16302 46 146 246 346 146 46 - - - - 16303 47 147 247 347 - - - - - - 16304 48 148 248 348 148 48 248 48 - - 16305 49 149 249 349 - - - - - - 16306 50 150 250 350 150 50 - - 350 50 16307 51 151 251 351 - - 251 51 - - 16308 52 152 252 352 152 52 - - - - 16309 53 153 253 353 - - - - - - 16310 54 154 254 354 154 54 254 54 - - 16311 55 155 255 355 - - - - 355 55 16312 56 156 256 356 156 56 - - - - 16313 57 157 257 357 - - 257 57 - - 16314 58 158 258 358 158 58 - - - - 16315 59 159 259 359 - - - - - - 16316 60 160 260 360 160 60 260 60 360 60 16317 61 161 261 361 - - - - - - 16318 62 162 262 362 162 62 - - - - 16319 63 163 263 363 - - 263 63 - - 16320 64 164 264 364 164 64 - - - - 16321 65 165 265 365 - - - - 365 65 16322 66 166 266 366 166 66 266 66 - - 16323 67 167 267 367 - - - - - - 16324 68 168 268 368 168 68 - - - - 16325 69 169 269 369 - - 269 69 - - 16326 70 170 270 370 170 70 - - 370 70 16327 71 171 271 371 - - - - - - 16328 72 172 272 372 172 72 272 72 - - 16329 73 173 273 373 - - - - - - 16330 74 174 274 374 174 74 - - - - 16331 75 175 275 375 - - 275 75 375 75 16332 76 176 276 376 176 76 - - - - 16333 77 177 277 377 - - - - - - 16334 78 178 278 378 178 78 278 78 - - 16335 79 179 279 379 - - - - - - 16336 80 180 280 380 180 80 - - 380 80 16337 81 181 281 381 - - 281 81 - - 16338 82 182 282 382 182 82 - - - - 16339 83 183 283 383 - - - - - - 16340 84 184 284 384 184 84 284 84 - - 16341 85 185 285 385 - - - - 385 85 16342 86 186 286 386 186 86 - - - - 16343 87 187 287 387 - - 287 87 - - 16344 88 188 288 388 188 88 - - - - 16345 89 189 289 389 - - - - - - 16346 90 190 290 390 190 90 290 90 390 90 16347 91 191 291 391 - - - - - - 16348 92 192 292 392 192 92 - - - - 16349 93 193 293 393 - - 293 93 - - 16350 94 194 294 394 194 94 - - - - 16351 95 195 295 395 - - - - 395 95 16352 96 - 296 396 - - - - - - 16353 97 197 - 397 - - - - - - 16354 98 198 298 - - - - - - - 16355 99 - - - - - - - - - 16356 - - - - - - 200 0 - - 16357} 16358do_execsql_test joinD-556 { 16359 SELECT t1.*, t2.*, t3.*, t4.* 16360 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 16361 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16362 LEFT JOIN t4 ON t1.d=t4.d 16363 WHERE t2.x>0 AND t4.z>0 16364 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16365} { 16366 10 110 210 310 110 10 - - 310 10 16367 20 120 220 320 120 20 - - 320 20 16368 30 130 230 330 130 30 230 30 330 30 16369 40 140 240 340 140 40 - - 340 40 16370 50 150 250 350 150 50 - - 350 50 16371 60 160 260 360 160 60 260 60 360 60 16372 70 170 270 370 170 70 - - 370 70 16373 80 180 280 380 180 80 - - 380 80 16374 90 190 290 390 190 90 290 90 390 90 16375} 16376do_execsql_test joinD-557 { 16377 SELECT t1.*, t2.*, t3.*, t4.* 16378 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16379 FULL JOIN t3 ON t1.c=t3.c 16380 LEFT JOIN t4 ON t1.d=t4.d 16381 WHERE t4.z>0 AND t3.y>0 16382 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16383} { 16384 15 115 215 315 - - 215 15 315 15 16385 30 130 230 330 130 30 230 30 330 30 16386 45 145 245 345 - - 245 45 345 45 16387 60 160 260 360 160 60 260 60 360 60 16388 75 175 275 375 - - 275 75 375 75 16389 90 190 290 390 190 90 290 90 390 90 16390} 16391do_execsql_test joinD-558 { 16392 SELECT t1.*, t2.*, t3.*, t4.* 16393 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 16394 FULL JOIN t3 ON t1.c=t3.c 16395 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 16396 WHERE t2.x>0 AND t3.y>0 16397 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16398} { 16399 6 106 206 306 106 6 206 6 - - 16400 12 112 212 312 112 12 212 12 - - 16401 18 118 218 318 118 18 218 18 - - 16402 24 124 224 324 124 24 224 24 - - 16403 30 130 230 330 130 30 230 30 330 30 16404 36 136 236 336 136 36 236 36 - - 16405 42 142 242 342 142 42 242 42 - - 16406 48 148 248 348 148 48 248 48 - - 16407 54 154 254 354 154 54 254 54 - - 16408 60 160 260 360 160 60 260 60 360 60 16409 66 166 266 366 166 66 266 66 - - 16410 72 172 272 372 172 72 272 72 - - 16411 78 178 278 378 178 78 278 78 - - 16412 84 184 284 384 184 84 284 84 - - 16413 90 190 290 390 190 90 290 90 390 90 16414} 16415do_execsql_test joinD-559 { 16416 SELECT t1.*, t2.*, t3.*, t4.* 16417 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 16418 FULL JOIN t3 ON t1.c=t3.c 16419 LEFT JOIN t4 ON t1.d=t4.d 16420 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 16421 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16422} { 16423 30 130 230 330 130 30 230 30 330 30 16424 60 160 260 360 160 60 260 60 360 60 16425 90 190 290 390 190 90 290 90 390 90 16426} 16427do_execsql_test joinD-560 { 16428 SELECT t1.*, t2.*, t3.*, t4.* 16429 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 16430 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 16431 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 16432 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16433} { 16434 0 100 200 300 - - - - - - 16435 1 101 201 301 - - - - - - 16436 2 102 202 302 102 2 - - - - 16437 3 103 203 303 - - 203 3 - - 16438 4 104 204 304 104 4 - - - - 16439 5 105 205 305 - - - - 305 5 16440 6 106 206 306 106 6 206 6 - - 16441 7 107 207 307 - - - - - - 16442 8 108 208 308 108 8 - - - - 16443 9 109 209 309 - - 209 9 - - 16444 10 110 210 310 110 10 - - 310 10 16445 11 111 211 311 - - - - - - 16446 12 112 212 312 112 12 212 12 - - 16447 13 113 213 313 - - - - - - 16448 14 114 214 314 114 14 - - - - 16449 15 115 215 315 - - 215 15 315 15 16450 16 116 216 316 116 16 - - - - 16451 17 117 217 317 - - - - - - 16452 18 118 218 318 118 18 218 18 - - 16453 19 119 219 319 - - - - - - 16454 20 120 220 320 120 20 - - 320 20 16455 21 121 221 321 - - 221 21 - - 16456 22 122 222 322 122 22 - - - - 16457 23 123 223 323 - - - - - - 16458 24 124 224 324 124 24 224 24 - - 16459 25 125 225 325 - - - - 325 25 16460 26 126 226 326 126 26 - - - - 16461 27 127 227 327 - - 227 27 - - 16462 28 128 228 328 128 28 - - - - 16463 29 129 229 329 - - - - - - 16464 30 130 230 330 130 30 230 30 330 30 16465 31 131 231 331 - - - - - - 16466 32 132 232 332 132 32 - - - - 16467 33 133 233 333 - - 233 33 - - 16468 34 134 234 334 134 34 - - - - 16469 35 135 235 335 - - - - 335 35 16470 36 136 236 336 136 36 236 36 - - 16471 37 137 237 337 - - - - - - 16472 38 138 238 338 138 38 - - - - 16473 39 139 239 339 - - 239 39 - - 16474 40 140 240 340 140 40 - - 340 40 16475 41 141 241 341 - - - - - - 16476 42 142 242 342 142 42 242 42 - - 16477 43 143 243 343 - - - - - - 16478 44 144 244 344 144 44 - - - - 16479 45 145 245 345 - - 245 45 345 45 16480 46 146 246 346 146 46 - - - - 16481 47 147 247 347 - - - - - - 16482 48 148 248 348 148 48 248 48 - - 16483 49 149 249 349 - - - - - - 16484 50 150 250 350 150 50 - - 350 50 16485 51 151 251 351 - - 251 51 - - 16486 52 152 252 352 152 52 - - - - 16487 53 153 253 353 - - - - - - 16488 54 154 254 354 154 54 254 54 - - 16489 55 155 255 355 - - - - 355 55 16490 56 156 256 356 156 56 - - - - 16491 57 157 257 357 - - 257 57 - - 16492 58 158 258 358 158 58 - - - - 16493 59 159 259 359 - - - - - - 16494 60 160 260 360 160 60 260 60 360 60 16495 61 161 261 361 - - - - - - 16496 62 162 262 362 162 62 - - - - 16497 63 163 263 363 - - 263 63 - - 16498 64 164 264 364 164 64 - - - - 16499 65 165 265 365 - - - - 365 65 16500 66 166 266 366 166 66 266 66 - - 16501 67 167 267 367 - - - - - - 16502 68 168 268 368 168 68 - - - - 16503 69 169 269 369 - - 269 69 - - 16504 70 170 270 370 170 70 - - 370 70 16505 71 171 271 371 - - - - - - 16506 72 172 272 372 172 72 272 72 - - 16507 73 173 273 373 - - - - - - 16508 74 174 274 374 174 74 - - - - 16509 75 175 275 375 - - 275 75 375 75 16510 76 176 276 376 176 76 - - - - 16511 77 177 277 377 - - - - - - 16512 78 178 278 378 178 78 278 78 - - 16513 79 179 279 379 - - - - - - 16514 80 180 280 380 180 80 - - 380 80 16515 81 181 281 381 - - 281 81 - - 16516 82 182 282 382 182 82 - - - - 16517 83 183 283 383 - - - - - - 16518 84 184 284 384 184 84 284 84 - - 16519 85 185 285 385 - - - - 385 85 16520 86 186 286 386 186 86 - - - - 16521 87 187 287 387 - - 287 87 - - 16522 88 188 288 388 188 88 - - - - 16523 89 189 289 389 - - - - - - 16524 90 190 290 390 190 90 290 90 390 90 16525 91 191 291 391 - - - - - - 16526 92 192 292 392 192 92 - - - - 16527 93 193 293 393 - - 293 93 - - 16528 94 194 294 394 194 94 - - - - 16529 95 195 295 395 - - - - 395 95 16530 96 - 296 396 - - - - - - 16531 97 197 - 397 - - - - - - 16532 98 198 298 - - - - - - - 16533 99 - - - - - - - - - 16534 - - - - - - 200 0 - - 16535} 16536do_execsql_test joinD-561 { 16537 SELECT t1.*, t2.*, t3.*, t4.* 16538 FROM t1 LEFT JOIN t2 ON t2.x>0 16539 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 16540 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 16541 WHERE t1.b IS NOT DISTINCT FROM t2.b 16542 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16543} { 16544 2 102 202 302 102 2 - - - - 16545 4 104 204 304 104 4 - - - - 16546 6 106 206 306 106 6 206 6 - - 16547 8 108 208 308 108 8 - - - - 16548 10 110 210 310 110 10 - - 310 10 16549 12 112 212 312 112 12 212 12 - - 16550 14 114 214 314 114 14 - - - - 16551 16 116 216 316 116 16 - - - - 16552 18 118 218 318 118 18 218 18 - - 16553 20 120 220 320 120 20 - - 320 20 16554 22 122 222 322 122 22 - - - - 16555 24 124 224 324 124 24 224 24 - - 16556 26 126 226 326 126 26 - - - - 16557 28 128 228 328 128 28 - - - - 16558 30 130 230 330 130 30 230 30 330 30 16559 32 132 232 332 132 32 - - - - 16560 34 134 234 334 134 34 - - - - 16561 36 136 236 336 136 36 236 36 - - 16562 38 138 238 338 138 38 - - - - 16563 40 140 240 340 140 40 - - 340 40 16564 42 142 242 342 142 42 242 42 - - 16565 44 144 244 344 144 44 - - - - 16566 46 146 246 346 146 46 - - - - 16567 48 148 248 348 148 48 248 48 - - 16568 50 150 250 350 150 50 - - 350 50 16569 52 152 252 352 152 52 - - - - 16570 54 154 254 354 154 54 254 54 - - 16571 56 156 256 356 156 56 - - - - 16572 58 158 258 358 158 58 - - - - 16573 60 160 260 360 160 60 260 60 360 60 16574 62 162 262 362 162 62 - - - - 16575 64 164 264 364 164 64 - - - - 16576 66 166 266 366 166 66 266 66 - - 16577 68 168 268 368 168 68 - - - - 16578 70 170 270 370 170 70 - - 370 70 16579 72 172 272 372 172 72 272 72 - - 16580 74 174 274 374 174 74 - - - - 16581 76 176 276 376 176 76 - - - - 16582 78 178 278 378 178 78 278 78 - - 16583 80 180 280 380 180 80 - - 380 80 16584 82 182 282 382 182 82 - - - - 16585 84 184 284 384 184 84 284 84 - - 16586 86 186 286 386 186 86 - - - - 16587 88 188 288 388 188 88 - - - - 16588 90 190 290 390 190 90 290 90 390 90 16589 92 192 292 392 192 92 - - - - 16590 94 194 294 394 194 94 - - - - 16591 - - - - - - 200 0 - - 16592} 16593do_execsql_test joinD-562 { 16594 SELECT t1.*, t2.*, t3.*, t4.* 16595 FROM t1 LEFT JOIN t2 ON t2.x>0 16596 FULL JOIN t3 ON t3.y>0 16597 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 16598 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 16599 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16600} { 16601 6 106 206 306 106 6 206 6 - - 16602 12 112 212 312 112 12 212 12 - - 16603 18 118 218 318 118 18 218 18 - - 16604 24 124 224 324 124 24 224 24 - - 16605 30 130 230 330 130 30 230 30 330 30 16606 36 136 236 336 136 36 236 36 - - 16607 42 142 242 342 142 42 242 42 - - 16608 48 148 248 348 148 48 248 48 - - 16609 54 154 254 354 154 54 254 54 - - 16610 60 160 260 360 160 60 260 60 360 60 16611 66 166 266 366 166 66 266 66 - - 16612 72 172 272 372 172 72 272 72 - - 16613 78 178 278 378 178 78 278 78 - - 16614 84 184 284 384 184 84 284 84 - - 16615 90 190 290 390 190 90 290 90 390 90 16616} 16617do_execsql_test joinD-563 { 16618 SELECT t1.*, t2.*, t3.*, t4.* 16619 FROM t1 LEFT JOIN t2 ON t2.x>0 16620 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 16621 LEFT JOIN t4 ON t4.z>0 16622 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 16623 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16624} { 16625 10 110 210 310 110 10 - - 310 10 16626 20 120 220 320 120 20 - - 320 20 16627 30 130 230 330 130 30 230 30 330 30 16628 40 140 240 340 140 40 - - 340 40 16629 50 150 250 350 150 50 - - 350 50 16630 60 160 260 360 160 60 260 60 360 60 16631 70 170 270 370 170 70 - - 370 70 16632 80 180 280 380 180 80 - - 380 80 16633 90 190 290 390 190 90 290 90 390 90 16634} 16635do_execsql_test joinD-564 { 16636 SELECT t1.*, t2.*, t3.*, t4.* 16637 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 16638 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16639 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 16640 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16641} { 16642 0 100 200 300 - - - - - - 16643 1 101 201 301 - - - - - - 16644 2 102 202 302 102 2 - - - - 16645 3 103 203 303 - - 203 3 - - 16646 4 104 204 304 104 4 - - - - 16647 5 105 205 305 - - - - 305 5 16648 6 106 206 306 106 6 206 6 - - 16649 7 107 207 307 - - - - - - 16650 8 108 208 308 108 8 - - - - 16651 9 109 209 309 - - 209 9 - - 16652 10 110 210 310 110 10 - - 310 10 16653 11 111 211 311 - - - - - - 16654 12 112 212 312 112 12 212 12 - - 16655 13 113 213 313 - - - - - - 16656 14 114 214 314 114 14 - - - - 16657 15 115 215 315 - - 215 15 315 15 16658 16 116 216 316 116 16 - - - - 16659 17 117 217 317 - - - - - - 16660 18 118 218 318 118 18 218 18 - - 16661 19 119 219 319 - - - - - - 16662 20 120 220 320 120 20 - - 320 20 16663 21 121 221 321 - - 221 21 - - 16664 22 122 222 322 122 22 - - - - 16665 23 123 223 323 - - - - - - 16666 24 124 224 324 124 24 224 24 - - 16667 25 125 225 325 - - - - 325 25 16668 26 126 226 326 126 26 - - - - 16669 27 127 227 327 - - 227 27 - - 16670 28 128 228 328 128 28 - - - - 16671 29 129 229 329 - - - - - - 16672 30 130 230 330 130 30 230 30 330 30 16673 31 131 231 331 - - - - - - 16674 32 132 232 332 132 32 - - - - 16675 33 133 233 333 - - 233 33 - - 16676 34 134 234 334 134 34 - - - - 16677 35 135 235 335 - - - - 335 35 16678 36 136 236 336 136 36 236 36 - - 16679 37 137 237 337 - - - - - - 16680 38 138 238 338 138 38 - - - - 16681 39 139 239 339 - - 239 39 - - 16682 40 140 240 340 140 40 - - 340 40 16683 41 141 241 341 - - - - - - 16684 42 142 242 342 142 42 242 42 - - 16685 43 143 243 343 - - - - - - 16686 44 144 244 344 144 44 - - - - 16687 45 145 245 345 - - 245 45 345 45 16688 46 146 246 346 146 46 - - - - 16689 47 147 247 347 - - - - - - 16690 48 148 248 348 148 48 248 48 - - 16691 49 149 249 349 - - - - - - 16692 50 150 250 350 150 50 - - 350 50 16693 51 151 251 351 - - 251 51 - - 16694 52 152 252 352 152 52 - - - - 16695 53 153 253 353 - - - - - - 16696 54 154 254 354 154 54 254 54 - - 16697 55 155 255 355 - - - - 355 55 16698 56 156 256 356 156 56 - - - - 16699 57 157 257 357 - - 257 57 - - 16700 58 158 258 358 158 58 - - - - 16701 59 159 259 359 - - - - - - 16702 60 160 260 360 160 60 260 60 360 60 16703 61 161 261 361 - - - - - - 16704 62 162 262 362 162 62 - - - - 16705 63 163 263 363 - - 263 63 - - 16706 64 164 264 364 164 64 - - - - 16707 65 165 265 365 - - - - 365 65 16708 66 166 266 366 166 66 266 66 - - 16709 67 167 267 367 - - - - - - 16710 68 168 268 368 168 68 - - - - 16711 69 169 269 369 - - 269 69 - - 16712 70 170 270 370 170 70 - - 370 70 16713 71 171 271 371 - - - - - - 16714 72 172 272 372 172 72 272 72 - - 16715 73 173 273 373 - - - - - - 16716 74 174 274 374 174 74 - - - - 16717 75 175 275 375 - - 275 75 375 75 16718 76 176 276 376 176 76 - - - - 16719 77 177 277 377 - - - - - - 16720 78 178 278 378 178 78 278 78 - - 16721 79 179 279 379 - - - - - - 16722 80 180 280 380 180 80 - - 380 80 16723 81 181 281 381 - - 281 81 - - 16724 82 182 282 382 182 82 - - - - 16725 83 183 283 383 - - - - - - 16726 84 184 284 384 184 84 284 84 - - 16727 85 185 285 385 - - - - 385 85 16728 86 186 286 386 186 86 - - - - 16729 87 187 287 387 - - 287 87 - - 16730 88 188 288 388 188 88 - - - - 16731 89 189 289 389 - - - - - - 16732 90 190 290 390 190 90 290 90 390 90 16733 91 191 291 391 - - - - - - 16734 92 192 292 392 192 92 - - - - 16735 93 193 293 393 - - 293 93 - - 16736 94 194 294 394 194 94 - - - - 16737 95 195 295 395 - - - - 395 95 16738 96 - 296 396 - - - - - - 16739 97 197 - 397 - - - - - - 16740 98 198 298 - - - - - - - 16741 99 - - - - - - - - - 16742 - - - - - - 200 0 - - 16743} 16744do_execsql_test joinD-565 { 16745 SELECT t1.*, t2.*, t3.*, t4.* 16746 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16747 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16748 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 16749 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16750} { 16751 5 105 205 305 - - - - 305 5 16752 10 110 210 310 110 10 - - 310 10 16753 15 115 215 315 - - 215 15 315 15 16754 20 120 220 320 120 20 - - 320 20 16755 25 125 225 325 - - - - 325 25 16756 30 130 230 330 130 30 230 30 330 30 16757 35 135 235 335 - - - - 335 35 16758 40 140 240 340 140 40 - - 340 40 16759 45 145 245 345 - - 245 45 345 45 16760 50 150 250 350 150 50 - - 350 50 16761 55 155 255 355 - - - - 355 55 16762 60 160 260 360 160 60 260 60 360 60 16763 65 165 265 365 - - - - 365 65 16764 70 170 270 370 170 70 - - 370 70 16765 75 175 275 375 - - 275 75 375 75 16766 80 180 280 380 180 80 - - 380 80 16767 85 185 285 385 - - - - 385 85 16768 90 190 290 390 190 90 290 90 390 90 16769 95 195 295 395 - - - - 395 95 16770 - - - - - - - - 300 0 16771} 16772do_execsql_test joinD-566 { 16773 SELECT t1.*, t2.*, t3.*, t4.* 16774 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 16775 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16776 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 16777 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16778} { 16779 5 105 205 305 - - - - 305 5 16780 10 110 210 310 110 10 - - 310 10 16781 15 115 215 315 - - 215 15 315 15 16782 20 120 220 320 120 20 - - 320 20 16783 25 125 225 325 - - - - 325 25 16784 30 130 230 330 130 30 230 30 330 30 16785 35 135 235 335 - - - - 335 35 16786 40 140 240 340 140 40 - - 340 40 16787 45 145 245 345 - - 245 45 345 45 16788 50 150 250 350 150 50 - - 350 50 16789 55 155 255 355 - - - - 355 55 16790 60 160 260 360 160 60 260 60 360 60 16791 65 165 265 365 - - - - 365 65 16792 70 170 270 370 170 70 - - 370 70 16793 75 175 275 375 - - 275 75 375 75 16794 80 180 280 380 180 80 - - 380 80 16795 85 185 285 385 - - - - 385 85 16796 90 190 290 390 190 90 290 90 390 90 16797 95 195 295 395 - - - - 395 95 16798 - - - - - - - - 300 0 16799} 16800do_execsql_test joinD-567 { 16801 SELECT t1.*, t2.*, t3.*, t4.* 16802 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 16803 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16804 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 16805 WHERE t2.x>0 16806 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16807} { 16808 10 110 210 310 110 10 - - 310 10 16809 20 120 220 320 120 20 - - 320 20 16810 30 130 230 330 130 30 230 30 330 30 16811 40 140 240 340 140 40 - - 340 40 16812 50 150 250 350 150 50 - - 350 50 16813 60 160 260 360 160 60 260 60 360 60 16814 70 170 270 370 170 70 - - 370 70 16815 80 180 280 380 180 80 - - 380 80 16816 90 190 290 390 190 90 290 90 390 90 16817} 16818do_execsql_test joinD-568 { 16819 SELECT t1.*, t2.*, t3.*, t4.* 16820 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 16821 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16822 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 16823 WHERE (t2.x>0 OR t2.x IS NULL) 16824 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16825} { 16826 5 105 205 305 - - - - 305 5 16827 10 110 210 310 110 10 - - 310 10 16828 15 115 215 315 - - 215 15 315 15 16829 20 120 220 320 120 20 - - 320 20 16830 25 125 225 325 - - - - 325 25 16831 30 130 230 330 130 30 230 30 330 30 16832 35 135 235 335 - - - - 335 35 16833 40 140 240 340 140 40 - - 340 40 16834 45 145 245 345 - - 245 45 345 45 16835 50 150 250 350 150 50 - - 350 50 16836 55 155 255 355 - - - - 355 55 16837 60 160 260 360 160 60 260 60 360 60 16838 65 165 265 365 - - - - 365 65 16839 70 170 270 370 170 70 - - 370 70 16840 75 175 275 375 - - 275 75 375 75 16841 80 180 280 380 180 80 - - 380 80 16842 85 185 285 385 - - - - 385 85 16843 90 190 290 390 190 90 290 90 390 90 16844 95 195 295 395 - - - - 395 95 16845 - - - - - - - - 300 0 16846} 16847do_execsql_test joinD-569 { 16848 SELECT t1.*, t2.*, t3.*, t4.* 16849 FROM t1 LEFT JOIN t2 ON true 16850 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16851 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 16852 WHERE t1.b=t2.b AND t2.x>0 16853 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16854} { 16855 10 110 210 310 110 10 - - 310 10 16856 20 120 220 320 120 20 - - 320 20 16857 30 130 230 330 130 30 230 30 330 30 16858 40 140 240 340 140 40 - - 340 40 16859 50 150 250 350 150 50 - - 350 50 16860 60 160 260 360 160 60 260 60 360 60 16861 70 170 270 370 170 70 - - 370 70 16862 80 180 280 380 180 80 - - 380 80 16863 90 190 290 390 190 90 290 90 390 90 16864} 16865do_execsql_test joinD-570 { 16866 SELECT t1.*, t2.*, t3.*, t4.* 16867 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16868 FULL JOIN t3 ON t1.c=t3.c 16869 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 16870 WHERE t3.y>0 16871 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16872} { 16873 15 115 215 315 - - 215 15 315 15 16874 30 130 230 330 130 30 230 30 330 30 16875 45 145 245 345 - - 245 45 345 45 16876 60 160 260 360 160 60 260 60 360 60 16877 75 175 275 375 - - 275 75 375 75 16878 90 190 290 390 190 90 290 90 390 90 16879} 16880do_execsql_test joinD-571 { 16881 SELECT t1.*, t2.*, t3.*, t4.* 16882 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16883 FULL JOIN t3 ON t1.c=t3.c 16884 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 16885 WHERE t3.y>0 OR t3.y IS NULL 16886 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16887} { 16888 5 105 205 305 - - - - 305 5 16889 10 110 210 310 110 10 - - 310 10 16890 15 115 215 315 - - 215 15 315 15 16891 20 120 220 320 120 20 - - 320 20 16892 25 125 225 325 - - - - 325 25 16893 30 130 230 330 130 30 230 30 330 30 16894 35 135 235 335 - - - - 335 35 16895 40 140 240 340 140 40 - - 340 40 16896 45 145 245 345 - - 245 45 345 45 16897 50 150 250 350 150 50 - - 350 50 16898 55 155 255 355 - - - - 355 55 16899 60 160 260 360 160 60 260 60 360 60 16900 65 165 265 365 - - - - 365 65 16901 70 170 270 370 170 70 - - 370 70 16902 75 175 275 375 - - 275 75 375 75 16903 80 180 280 380 180 80 - - 380 80 16904 85 185 285 385 - - - - 385 85 16905 90 190 290 390 190 90 290 90 390 90 16906 95 195 295 395 - - - - 395 95 16907 - - - - - - - - 300 0 16908} 16909do_execsql_test joinD-572 { 16910 SELECT t1.*, t2.*, t3.*, t4.* 16911 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16912 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16913 RIGHT JOIN t4 ON t1.d=t4.d 16914 WHERE t4.z>0 16915 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16916} { 16917 5 105 205 305 - - - - 305 5 16918 10 110 210 310 110 10 - - 310 10 16919 15 115 215 315 - - 215 15 315 15 16920 20 120 220 320 120 20 - - 320 20 16921 25 125 225 325 - - - - 325 25 16922 30 130 230 330 130 30 230 30 330 30 16923 35 135 235 335 - - - - 335 35 16924 40 140 240 340 140 40 - - 340 40 16925 45 145 245 345 - - 245 45 345 45 16926 50 150 250 350 150 50 - - 350 50 16927 55 155 255 355 - - - - 355 55 16928 60 160 260 360 160 60 260 60 360 60 16929 65 165 265 365 - - - - 365 65 16930 70 170 270 370 170 70 - - 370 70 16931 75 175 275 375 - - 275 75 375 75 16932 80 180 280 380 180 80 - - 380 80 16933 85 185 285 385 - - - - 385 85 16934 90 190 290 390 190 90 290 90 390 90 16935 95 195 295 395 - - - - 395 95 16936} 16937do_execsql_test joinD-573 { 16938 SELECT t1.*, t2.*, t3.*, t4.* 16939 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16940 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16941 RIGHT JOIN t4 ON t1.d=t4.d 16942 WHERE t4.z IS NULL OR t4.z>0 16943 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16944} { 16945 5 105 205 305 - - - - 305 5 16946 10 110 210 310 110 10 - - 310 10 16947 15 115 215 315 - - 215 15 315 15 16948 20 120 220 320 120 20 - - 320 20 16949 25 125 225 325 - - - - 325 25 16950 30 130 230 330 130 30 230 30 330 30 16951 35 135 235 335 - - - - 335 35 16952 40 140 240 340 140 40 - - 340 40 16953 45 145 245 345 - - 245 45 345 45 16954 50 150 250 350 150 50 - - 350 50 16955 55 155 255 355 - - - - 355 55 16956 60 160 260 360 160 60 260 60 360 60 16957 65 165 265 365 - - - - 365 65 16958 70 170 270 370 170 70 - - 370 70 16959 75 175 275 375 - - 275 75 375 75 16960 80 180 280 380 180 80 - - 380 80 16961 85 185 285 385 - - - - 385 85 16962 90 190 290 390 190 90 290 90 390 90 16963 95 195 295 395 - - - - 395 95 16964} 16965do_execsql_test joinD-574 { 16966 SELECT t1.*, t2.*, t3.*, t4.* 16967 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 16968 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16969 RIGHT JOIN t4 ON t1.d=t4.d 16970 WHERE t2.x>0 AND t4.z>0 16971 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16972} { 16973 10 110 210 310 110 10 - - 310 10 16974 20 120 220 320 120 20 - - 320 20 16975 30 130 230 330 130 30 230 30 330 30 16976 40 140 240 340 140 40 - - 340 40 16977 50 150 250 350 150 50 - - 350 50 16978 60 160 260 360 160 60 260 60 360 60 16979 70 170 270 370 170 70 - - 370 70 16980 80 180 280 380 180 80 - - 380 80 16981 90 190 290 390 190 90 290 90 390 90 16982} 16983do_execsql_test joinD-575 { 16984 SELECT t1.*, t2.*, t3.*, t4.* 16985 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16986 FULL JOIN t3 ON t1.c=t3.c 16987 RIGHT JOIN t4 ON t1.d=t4.d 16988 WHERE t4.z>0 AND t3.y>0 16989 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16990} { 16991 15 115 215 315 - - 215 15 315 15 16992 30 130 230 330 130 30 230 30 330 30 16993 45 145 245 345 - - 245 45 345 45 16994 60 160 260 360 160 60 260 60 360 60 16995 75 175 275 375 - - 275 75 375 75 16996 90 190 290 390 190 90 290 90 390 90 16997} 16998do_execsql_test joinD-576 { 16999 SELECT t1.*, t2.*, t3.*, t4.* 17000 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 17001 FULL JOIN t3 ON t1.c=t3.c 17002 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 17003 WHERE t2.x>0 AND t3.y>0 17004 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17005} { 17006 30 130 230 330 130 30 230 30 330 30 17007 60 160 260 360 160 60 260 60 360 60 17008 90 190 290 390 190 90 290 90 390 90 17009} 17010do_execsql_test joinD-577 { 17011 SELECT t1.*, t2.*, t3.*, t4.* 17012 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 17013 FULL JOIN t3 ON t1.c=t3.c 17014 RIGHT JOIN t4 ON t1.d=t4.d 17015 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 17016 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17017} { 17018 30 130 230 330 130 30 230 30 330 30 17019 60 160 260 360 160 60 260 60 360 60 17020 90 190 290 390 190 90 290 90 390 90 17021} 17022do_execsql_test joinD-578 { 17023 SELECT t1.*, t2.*, t3.*, t4.* 17024 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 17025 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 17026 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 17027 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17028} { 17029 5 105 205 305 - - - - 305 5 17030 10 110 210 310 110 10 - - 310 10 17031 15 115 215 315 - - 215 15 315 15 17032 20 120 220 320 120 20 - - 320 20 17033 25 125 225 325 - - - - 325 25 17034 30 130 230 330 130 30 230 30 330 30 17035 35 135 235 335 - - - - 335 35 17036 40 140 240 340 140 40 - - 340 40 17037 45 145 245 345 - - 245 45 345 45 17038 50 150 250 350 150 50 - - 350 50 17039 55 155 255 355 - - - - 355 55 17040 60 160 260 360 160 60 260 60 360 60 17041 65 165 265 365 - - - - 365 65 17042 70 170 270 370 170 70 - - 370 70 17043 75 175 275 375 - - 275 75 375 75 17044 80 180 280 380 180 80 - - 380 80 17045 85 185 285 385 - - - - 385 85 17046 90 190 290 390 190 90 290 90 390 90 17047 95 195 295 395 - - - - 395 95 17048 - - - - - - - - 300 0 17049} 17050do_execsql_test joinD-579 { 17051 SELECT t1.*, t2.*, t3.*, t4.* 17052 FROM t1 LEFT JOIN t2 ON t2.x>0 17053 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 17054 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 17055 WHERE t1.b IS NOT DISTINCT FROM t2.b 17056 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17057} { 17058 10 110 210 310 110 10 - - 310 10 17059 20 120 220 320 120 20 - - 320 20 17060 30 130 230 330 130 30 230 30 330 30 17061 40 140 240 340 140 40 - - 340 40 17062 50 150 250 350 150 50 - - 350 50 17063 60 160 260 360 160 60 260 60 360 60 17064 70 170 270 370 170 70 - - 370 70 17065 80 180 280 380 180 80 - - 380 80 17066 90 190 290 390 190 90 290 90 390 90 17067 - - - - - - - - 300 0 17068} 17069do_execsql_test joinD-580 { 17070 SELECT t1.*, t2.*, t3.*, t4.* 17071 FROM t1 LEFT JOIN t2 ON t2.x>0 17072 FULL JOIN t3 ON t3.y>0 17073 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 17074 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 17075 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17076} { 17077 30 130 230 330 130 30 230 30 330 30 17078 60 160 260 360 160 60 260 60 360 60 17079 90 190 290 390 190 90 290 90 390 90 17080} 17081do_execsql_test joinD-581 { 17082 SELECT t1.*, t2.*, t3.*, t4.* 17083 FROM t1 LEFT JOIN t2 ON t2.x>0 17084 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 17085 RIGHT JOIN t4 ON t4.z>0 17086 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 17087 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17088} { 17089 10 110 210 310 110 10 - - 310 10 17090 20 120 220 320 120 20 - - 320 20 17091 30 130 230 330 130 30 230 30 330 30 17092 40 140 240 340 140 40 - - 340 40 17093 50 150 250 350 150 50 - - 350 50 17094 60 160 260 360 160 60 260 60 360 60 17095 70 170 270 370 170 70 - - 370 70 17096 80 180 280 380 180 80 - - 380 80 17097 90 190 290 390 190 90 290 90 390 90 17098} 17099do_execsql_test joinD-582 { 17100 SELECT t1.*, t2.*, t3.*, t4.* 17101 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 17102 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 17103 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 17104 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17105} { 17106 5 105 205 305 - - - - 305 5 17107 10 110 210 310 110 10 - - 310 10 17108 15 115 215 315 - - 215 15 315 15 17109 20 120 220 320 120 20 - - 320 20 17110 25 125 225 325 - - - - 325 25 17111 30 130 230 330 130 30 230 30 330 30 17112 35 135 235 335 - - - - 335 35 17113 40 140 240 340 140 40 - - 340 40 17114 45 145 245 345 - - 245 45 345 45 17115 50 150 250 350 150 50 - - 350 50 17116 55 155 255 355 - - - - 355 55 17117 60 160 260 360 160 60 260 60 360 60 17118 65 165 265 365 - - - - 365 65 17119 70 170 270 370 170 70 - - 370 70 17120 75 175 275 375 - - 275 75 375 75 17121 80 180 280 380 180 80 - - 380 80 17122 85 185 285 385 - - - - 385 85 17123 90 190 290 390 190 90 290 90 390 90 17124 95 195 295 395 - - - - 395 95 17125 - - - - - - - - 300 0 17126} 17127do_execsql_test joinD-583 { 17128 SELECT t1.*, t2.*, t3.*, t4.* 17129 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 17130 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 17131 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 17132 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17133} { 17134 0 100 200 300 - - - - - - 17135 1 101 201 301 - - - - - - 17136 2 102 202 302 102 2 - - - - 17137 3 103 203 303 - - 203 3 - - 17138 4 104 204 304 104 4 - - - - 17139 5 105 205 305 - - - - 305 5 17140 6 106 206 306 106 6 206 6 - - 17141 7 107 207 307 - - - - - - 17142 8 108 208 308 108 8 - - - - 17143 9 109 209 309 - - 209 9 - - 17144 10 110 210 310 110 10 - - 310 10 17145 11 111 211 311 - - - - - - 17146 12 112 212 312 112 12 212 12 - - 17147 13 113 213 313 - - - - - - 17148 14 114 214 314 114 14 - - - - 17149 15 115 215 315 - - 215 15 315 15 17150 16 116 216 316 116 16 - - - - 17151 17 117 217 317 - - - - - - 17152 18 118 218 318 118 18 218 18 - - 17153 19 119 219 319 - - - - - - 17154 20 120 220 320 120 20 - - 320 20 17155 21 121 221 321 - - 221 21 - - 17156 22 122 222 322 122 22 - - - - 17157 23 123 223 323 - - - - - - 17158 24 124 224 324 124 24 224 24 - - 17159 25 125 225 325 - - - - 325 25 17160 26 126 226 326 126 26 - - - - 17161 27 127 227 327 - - 227 27 - - 17162 28 128 228 328 128 28 - - - - 17163 29 129 229 329 - - - - - - 17164 30 130 230 330 130 30 230 30 330 30 17165 31 131 231 331 - - - - - - 17166 32 132 232 332 132 32 - - - - 17167 33 133 233 333 - - 233 33 - - 17168 34 134 234 334 134 34 - - - - 17169 35 135 235 335 - - - - 335 35 17170 36 136 236 336 136 36 236 36 - - 17171 37 137 237 337 - - - - - - 17172 38 138 238 338 138 38 - - - - 17173 39 139 239 339 - - 239 39 - - 17174 40 140 240 340 140 40 - - 340 40 17175 41 141 241 341 - - - - - - 17176 42 142 242 342 142 42 242 42 - - 17177 43 143 243 343 - - - - - - 17178 44 144 244 344 144 44 - - - - 17179 45 145 245 345 - - 245 45 345 45 17180 46 146 246 346 146 46 - - - - 17181 47 147 247 347 - - - - - - 17182 48 148 248 348 148 48 248 48 - - 17183 49 149 249 349 - - - - - - 17184 50 150 250 350 150 50 - - 350 50 17185 51 151 251 351 - - 251 51 - - 17186 52 152 252 352 152 52 - - - - 17187 53 153 253 353 - - - - - - 17188 54 154 254 354 154 54 254 54 - - 17189 55 155 255 355 - - - - 355 55 17190 56 156 256 356 156 56 - - - - 17191 57 157 257 357 - - 257 57 - - 17192 58 158 258 358 158 58 - - - - 17193 59 159 259 359 - - - - - - 17194 60 160 260 360 160 60 260 60 360 60 17195 61 161 261 361 - - - - - - 17196 62 162 262 362 162 62 - - - - 17197 63 163 263 363 - - 263 63 - - 17198 64 164 264 364 164 64 - - - - 17199 65 165 265 365 - - - - 365 65 17200 66 166 266 366 166 66 266 66 - - 17201 67 167 267 367 - - - - - - 17202 68 168 268 368 168 68 - - - - 17203 69 169 269 369 - - 269 69 - - 17204 70 170 270 370 170 70 - - 370 70 17205 71 171 271 371 - - - - - - 17206 72 172 272 372 172 72 272 72 - - 17207 73 173 273 373 - - - - - - 17208 74 174 274 374 174 74 - - - - 17209 75 175 275 375 - - 275 75 375 75 17210 76 176 276 376 176 76 - - - - 17211 77 177 277 377 - - - - - - 17212 78 178 278 378 178 78 278 78 - - 17213 79 179 279 379 - - - - - - 17214 80 180 280 380 180 80 - - 380 80 17215 81 181 281 381 - - 281 81 - - 17216 82 182 282 382 182 82 - - - - 17217 83 183 283 383 - - - - - - 17218 84 184 284 384 184 84 284 84 - - 17219 85 185 285 385 - - - - 385 85 17220 86 186 286 386 186 86 - - - - 17221 87 187 287 387 - - 287 87 - - 17222 88 188 288 388 188 88 - - - - 17223 89 189 289 389 - - - - - - 17224 90 190 290 390 190 90 290 90 390 90 17225 91 191 291 391 - - - - - - 17226 92 192 292 392 192 92 - - - - 17227 93 193 293 393 - - 293 93 - - 17228 94 194 294 394 194 94 - - - - 17229 95 195 295 395 - - - - 395 95 17230 96 - 296 396 - - - - - - 17231 97 197 - 397 - - - - - - 17232 98 198 298 - - - - - - - 17233 99 - - - - - - - - - 17234 - - - - - - 200 0 - - 17235 - - - - - - - - 300 0 17236} 17237do_execsql_test joinD-584 { 17238 SELECT t1.*, t2.*, t3.*, t4.* 17239 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 17240 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 17241 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 17242 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17243} { 17244 0 100 200 300 - - - - - - 17245 1 101 201 301 - - - - - - 17246 2 102 202 302 102 2 - - - - 17247 3 103 203 303 - - 203 3 - - 17248 4 104 204 304 104 4 - - - - 17249 5 105 205 305 - - - - 305 5 17250 6 106 206 306 106 6 206 6 - - 17251 7 107 207 307 - - - - - - 17252 8 108 208 308 108 8 - - - - 17253 9 109 209 309 - - 209 9 - - 17254 10 110 210 310 110 10 - - 310 10 17255 11 111 211 311 - - - - - - 17256 12 112 212 312 112 12 212 12 - - 17257 13 113 213 313 - - - - - - 17258 14 114 214 314 114 14 - - - - 17259 15 115 215 315 - - 215 15 315 15 17260 16 116 216 316 116 16 - - - - 17261 17 117 217 317 - - - - - - 17262 18 118 218 318 118 18 218 18 - - 17263 19 119 219 319 - - - - - - 17264 20 120 220 320 120 20 - - 320 20 17265 21 121 221 321 - - 221 21 - - 17266 22 122 222 322 122 22 - - - - 17267 23 123 223 323 - - - - - - 17268 24 124 224 324 124 24 224 24 - - 17269 25 125 225 325 - - - - 325 25 17270 26 126 226 326 126 26 - - - - 17271 27 127 227 327 - - 227 27 - - 17272 28 128 228 328 128 28 - - - - 17273 29 129 229 329 - - - - - - 17274 30 130 230 330 130 30 230 30 330 30 17275 31 131 231 331 - - - - - - 17276 32 132 232 332 132 32 - - - - 17277 33 133 233 333 - - 233 33 - - 17278 34 134 234 334 134 34 - - - - 17279 35 135 235 335 - - - - 335 35 17280 36 136 236 336 136 36 236 36 - - 17281 37 137 237 337 - - - - - - 17282 38 138 238 338 138 38 - - - - 17283 39 139 239 339 - - 239 39 - - 17284 40 140 240 340 140 40 - - 340 40 17285 41 141 241 341 - - - - - - 17286 42 142 242 342 142 42 242 42 - - 17287 43 143 243 343 - - - - - - 17288 44 144 244 344 144 44 - - - - 17289 45 145 245 345 - - 245 45 345 45 17290 46 146 246 346 146 46 - - - - 17291 47 147 247 347 - - - - - - 17292 48 148 248 348 148 48 248 48 - - 17293 49 149 249 349 - - - - - - 17294 50 150 250 350 150 50 - - 350 50 17295 51 151 251 351 - - 251 51 - - 17296 52 152 252 352 152 52 - - - - 17297 53 153 253 353 - - - - - - 17298 54 154 254 354 154 54 254 54 - - 17299 55 155 255 355 - - - - 355 55 17300 56 156 256 356 156 56 - - - - 17301 57 157 257 357 - - 257 57 - - 17302 58 158 258 358 158 58 - - - - 17303 59 159 259 359 - - - - - - 17304 60 160 260 360 160 60 260 60 360 60 17305 61 161 261 361 - - - - - - 17306 62 162 262 362 162 62 - - - - 17307 63 163 263 363 - - 263 63 - - 17308 64 164 264 364 164 64 - - - - 17309 65 165 265 365 - - - - 365 65 17310 66 166 266 366 166 66 266 66 - - 17311 67 167 267 367 - - - - - - 17312 68 168 268 368 168 68 - - - - 17313 69 169 269 369 - - 269 69 - - 17314 70 170 270 370 170 70 - - 370 70 17315 71 171 271 371 - - - - - - 17316 72 172 272 372 172 72 272 72 - - 17317 73 173 273 373 - - - - - - 17318 74 174 274 374 174 74 - - - - 17319 75 175 275 375 - - 275 75 375 75 17320 76 176 276 376 176 76 - - - - 17321 77 177 277 377 - - - - - - 17322 78 178 278 378 178 78 278 78 - - 17323 79 179 279 379 - - - - - - 17324 80 180 280 380 180 80 - - 380 80 17325 81 181 281 381 - - 281 81 - - 17326 82 182 282 382 182 82 - - - - 17327 83 183 283 383 - - - - - - 17328 84 184 284 384 184 84 284 84 - - 17329 85 185 285 385 - - - - 385 85 17330 86 186 286 386 186 86 - - - - 17331 87 187 287 387 - - 287 87 - - 17332 88 188 288 388 188 88 - - - - 17333 89 189 289 389 - - - - - - 17334 90 190 290 390 190 90 290 90 390 90 17335 91 191 291 391 - - - - - - 17336 92 192 292 392 192 92 - - - - 17337 93 193 293 393 - - 293 93 - - 17338 94 194 294 394 194 94 - - - - 17339 95 195 295 395 - - - - 395 95 17340 96 - 296 396 - - - - - - 17341 97 197 - 397 - - - - - - 17342 98 198 298 - - - - - - - 17343 99 - - - - - - - - - 17344 - - - - - - 200 0 - - 17345 - - - - - - - - 300 0 17346} 17347do_execsql_test joinD-585 { 17348 SELECT t1.*, t2.*, t3.*, t4.* 17349 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 17350 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 17351 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 17352 WHERE t2.x>0 17353 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17354} { 17355 2 102 202 302 102 2 - - - - 17356 4 104 204 304 104 4 - - - - 17357 6 106 206 306 106 6 206 6 - - 17358 8 108 208 308 108 8 - - - - 17359 10 110 210 310 110 10 - - 310 10 17360 12 112 212 312 112 12 212 12 - - 17361 14 114 214 314 114 14 - - - - 17362 16 116 216 316 116 16 - - - - 17363 18 118 218 318 118 18 218 18 - - 17364 20 120 220 320 120 20 - - 320 20 17365 22 122 222 322 122 22 - - - - 17366 24 124 224 324 124 24 224 24 - - 17367 26 126 226 326 126 26 - - - - 17368 28 128 228 328 128 28 - - - - 17369 30 130 230 330 130 30 230 30 330 30 17370 32 132 232 332 132 32 - - - - 17371 34 134 234 334 134 34 - - - - 17372 36 136 236 336 136 36 236 36 - - 17373 38 138 238 338 138 38 - - - - 17374 40 140 240 340 140 40 - - 340 40 17375 42 142 242 342 142 42 242 42 - - 17376 44 144 244 344 144 44 - - - - 17377 46 146 246 346 146 46 - - - - 17378 48 148 248 348 148 48 248 48 - - 17379 50 150 250 350 150 50 - - 350 50 17380 52 152 252 352 152 52 - - - - 17381 54 154 254 354 154 54 254 54 - - 17382 56 156 256 356 156 56 - - - - 17383 58 158 258 358 158 58 - - - - 17384 60 160 260 360 160 60 260 60 360 60 17385 62 162 262 362 162 62 - - - - 17386 64 164 264 364 164 64 - - - - 17387 66 166 266 366 166 66 266 66 - - 17388 68 168 268 368 168 68 - - - - 17389 70 170 270 370 170 70 - - 370 70 17390 72 172 272 372 172 72 272 72 - - 17391 74 174 274 374 174 74 - - - - 17392 76 176 276 376 176 76 - - - - 17393 78 178 278 378 178 78 278 78 - - 17394 80 180 280 380 180 80 - - 380 80 17395 82 182 282 382 182 82 - - - - 17396 84 184 284 384 184 84 284 84 - - 17397 86 186 286 386 186 86 - - - - 17398 88 188 288 388 188 88 - - - - 17399 90 190 290 390 190 90 290 90 390 90 17400 92 192 292 392 192 92 - - - - 17401 94 194 294 394 194 94 - - - - 17402} 17403do_execsql_test joinD-586 { 17404 SELECT t1.*, t2.*, t3.*, t4.* 17405 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 17406 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 17407 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 17408 WHERE (t2.x>0 OR t2.x IS NULL) 17409 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17410} { 17411 1 101 201 301 - - - - - - 17412 2 102 202 302 102 2 - - - - 17413 3 103 203 303 - - 203 3 - - 17414 4 104 204 304 104 4 - - - - 17415 5 105 205 305 - - - - 305 5 17416 6 106 206 306 106 6 206 6 - - 17417 7 107 207 307 - - - - - - 17418 8 108 208 308 108 8 - - - - 17419 9 109 209 309 - - 209 9 - - 17420 10 110 210 310 110 10 - - 310 10 17421 11 111 211 311 - - - - - - 17422 12 112 212 312 112 12 212 12 - - 17423 13 113 213 313 - - - - - - 17424 14 114 214 314 114 14 - - - - 17425 15 115 215 315 - - 215 15 315 15 17426 16 116 216 316 116 16 - - - - 17427 17 117 217 317 - - - - - - 17428 18 118 218 318 118 18 218 18 - - 17429 19 119 219 319 - - - - - - 17430 20 120 220 320 120 20 - - 320 20 17431 21 121 221 321 - - 221 21 - - 17432 22 122 222 322 122 22 - - - - 17433 23 123 223 323 - - - - - - 17434 24 124 224 324 124 24 224 24 - - 17435 25 125 225 325 - - - - 325 25 17436 26 126 226 326 126 26 - - - - 17437 27 127 227 327 - - 227 27 - - 17438 28 128 228 328 128 28 - - - - 17439 29 129 229 329 - - - - - - 17440 30 130 230 330 130 30 230 30 330 30 17441 31 131 231 331 - - - - - - 17442 32 132 232 332 132 32 - - - - 17443 33 133 233 333 - - 233 33 - - 17444 34 134 234 334 134 34 - - - - 17445 35 135 235 335 - - - - 335 35 17446 36 136 236 336 136 36 236 36 - - 17447 37 137 237 337 - - - - - - 17448 38 138 238 338 138 38 - - - - 17449 39 139 239 339 - - 239 39 - - 17450 40 140 240 340 140 40 - - 340 40 17451 41 141 241 341 - - - - - - 17452 42 142 242 342 142 42 242 42 - - 17453 43 143 243 343 - - - - - - 17454 44 144 244 344 144 44 - - - - 17455 45 145 245 345 - - 245 45 345 45 17456 46 146 246 346 146 46 - - - - 17457 47 147 247 347 - - - - - - 17458 48 148 248 348 148 48 248 48 - - 17459 49 149 249 349 - - - - - - 17460 50 150 250 350 150 50 - - 350 50 17461 51 151 251 351 - - 251 51 - - 17462 52 152 252 352 152 52 - - - - 17463 53 153 253 353 - - - - - - 17464 54 154 254 354 154 54 254 54 - - 17465 55 155 255 355 - - - - 355 55 17466 56 156 256 356 156 56 - - - - 17467 57 157 257 357 - - 257 57 - - 17468 58 158 258 358 158 58 - - - - 17469 59 159 259 359 - - - - - - 17470 60 160 260 360 160 60 260 60 360 60 17471 61 161 261 361 - - - - - - 17472 62 162 262 362 162 62 - - - - 17473 63 163 263 363 - - 263 63 - - 17474 64 164 264 364 164 64 - - - - 17475 65 165 265 365 - - - - 365 65 17476 66 166 266 366 166 66 266 66 - - 17477 67 167 267 367 - - - - - - 17478 68 168 268 368 168 68 - - - - 17479 69 169 269 369 - - 269 69 - - 17480 70 170 270 370 170 70 - - 370 70 17481 71 171 271 371 - - - - - - 17482 72 172 272 372 172 72 272 72 - - 17483 73 173 273 373 - - - - - - 17484 74 174 274 374 174 74 - - - - 17485 75 175 275 375 - - 275 75 375 75 17486 76 176 276 376 176 76 - - - - 17487 77 177 277 377 - - - - - - 17488 78 178 278 378 178 78 278 78 - - 17489 79 179 279 379 - - - - - - 17490 80 180 280 380 180 80 - - 380 80 17491 81 181 281 381 - - 281 81 - - 17492 82 182 282 382 182 82 - - - - 17493 83 183 283 383 - - - - - - 17494 84 184 284 384 184 84 284 84 - - 17495 85 185 285 385 - - - - 385 85 17496 86 186 286 386 186 86 - - - - 17497 87 187 287 387 - - 287 87 - - 17498 88 188 288 388 188 88 - - - - 17499 89 189 289 389 - - - - - - 17500 90 190 290 390 190 90 290 90 390 90 17501 91 191 291 391 - - - - - - 17502 92 192 292 392 192 92 - - - - 17503 93 193 293 393 - - 293 93 - - 17504 94 194 294 394 194 94 - - - - 17505 95 195 295 395 - - - - 395 95 17506 96 - 296 396 - - - - - - 17507 97 197 - 397 - - - - - - 17508 98 198 298 - - - - - - - 17509 99 - - - - - - - - - 17510 - - - - - - 200 0 - - 17511 - - - - - - - - 300 0 17512} 17513do_execsql_test joinD-587 { 17514 SELECT t1.*, t2.*, t3.*, t4.* 17515 FROM t1 LEFT JOIN t2 ON true 17516 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 17517 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 17518 WHERE t1.b=t2.b AND t2.x>0 17519 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17520} { 17521 2 102 202 302 102 2 - - - - 17522 4 104 204 304 104 4 - - - - 17523 6 106 206 306 106 6 206 6 - - 17524 8 108 208 308 108 8 - - - - 17525 10 110 210 310 110 10 - - 310 10 17526 12 112 212 312 112 12 212 12 - - 17527 14 114 214 314 114 14 - - - - 17528 16 116 216 316 116 16 - - - - 17529 18 118 218 318 118 18 218 18 - - 17530 20 120 220 320 120 20 - - 320 20 17531 22 122 222 322 122 22 - - - - 17532 24 124 224 324 124 24 224 24 - - 17533 26 126 226 326 126 26 - - - - 17534 28 128 228 328 128 28 - - - - 17535 30 130 230 330 130 30 230 30 330 30 17536 32 132 232 332 132 32 - - - - 17537 34 134 234 334 134 34 - - - - 17538 36 136 236 336 136 36 236 36 - - 17539 38 138 238 338 138 38 - - - - 17540 40 140 240 340 140 40 - - 340 40 17541 42 142 242 342 142 42 242 42 - - 17542 44 144 244 344 144 44 - - - - 17543 46 146 246 346 146 46 - - - - 17544 48 148 248 348 148 48 248 48 - - 17545 50 150 250 350 150 50 - - 350 50 17546 52 152 252 352 152 52 - - - - 17547 54 154 254 354 154 54 254 54 - - 17548 56 156 256 356 156 56 - - - - 17549 58 158 258 358 158 58 - - - - 17550 60 160 260 360 160 60 260 60 360 60 17551 62 162 262 362 162 62 - - - - 17552 64 164 264 364 164 64 - - - - 17553 66 166 266 366 166 66 266 66 - - 17554 68 168 268 368 168 68 - - - - 17555 70 170 270 370 170 70 - - 370 70 17556 72 172 272 372 172 72 272 72 - - 17557 74 174 274 374 174 74 - - - - 17558 76 176 276 376 176 76 - - - - 17559 78 178 278 378 178 78 278 78 - - 17560 80 180 280 380 180 80 - - 380 80 17561 82 182 282 382 182 82 - - - - 17562 84 184 284 384 184 84 284 84 - - 17563 86 186 286 386 186 86 - - - - 17564 88 188 288 388 188 88 - - - - 17565 90 190 290 390 190 90 290 90 390 90 17566 92 192 292 392 192 92 - - - - 17567 94 194 294 394 194 94 - - - - 17568} 17569do_execsql_test joinD-588 { 17570 SELECT t1.*, t2.*, t3.*, t4.* 17571 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 17572 FULL JOIN t3 ON t1.c=t3.c 17573 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 17574 WHERE t3.y>0 17575 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17576} { 17577 3 103 203 303 - - 203 3 - - 17578 6 106 206 306 106 6 206 6 - - 17579 9 109 209 309 - - 209 9 - - 17580 12 112 212 312 112 12 212 12 - - 17581 15 115 215 315 - - 215 15 315 15 17582 18 118 218 318 118 18 218 18 - - 17583 21 121 221 321 - - 221 21 - - 17584 24 124 224 324 124 24 224 24 - - 17585 27 127 227 327 - - 227 27 - - 17586 30 130 230 330 130 30 230 30 330 30 17587 33 133 233 333 - - 233 33 - - 17588 36 136 236 336 136 36 236 36 - - 17589 39 139 239 339 - - 239 39 - - 17590 42 142 242 342 142 42 242 42 - - 17591 45 145 245 345 - - 245 45 345 45 17592 48 148 248 348 148 48 248 48 - - 17593 51 151 251 351 - - 251 51 - - 17594 54 154 254 354 154 54 254 54 - - 17595 57 157 257 357 - - 257 57 - - 17596 60 160 260 360 160 60 260 60 360 60 17597 63 163 263 363 - - 263 63 - - 17598 66 166 266 366 166 66 266 66 - - 17599 69 169 269 369 - - 269 69 - - 17600 72 172 272 372 172 72 272 72 - - 17601 75 175 275 375 - - 275 75 375 75 17602 78 178 278 378 178 78 278 78 - - 17603 81 181 281 381 - - 281 81 - - 17604 84 184 284 384 184 84 284 84 - - 17605 87 187 287 387 - - 287 87 - - 17606 90 190 290 390 190 90 290 90 390 90 17607 93 193 293 393 - - 293 93 - - 17608} 17609do_execsql_test joinD-589 { 17610 SELECT t1.*, t2.*, t3.*, t4.* 17611 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 17612 FULL JOIN t3 ON t1.c=t3.c 17613 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 17614 WHERE t3.y>0 OR t3.y IS NULL 17615 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17616} { 17617 1 101 201 301 - - - - - - 17618 2 102 202 302 102 2 - - - - 17619 3 103 203 303 - - 203 3 - - 17620 4 104 204 304 104 4 - - - - 17621 5 105 205 305 - - - - 305 5 17622 6 106 206 306 106 6 206 6 - - 17623 7 107 207 307 - - - - - - 17624 8 108 208 308 108 8 - - - - 17625 9 109 209 309 - - 209 9 - - 17626 10 110 210 310 110 10 - - 310 10 17627 11 111 211 311 - - - - - - 17628 12 112 212 312 112 12 212 12 - - 17629 13 113 213 313 - - - - - - 17630 14 114 214 314 114 14 - - - - 17631 15 115 215 315 - - 215 15 315 15 17632 16 116 216 316 116 16 - - - - 17633 17 117 217 317 - - - - - - 17634 18 118 218 318 118 18 218 18 - - 17635 19 119 219 319 - - - - - - 17636 20 120 220 320 120 20 - - 320 20 17637 21 121 221 321 - - 221 21 - - 17638 22 122 222 322 122 22 - - - - 17639 23 123 223 323 - - - - - - 17640 24 124 224 324 124 24 224 24 - - 17641 25 125 225 325 - - - - 325 25 17642 26 126 226 326 126 26 - - - - 17643 27 127 227 327 - - 227 27 - - 17644 28 128 228 328 128 28 - - - - 17645 29 129 229 329 - - - - - - 17646 30 130 230 330 130 30 230 30 330 30 17647 31 131 231 331 - - - - - - 17648 32 132 232 332 132 32 - - - - 17649 33 133 233 333 - - 233 33 - - 17650 34 134 234 334 134 34 - - - - 17651 35 135 235 335 - - - - 335 35 17652 36 136 236 336 136 36 236 36 - - 17653 37 137 237 337 - - - - - - 17654 38 138 238 338 138 38 - - - - 17655 39 139 239 339 - - 239 39 - - 17656 40 140 240 340 140 40 - - 340 40 17657 41 141 241 341 - - - - - - 17658 42 142 242 342 142 42 242 42 - - 17659 43 143 243 343 - - - - - - 17660 44 144 244 344 144 44 - - - - 17661 45 145 245 345 - - 245 45 345 45 17662 46 146 246 346 146 46 - - - - 17663 47 147 247 347 - - - - - - 17664 48 148 248 348 148 48 248 48 - - 17665 49 149 249 349 - - - - - - 17666 50 150 250 350 150 50 - - 350 50 17667 51 151 251 351 - - 251 51 - - 17668 52 152 252 352 152 52 - - - - 17669 53 153 253 353 - - - - - - 17670 54 154 254 354 154 54 254 54 - - 17671 55 155 255 355 - - - - 355 55 17672 56 156 256 356 156 56 - - - - 17673 57 157 257 357 - - 257 57 - - 17674 58 158 258 358 158 58 - - - - 17675 59 159 259 359 - - - - - - 17676 60 160 260 360 160 60 260 60 360 60 17677 61 161 261 361 - - - - - - 17678 62 162 262 362 162 62 - - - - 17679 63 163 263 363 - - 263 63 - - 17680 64 164 264 364 164 64 - - - - 17681 65 165 265 365 - - - - 365 65 17682 66 166 266 366 166 66 266 66 - - 17683 67 167 267 367 - - - - - - 17684 68 168 268 368 168 68 - - - - 17685 69 169 269 369 - - 269 69 - - 17686 70 170 270 370 170 70 - - 370 70 17687 71 171 271 371 - - - - - - 17688 72 172 272 372 172 72 272 72 - - 17689 73 173 273 373 - - - - - - 17690 74 174 274 374 174 74 - - - - 17691 75 175 275 375 - - 275 75 375 75 17692 76 176 276 376 176 76 - - - - 17693 77 177 277 377 - - - - - - 17694 78 178 278 378 178 78 278 78 - - 17695 79 179 279 379 - - - - - - 17696 80 180 280 380 180 80 - - 380 80 17697 81 181 281 381 - - 281 81 - - 17698 82 182 282 382 182 82 - - - - 17699 83 183 283 383 - - - - - - 17700 84 184 284 384 184 84 284 84 - - 17701 85 185 285 385 - - - - 385 85 17702 86 186 286 386 186 86 - - - - 17703 87 187 287 387 - - 287 87 - - 17704 88 188 288 388 188 88 - - - - 17705 89 189 289 389 - - - - - - 17706 90 190 290 390 190 90 290 90 390 90 17707 91 191 291 391 - - - - - - 17708 92 192 292 392 192 92 - - - - 17709 93 193 293 393 - - 293 93 - - 17710 94 194 294 394 194 94 - - - - 17711 95 195 295 395 - - - - 395 95 17712 96 - 296 396 - - - - - - 17713 97 197 - 397 - - - - - - 17714 98 198 298 - - - - - - - 17715 99 - - - - - - - - - 17716 - - - - - - - - 300 0 17717} 17718do_execsql_test joinD-590 { 17719 SELECT t1.*, t2.*, t3.*, t4.* 17720 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 17721 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 17722 FULL JOIN t4 ON t1.d=t4.d 17723 WHERE t4.z>0 17724 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17725} { 17726 5 105 205 305 - - - - 305 5 17727 10 110 210 310 110 10 - - 310 10 17728 15 115 215 315 - - 215 15 315 15 17729 20 120 220 320 120 20 - - 320 20 17730 25 125 225 325 - - - - 325 25 17731 30 130 230 330 130 30 230 30 330 30 17732 35 135 235 335 - - - - 335 35 17733 40 140 240 340 140 40 - - 340 40 17734 45 145 245 345 - - 245 45 345 45 17735 50 150 250 350 150 50 - - 350 50 17736 55 155 255 355 - - - - 355 55 17737 60 160 260 360 160 60 260 60 360 60 17738 65 165 265 365 - - - - 365 65 17739 70 170 270 370 170 70 - - 370 70 17740 75 175 275 375 - - 275 75 375 75 17741 80 180 280 380 180 80 - - 380 80 17742 85 185 285 385 - - - - 385 85 17743 90 190 290 390 190 90 290 90 390 90 17744 95 195 295 395 - - - - 395 95 17745} 17746do_execsql_test joinD-591 { 17747 SELECT t1.*, t2.*, t3.*, t4.* 17748 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 17749 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 17750 FULL JOIN t4 ON t1.d=t4.d 17751 WHERE t4.z IS NULL OR t4.z>0 17752 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17753} { 17754 1 101 201 301 - - - - - - 17755 2 102 202 302 102 2 - - - - 17756 3 103 203 303 - - 203 3 - - 17757 4 104 204 304 104 4 - - - - 17758 5 105 205 305 - - - - 305 5 17759 6 106 206 306 106 6 206 6 - - 17760 7 107 207 307 - - - - - - 17761 8 108 208 308 108 8 - - - - 17762 9 109 209 309 - - 209 9 - - 17763 10 110 210 310 110 10 - - 310 10 17764 11 111 211 311 - - - - - - 17765 12 112 212 312 112 12 212 12 - - 17766 13 113 213 313 - - - - - - 17767 14 114 214 314 114 14 - - - - 17768 15 115 215 315 - - 215 15 315 15 17769 16 116 216 316 116 16 - - - - 17770 17 117 217 317 - - - - - - 17771 18 118 218 318 118 18 218 18 - - 17772 19 119 219 319 - - - - - - 17773 20 120 220 320 120 20 - - 320 20 17774 21 121 221 321 - - 221 21 - - 17775 22 122 222 322 122 22 - - - - 17776 23 123 223 323 - - - - - - 17777 24 124 224 324 124 24 224 24 - - 17778 25 125 225 325 - - - - 325 25 17779 26 126 226 326 126 26 - - - - 17780 27 127 227 327 - - 227 27 - - 17781 28 128 228 328 128 28 - - - - 17782 29 129 229 329 - - - - - - 17783 30 130 230 330 130 30 230 30 330 30 17784 31 131 231 331 - - - - - - 17785 32 132 232 332 132 32 - - - - 17786 33 133 233 333 - - 233 33 - - 17787 34 134 234 334 134 34 - - - - 17788 35 135 235 335 - - - - 335 35 17789 36 136 236 336 136 36 236 36 - - 17790 37 137 237 337 - - - - - - 17791 38 138 238 338 138 38 - - - - 17792 39 139 239 339 - - 239 39 - - 17793 40 140 240 340 140 40 - - 340 40 17794 41 141 241 341 - - - - - - 17795 42 142 242 342 142 42 242 42 - - 17796 43 143 243 343 - - - - - - 17797 44 144 244 344 144 44 - - - - 17798 45 145 245 345 - - 245 45 345 45 17799 46 146 246 346 146 46 - - - - 17800 47 147 247 347 - - - - - - 17801 48 148 248 348 148 48 248 48 - - 17802 49 149 249 349 - - - - - - 17803 50 150 250 350 150 50 - - 350 50 17804 51 151 251 351 - - 251 51 - - 17805 52 152 252 352 152 52 - - - - 17806 53 153 253 353 - - - - - - 17807 54 154 254 354 154 54 254 54 - - 17808 55 155 255 355 - - - - 355 55 17809 56 156 256 356 156 56 - - - - 17810 57 157 257 357 - - 257 57 - - 17811 58 158 258 358 158 58 - - - - 17812 59 159 259 359 - - - - - - 17813 60 160 260 360 160 60 260 60 360 60 17814 61 161 261 361 - - - - - - 17815 62 162 262 362 162 62 - - - - 17816 63 163 263 363 - - 263 63 - - 17817 64 164 264 364 164 64 - - - - 17818 65 165 265 365 - - - - 365 65 17819 66 166 266 366 166 66 266 66 - - 17820 67 167 267 367 - - - - - - 17821 68 168 268 368 168 68 - - - - 17822 69 169 269 369 - - 269 69 - - 17823 70 170 270 370 170 70 - - 370 70 17824 71 171 271 371 - - - - - - 17825 72 172 272 372 172 72 272 72 - - 17826 73 173 273 373 - - - - - - 17827 74 174 274 374 174 74 - - - - 17828 75 175 275 375 - - 275 75 375 75 17829 76 176 276 376 176 76 - - - - 17830 77 177 277 377 - - - - - - 17831 78 178 278 378 178 78 278 78 - - 17832 79 179 279 379 - - - - - - 17833 80 180 280 380 180 80 - - 380 80 17834 81 181 281 381 - - 281 81 - - 17835 82 182 282 382 182 82 - - - - 17836 83 183 283 383 - - - - - - 17837 84 184 284 384 184 84 284 84 - - 17838 85 185 285 385 - - - - 385 85 17839 86 186 286 386 186 86 - - - - 17840 87 187 287 387 - - 287 87 - - 17841 88 188 288 388 188 88 - - - - 17842 89 189 289 389 - - - - - - 17843 90 190 290 390 190 90 290 90 390 90 17844 91 191 291 391 - - - - - - 17845 92 192 292 392 192 92 - - - - 17846 93 193 293 393 - - 293 93 - - 17847 94 194 294 394 194 94 - - - - 17848 95 195 295 395 - - - - 395 95 17849 96 - 296 396 - - - - - - 17850 97 197 - 397 - - - - - - 17851 98 198 298 - - - - - - - 17852 99 - - - - - - - - - 17853 - - - - - - 200 0 - - 17854} 17855do_execsql_test joinD-592 { 17856 SELECT t1.*, t2.*, t3.*, t4.* 17857 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 17858 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 17859 FULL JOIN t4 ON t1.d=t4.d 17860 WHERE t2.x>0 AND t4.z>0 17861 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17862} { 17863 10 110 210 310 110 10 - - 310 10 17864 20 120 220 320 120 20 - - 320 20 17865 30 130 230 330 130 30 230 30 330 30 17866 40 140 240 340 140 40 - - 340 40 17867 50 150 250 350 150 50 - - 350 50 17868 60 160 260 360 160 60 260 60 360 60 17869 70 170 270 370 170 70 - - 370 70 17870 80 180 280 380 180 80 - - 380 80 17871 90 190 290 390 190 90 290 90 390 90 17872} 17873do_execsql_test joinD-593 { 17874 SELECT t1.*, t2.*, t3.*, t4.* 17875 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 17876 FULL JOIN t3 ON t1.c=t3.c 17877 FULL JOIN t4 ON t1.d=t4.d 17878 WHERE t4.z>0 AND t3.y>0 17879 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17880} { 17881 15 115 215 315 - - 215 15 315 15 17882 30 130 230 330 130 30 230 30 330 30 17883 45 145 245 345 - - 245 45 345 45 17884 60 160 260 360 160 60 260 60 360 60 17885 75 175 275 375 - - 275 75 375 75 17886 90 190 290 390 190 90 290 90 390 90 17887} 17888do_execsql_test joinD-594 { 17889 SELECT t1.*, t2.*, t3.*, t4.* 17890 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 17891 FULL JOIN t3 ON t1.c=t3.c 17892 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 17893 WHERE t2.x>0 AND t3.y>0 17894 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17895} { 17896 6 106 206 306 106 6 206 6 - - 17897 12 112 212 312 112 12 212 12 - - 17898 18 118 218 318 118 18 218 18 - - 17899 24 124 224 324 124 24 224 24 - - 17900 30 130 230 330 130 30 230 30 330 30 17901 36 136 236 336 136 36 236 36 - - 17902 42 142 242 342 142 42 242 42 - - 17903 48 148 248 348 148 48 248 48 - - 17904 54 154 254 354 154 54 254 54 - - 17905 60 160 260 360 160 60 260 60 360 60 17906 66 166 266 366 166 66 266 66 - - 17907 72 172 272 372 172 72 272 72 - - 17908 78 178 278 378 178 78 278 78 - - 17909 84 184 284 384 184 84 284 84 - - 17910 90 190 290 390 190 90 290 90 390 90 17911} 17912do_execsql_test joinD-595 { 17913 SELECT t1.*, t2.*, t3.*, t4.* 17914 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 17915 FULL JOIN t3 ON t1.c=t3.c 17916 FULL JOIN t4 ON t1.d=t4.d 17917 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 17918 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17919} { 17920 30 130 230 330 130 30 230 30 330 30 17921 60 160 260 360 160 60 260 60 360 60 17922 90 190 290 390 190 90 290 90 390 90 17923} 17924do_execsql_test joinD-596 { 17925 SELECT t1.*, t2.*, t3.*, t4.* 17926 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 17927 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 17928 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 17929 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17930} { 17931 0 100 200 300 - - - - - - 17932 1 101 201 301 - - - - - - 17933 2 102 202 302 102 2 - - - - 17934 3 103 203 303 - - 203 3 - - 17935 4 104 204 304 104 4 - - - - 17936 5 105 205 305 - - - - 305 5 17937 6 106 206 306 106 6 206 6 - - 17938 7 107 207 307 - - - - - - 17939 8 108 208 308 108 8 - - - - 17940 9 109 209 309 - - 209 9 - - 17941 10 110 210 310 110 10 - - 310 10 17942 11 111 211 311 - - - - - - 17943 12 112 212 312 112 12 212 12 - - 17944 13 113 213 313 - - - - - - 17945 14 114 214 314 114 14 - - - - 17946 15 115 215 315 - - 215 15 315 15 17947 16 116 216 316 116 16 - - - - 17948 17 117 217 317 - - - - - - 17949 18 118 218 318 118 18 218 18 - - 17950 19 119 219 319 - - - - - - 17951 20 120 220 320 120 20 - - 320 20 17952 21 121 221 321 - - 221 21 - - 17953 22 122 222 322 122 22 - - - - 17954 23 123 223 323 - - - - - - 17955 24 124 224 324 124 24 224 24 - - 17956 25 125 225 325 - - - - 325 25 17957 26 126 226 326 126 26 - - - - 17958 27 127 227 327 - - 227 27 - - 17959 28 128 228 328 128 28 - - - - 17960 29 129 229 329 - - - - - - 17961 30 130 230 330 130 30 230 30 330 30 17962 31 131 231 331 - - - - - - 17963 32 132 232 332 132 32 - - - - 17964 33 133 233 333 - - 233 33 - - 17965 34 134 234 334 134 34 - - - - 17966 35 135 235 335 - - - - 335 35 17967 36 136 236 336 136 36 236 36 - - 17968 37 137 237 337 - - - - - - 17969 38 138 238 338 138 38 - - - - 17970 39 139 239 339 - - 239 39 - - 17971 40 140 240 340 140 40 - - 340 40 17972 41 141 241 341 - - - - - - 17973 42 142 242 342 142 42 242 42 - - 17974 43 143 243 343 - - - - - - 17975 44 144 244 344 144 44 - - - - 17976 45 145 245 345 - - 245 45 345 45 17977 46 146 246 346 146 46 - - - - 17978 47 147 247 347 - - - - - - 17979 48 148 248 348 148 48 248 48 - - 17980 49 149 249 349 - - - - - - 17981 50 150 250 350 150 50 - - 350 50 17982 51 151 251 351 - - 251 51 - - 17983 52 152 252 352 152 52 - - - - 17984 53 153 253 353 - - - - - - 17985 54 154 254 354 154 54 254 54 - - 17986 55 155 255 355 - - - - 355 55 17987 56 156 256 356 156 56 - - - - 17988 57 157 257 357 - - 257 57 - - 17989 58 158 258 358 158 58 - - - - 17990 59 159 259 359 - - - - - - 17991 60 160 260 360 160 60 260 60 360 60 17992 61 161 261 361 - - - - - - 17993 62 162 262 362 162 62 - - - - 17994 63 163 263 363 - - 263 63 - - 17995 64 164 264 364 164 64 - - - - 17996 65 165 265 365 - - - - 365 65 17997 66 166 266 366 166 66 266 66 - - 17998 67 167 267 367 - - - - - - 17999 68 168 268 368 168 68 - - - - 18000 69 169 269 369 - - 269 69 - - 18001 70 170 270 370 170 70 - - 370 70 18002 71 171 271 371 - - - - - - 18003 72 172 272 372 172 72 272 72 - - 18004 73 173 273 373 - - - - - - 18005 74 174 274 374 174 74 - - - - 18006 75 175 275 375 - - 275 75 375 75 18007 76 176 276 376 176 76 - - - - 18008 77 177 277 377 - - - - - - 18009 78 178 278 378 178 78 278 78 - - 18010 79 179 279 379 - - - - - - 18011 80 180 280 380 180 80 - - 380 80 18012 81 181 281 381 - - 281 81 - - 18013 82 182 282 382 182 82 - - - - 18014 83 183 283 383 - - - - - - 18015 84 184 284 384 184 84 284 84 - - 18016 85 185 285 385 - - - - 385 85 18017 86 186 286 386 186 86 - - - - 18018 87 187 287 387 - - 287 87 - - 18019 88 188 288 388 188 88 - - - - 18020 89 189 289 389 - - - - - - 18021 90 190 290 390 190 90 290 90 390 90 18022 91 191 291 391 - - - - - - 18023 92 192 292 392 192 92 - - - - 18024 93 193 293 393 - - 293 93 - - 18025 94 194 294 394 194 94 - - - - 18026 95 195 295 395 - - - - 395 95 18027 96 - 296 396 - - - - - - 18028 97 197 - 397 - - - - - - 18029 98 198 298 - - - - - - - 18030 99 - - - - - - - - - 18031 - - - - - - 200 0 - - 18032 - - - - - - - - 300 0 18033} 18034do_execsql_test joinD-597 { 18035 SELECT t1.*, t2.*, t3.*, t4.* 18036 FROM t1 LEFT JOIN t2 ON t2.x>0 18037 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 18038 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 18039 WHERE t1.b IS NOT DISTINCT FROM t2.b 18040 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18041} { 18042 2 102 202 302 102 2 - - - - 18043 4 104 204 304 104 4 - - - - 18044 6 106 206 306 106 6 206 6 - - 18045 8 108 208 308 108 8 - - - - 18046 10 110 210 310 110 10 - - 310 10 18047 12 112 212 312 112 12 212 12 - - 18048 14 114 214 314 114 14 - - - - 18049 16 116 216 316 116 16 - - - - 18050 18 118 218 318 118 18 218 18 - - 18051 20 120 220 320 120 20 - - 320 20 18052 22 122 222 322 122 22 - - - - 18053 24 124 224 324 124 24 224 24 - - 18054 26 126 226 326 126 26 - - - - 18055 28 128 228 328 128 28 - - - - 18056 30 130 230 330 130 30 230 30 330 30 18057 32 132 232 332 132 32 - - - - 18058 34 134 234 334 134 34 - - - - 18059 36 136 236 336 136 36 236 36 - - 18060 38 138 238 338 138 38 - - - - 18061 40 140 240 340 140 40 - - 340 40 18062 42 142 242 342 142 42 242 42 - - 18063 44 144 244 344 144 44 - - - - 18064 46 146 246 346 146 46 - - - - 18065 48 148 248 348 148 48 248 48 - - 18066 50 150 250 350 150 50 - - 350 50 18067 52 152 252 352 152 52 - - - - 18068 54 154 254 354 154 54 254 54 - - 18069 56 156 256 356 156 56 - - - - 18070 58 158 258 358 158 58 - - - - 18071 60 160 260 360 160 60 260 60 360 60 18072 62 162 262 362 162 62 - - - - 18073 64 164 264 364 164 64 - - - - 18074 66 166 266 366 166 66 266 66 - - 18075 68 168 268 368 168 68 - - - - 18076 70 170 270 370 170 70 - - 370 70 18077 72 172 272 372 172 72 272 72 - - 18078 74 174 274 374 174 74 - - - - 18079 76 176 276 376 176 76 - - - - 18080 78 178 278 378 178 78 278 78 - - 18081 80 180 280 380 180 80 - - 380 80 18082 82 182 282 382 182 82 - - - - 18083 84 184 284 384 184 84 284 84 - - 18084 86 186 286 386 186 86 - - - - 18085 88 188 288 388 188 88 - - - - 18086 90 190 290 390 190 90 290 90 390 90 18087 92 192 292 392 192 92 - - - - 18088 94 194 294 394 194 94 - - - - 18089 - - - - - - 200 0 - - 18090 - - - - - - - - 300 0 18091} 18092do_execsql_test joinD-598 { 18093 SELECT t1.*, t2.*, t3.*, t4.* 18094 FROM t1 LEFT JOIN t2 ON t2.x>0 18095 FULL JOIN t3 ON t3.y>0 18096 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 18097 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 18098 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18099} { 18100 6 106 206 306 106 6 206 6 - - 18101 12 112 212 312 112 12 212 12 - - 18102 18 118 218 318 118 18 218 18 - - 18103 24 124 224 324 124 24 224 24 - - 18104 30 130 230 330 130 30 230 30 330 30 18105 36 136 236 336 136 36 236 36 - - 18106 42 142 242 342 142 42 242 42 - - 18107 48 148 248 348 148 48 248 48 - - 18108 54 154 254 354 154 54 254 54 - - 18109 60 160 260 360 160 60 260 60 360 60 18110 66 166 266 366 166 66 266 66 - - 18111 72 172 272 372 172 72 272 72 - - 18112 78 178 278 378 178 78 278 78 - - 18113 84 184 284 384 184 84 284 84 - - 18114 90 190 290 390 190 90 290 90 390 90 18115} 18116do_execsql_test joinD-599 { 18117 SELECT t1.*, t2.*, t3.*, t4.* 18118 FROM t1 LEFT JOIN t2 ON t2.x>0 18119 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 18120 FULL JOIN t4 ON t4.z>0 18121 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 18122 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18123} { 18124 10 110 210 310 110 10 - - 310 10 18125 20 120 220 320 120 20 - - 320 20 18126 30 130 230 330 130 30 230 30 330 30 18127 40 140 240 340 140 40 - - 340 40 18128 50 150 250 350 150 50 - - 350 50 18129 60 160 260 360 160 60 260 60 360 60 18130 70 170 270 370 170 70 - - 370 70 18131 80 180 280 380 180 80 - - 380 80 18132 90 190 290 390 190 90 290 90 390 90 18133} 18134do_execsql_test joinD-600 { 18135 SELECT t1.*, t2.*, t3.*, t4.* 18136 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 18137 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 18138 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 18139 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18140} { 18141 0 100 200 300 - - - - - - 18142 1 101 201 301 - - - - - - 18143 2 102 202 302 102 2 - - - - 18144 3 103 203 303 - - 203 3 - - 18145 4 104 204 304 104 4 - - - - 18146 5 105 205 305 - - - - 305 5 18147 6 106 206 306 106 6 206 6 - - 18148 7 107 207 307 - - - - - - 18149 8 108 208 308 108 8 - - - - 18150 9 109 209 309 - - 209 9 - - 18151 10 110 210 310 110 10 - - 310 10 18152 11 111 211 311 - - - - - - 18153 12 112 212 312 112 12 212 12 - - 18154 13 113 213 313 - - - - - - 18155 14 114 214 314 114 14 - - - - 18156 15 115 215 315 - - 215 15 315 15 18157 16 116 216 316 116 16 - - - - 18158 17 117 217 317 - - - - - - 18159 18 118 218 318 118 18 218 18 - - 18160 19 119 219 319 - - - - - - 18161 20 120 220 320 120 20 - - 320 20 18162 21 121 221 321 - - 221 21 - - 18163 22 122 222 322 122 22 - - - - 18164 23 123 223 323 - - - - - - 18165 24 124 224 324 124 24 224 24 - - 18166 25 125 225 325 - - - - 325 25 18167 26 126 226 326 126 26 - - - - 18168 27 127 227 327 - - 227 27 - - 18169 28 128 228 328 128 28 - - - - 18170 29 129 229 329 - - - - - - 18171 30 130 230 330 130 30 230 30 330 30 18172 31 131 231 331 - - - - - - 18173 32 132 232 332 132 32 - - - - 18174 33 133 233 333 - - 233 33 - - 18175 34 134 234 334 134 34 - - - - 18176 35 135 235 335 - - - - 335 35 18177 36 136 236 336 136 36 236 36 - - 18178 37 137 237 337 - - - - - - 18179 38 138 238 338 138 38 - - - - 18180 39 139 239 339 - - 239 39 - - 18181 40 140 240 340 140 40 - - 340 40 18182 41 141 241 341 - - - - - - 18183 42 142 242 342 142 42 242 42 - - 18184 43 143 243 343 - - - - - - 18185 44 144 244 344 144 44 - - - - 18186 45 145 245 345 - - 245 45 345 45 18187 46 146 246 346 146 46 - - - - 18188 47 147 247 347 - - - - - - 18189 48 148 248 348 148 48 248 48 - - 18190 49 149 249 349 - - - - - - 18191 50 150 250 350 150 50 - - 350 50 18192 51 151 251 351 - - 251 51 - - 18193 52 152 252 352 152 52 - - - - 18194 53 153 253 353 - - - - - - 18195 54 154 254 354 154 54 254 54 - - 18196 55 155 255 355 - - - - 355 55 18197 56 156 256 356 156 56 - - - - 18198 57 157 257 357 - - 257 57 - - 18199 58 158 258 358 158 58 - - - - 18200 59 159 259 359 - - - - - - 18201 60 160 260 360 160 60 260 60 360 60 18202 61 161 261 361 - - - - - - 18203 62 162 262 362 162 62 - - - - 18204 63 163 263 363 - - 263 63 - - 18205 64 164 264 364 164 64 - - - - 18206 65 165 265 365 - - - - 365 65 18207 66 166 266 366 166 66 266 66 - - 18208 67 167 267 367 - - - - - - 18209 68 168 268 368 168 68 - - - - 18210 69 169 269 369 - - 269 69 - - 18211 70 170 270 370 170 70 - - 370 70 18212 71 171 271 371 - - - - - - 18213 72 172 272 372 172 72 272 72 - - 18214 73 173 273 373 - - - - - - 18215 74 174 274 374 174 74 - - - - 18216 75 175 275 375 - - 275 75 375 75 18217 76 176 276 376 176 76 - - - - 18218 77 177 277 377 - - - - - - 18219 78 178 278 378 178 78 278 78 - - 18220 79 179 279 379 - - - - - - 18221 80 180 280 380 180 80 - - 380 80 18222 81 181 281 381 - - 281 81 - - 18223 82 182 282 382 182 82 - - - - 18224 83 183 283 383 - - - - - - 18225 84 184 284 384 184 84 284 84 - - 18226 85 185 285 385 - - - - 385 85 18227 86 186 286 386 186 86 - - - - 18228 87 187 287 387 - - 287 87 - - 18229 88 188 288 388 188 88 - - - - 18230 89 189 289 389 - - - - - - 18231 90 190 290 390 190 90 290 90 390 90 18232 91 191 291 391 - - - - - - 18233 92 192 292 392 192 92 - - - - 18234 93 193 293 393 - - 293 93 - - 18235 94 194 294 394 194 94 - - - - 18236 95 195 295 395 - - - - 395 95 18237 96 - 296 396 - - - - - - 18238 97 197 - 397 - - - - - - 18239 98 198 298 - - - - - - - 18240 99 - - - - - - - - - 18241 - - - - - - 200 0 - - 18242 - - - - - - - - 300 0 18243} 18244do_execsql_test joinD-601 { 18245 SELECT t1.*, t2.*, t3.*, t4.* 18246 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18247 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18248 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18249 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18250} { 18251 30 130 230 330 130 30 230 30 330 30 18252 60 160 260 360 160 60 260 60 360 60 18253 90 190 290 390 190 90 290 90 390 90 18254} 18255do_execsql_test joinD-602 { 18256 SELECT t1.*, t2.*, t3.*, t4.* 18257 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 18258 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18259 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18260 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18261} { 18262 30 130 230 330 130 30 230 30 330 30 18263 60 160 260 360 160 60 260 60 360 60 18264 90 190 290 390 190 90 290 90 390 90 18265} 18266do_execsql_test joinD-603 { 18267 SELECT t1.*, t2.*, t3.*, t4.* 18268 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18269 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18270 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18271 WHERE t2.x>0 18272 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18273} { 18274 30 130 230 330 130 30 230 30 330 30 18275 60 160 260 360 160 60 260 60 360 60 18276 90 190 290 390 190 90 290 90 390 90 18277} 18278do_execsql_test joinD-604 { 18279 SELECT t1.*, t2.*, t3.*, t4.* 18280 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18281 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18282 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18283 WHERE (t2.x>0 OR t2.x IS NULL) 18284 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18285} { 18286 30 130 230 330 130 30 230 30 330 30 18287 60 160 260 360 160 60 260 60 360 60 18288 90 190 290 390 190 90 290 90 390 90 18289} 18290do_execsql_test joinD-605 { 18291 SELECT t1.*, t2.*, t3.*, t4.* 18292 FROM t1 RIGHT JOIN t2 ON true 18293 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18294 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18295 WHERE t1.b=t2.b AND t2.x>0 18296 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18297} { 18298 30 130 230 330 130 30 230 30 330 30 18299 60 160 260 360 160 60 260 60 360 60 18300 90 190 290 390 190 90 290 90 390 90 18301} 18302do_execsql_test joinD-606 { 18303 SELECT t1.*, t2.*, t3.*, t4.* 18304 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18305 INNER JOIN t3 ON t1.c=t3.c 18306 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18307 WHERE t3.y>0 18308 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18309} { 18310 30 130 230 330 130 30 230 30 330 30 18311 60 160 260 360 160 60 260 60 360 60 18312 90 190 290 390 190 90 290 90 390 90 18313} 18314do_execsql_test joinD-607 { 18315 SELECT t1.*, t2.*, t3.*, t4.* 18316 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18317 INNER JOIN t3 ON t1.c=t3.c 18318 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18319 WHERE t3.y>0 OR t3.y IS NULL 18320 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18321} { 18322 30 130 230 330 130 30 230 30 330 30 18323 60 160 260 360 160 60 260 60 360 60 18324 90 190 290 390 190 90 290 90 390 90 18325} 18326do_execsql_test joinD-608 { 18327 SELECT t1.*, t2.*, t3.*, t4.* 18328 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18329 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18330 INNER JOIN t4 ON t1.d=t4.d 18331 WHERE t4.z>0 18332 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18333} { 18334 30 130 230 330 130 30 230 30 330 30 18335 60 160 260 360 160 60 260 60 360 60 18336 90 190 290 390 190 90 290 90 390 90 18337} 18338do_execsql_test joinD-609 { 18339 SELECT t1.*, t2.*, t3.*, t4.* 18340 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18341 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18342 INNER JOIN t4 ON t1.d=t4.d 18343 WHERE t4.z IS NULL OR t4.z>0 18344 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18345} { 18346 30 130 230 330 130 30 230 30 330 30 18347 60 160 260 360 160 60 260 60 360 60 18348 90 190 290 390 190 90 290 90 390 90 18349} 18350do_execsql_test joinD-610 { 18351 SELECT t1.*, t2.*, t3.*, t4.* 18352 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18353 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18354 INNER JOIN t4 ON t1.d=t4.d 18355 WHERE t2.x>0 AND t4.z>0 18356 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18357} { 18358 30 130 230 330 130 30 230 30 330 30 18359 60 160 260 360 160 60 260 60 360 60 18360 90 190 290 390 190 90 290 90 390 90 18361} 18362do_execsql_test joinD-611 { 18363 SELECT t1.*, t2.*, t3.*, t4.* 18364 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18365 INNER JOIN t3 ON t1.c=t3.c 18366 INNER JOIN t4 ON t1.d=t4.d 18367 WHERE t4.z>0 AND t3.y>0 18368 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18369} { 18370 30 130 230 330 130 30 230 30 330 30 18371 60 160 260 360 160 60 260 60 360 60 18372 90 190 290 390 190 90 290 90 390 90 18373} 18374do_execsql_test joinD-612 { 18375 SELECT t1.*, t2.*, t3.*, t4.* 18376 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18377 INNER JOIN t3 ON t1.c=t3.c 18378 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18379 WHERE t2.x>0 AND t3.y>0 18380 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18381} { 18382 30 130 230 330 130 30 230 30 330 30 18383 60 160 260 360 160 60 260 60 360 60 18384 90 190 290 390 190 90 290 90 390 90 18385} 18386do_execsql_test joinD-613 { 18387 SELECT t1.*, t2.*, t3.*, t4.* 18388 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18389 INNER JOIN t3 ON t1.c=t3.c 18390 INNER JOIN t4 ON t1.d=t4.d 18391 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 18392 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18393} { 18394 30 130 230 330 130 30 230 30 330 30 18395 60 160 260 360 160 60 260 60 360 60 18396 90 190 290 390 190 90 290 90 390 90 18397} 18398do_execsql_test joinD-614 { 18399 SELECT t1.*, t2.*, t3.*, t4.* 18400 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 18401 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 18402 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 18403 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18404} { 18405 30 130 230 330 130 30 230 30 330 30 18406 60 160 260 360 160 60 260 60 360 60 18407 90 190 290 390 190 90 290 90 390 90 18408} 18409do_execsql_test joinD-615 { 18410 SELECT t1.*, t2.*, t3.*, t4.* 18411 FROM t1 RIGHT JOIN t2 ON t2.x>0 18412 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 18413 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 18414 WHERE t1.b IS NOT DISTINCT FROM t2.b 18415 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18416} { 18417 30 130 230 330 130 30 230 30 330 30 18418 60 160 260 360 160 60 260 60 360 60 18419 90 190 290 390 190 90 290 90 390 90 18420} 18421do_execsql_test joinD-616 { 18422 SELECT t1.*, t2.*, t3.*, t4.* 18423 FROM t1 RIGHT JOIN t2 ON t2.x>0 18424 INNER JOIN t3 ON t3.y>0 18425 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 18426 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 18427 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18428} { 18429 30 130 230 330 130 30 230 30 330 30 18430 60 160 260 360 160 60 260 60 360 60 18431 90 190 290 390 190 90 290 90 390 90 18432} 18433do_execsql_test joinD-617 { 18434 SELECT t1.*, t2.*, t3.*, t4.* 18435 FROM t1 RIGHT JOIN t2 ON t2.x>0 18436 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 18437 INNER JOIN t4 ON t4.z>0 18438 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 18439 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18440} { 18441 30 130 230 330 130 30 230 30 330 30 18442 60 160 260 360 160 60 260 60 360 60 18443 90 190 290 390 190 90 290 90 390 90 18444} 18445do_execsql_test joinD-618 { 18446 SELECT t1.*, t2.*, t3.*, t4.* 18447 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 18448 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18449 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18450 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18451} { 18452 30 130 230 330 130 30 230 30 330 30 18453 60 160 260 360 160 60 260 60 360 60 18454 90 190 290 390 190 90 290 90 390 90 18455} 18456do_execsql_test joinD-619 { 18457 SELECT t1.*, t2.*, t3.*, t4.* 18458 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18459 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 18460 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18461 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18462} { 18463 30 130 230 330 130 30 230 30 330 30 18464 60 160 260 360 160 60 260 60 360 60 18465 90 190 290 390 190 90 290 90 390 90 18466} 18467do_execsql_test joinD-620 { 18468 SELECT t1.*, t2.*, t3.*, t4.* 18469 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18470 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18471 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18472 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18473} { 18474 6 106 206 306 106 6 206 6 - - 18475 12 112 212 312 112 12 212 12 - - 18476 18 118 218 318 118 18 218 18 - - 18477 24 124 224 324 124 24 224 24 - - 18478 30 130 230 330 130 30 230 30 330 30 18479 36 136 236 336 136 36 236 36 - - 18480 42 142 242 342 142 42 242 42 - - 18481 48 148 248 348 148 48 248 48 - - 18482 54 154 254 354 154 54 254 54 - - 18483 60 160 260 360 160 60 260 60 360 60 18484 66 166 266 366 166 66 266 66 - - 18485 72 172 272 372 172 72 272 72 - - 18486 78 178 278 378 178 78 278 78 - - 18487 84 184 284 384 184 84 284 84 - - 18488 90 190 290 390 190 90 290 90 390 90 18489} 18490do_execsql_test joinD-621 { 18491 SELECT t1.*, t2.*, t3.*, t4.* 18492 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 18493 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18494 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18495 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18496} { 18497 6 106 206 306 106 6 206 6 - - 18498 12 112 212 312 112 12 212 12 - - 18499 18 118 218 318 118 18 218 18 - - 18500 24 124 224 324 124 24 224 24 - - 18501 30 130 230 330 130 30 230 30 330 30 18502 36 136 236 336 136 36 236 36 - - 18503 42 142 242 342 142 42 242 42 - - 18504 48 148 248 348 148 48 248 48 - - 18505 54 154 254 354 154 54 254 54 - - 18506 60 160 260 360 160 60 260 60 360 60 18507 66 166 266 366 166 66 266 66 - - 18508 72 172 272 372 172 72 272 72 - - 18509 78 178 278 378 178 78 278 78 - - 18510 84 184 284 384 184 84 284 84 - - 18511 90 190 290 390 190 90 290 90 390 90 18512} 18513do_execsql_test joinD-622 { 18514 SELECT t1.*, t2.*, t3.*, t4.* 18515 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18516 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18517 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18518 WHERE t2.x>0 18519 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18520} { 18521 6 106 206 306 106 6 206 6 - - 18522 12 112 212 312 112 12 212 12 - - 18523 18 118 218 318 118 18 218 18 - - 18524 24 124 224 324 124 24 224 24 - - 18525 30 130 230 330 130 30 230 30 330 30 18526 36 136 236 336 136 36 236 36 - - 18527 42 142 242 342 142 42 242 42 - - 18528 48 148 248 348 148 48 248 48 - - 18529 54 154 254 354 154 54 254 54 - - 18530 60 160 260 360 160 60 260 60 360 60 18531 66 166 266 366 166 66 266 66 - - 18532 72 172 272 372 172 72 272 72 - - 18533 78 178 278 378 178 78 278 78 - - 18534 84 184 284 384 184 84 284 84 - - 18535 90 190 290 390 190 90 290 90 390 90 18536} 18537do_execsql_test joinD-623 { 18538 SELECT t1.*, t2.*, t3.*, t4.* 18539 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18540 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18541 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18542 WHERE (t2.x>0 OR t2.x IS NULL) 18543 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18544} { 18545 6 106 206 306 106 6 206 6 - - 18546 12 112 212 312 112 12 212 12 - - 18547 18 118 218 318 118 18 218 18 - - 18548 24 124 224 324 124 24 224 24 - - 18549 30 130 230 330 130 30 230 30 330 30 18550 36 136 236 336 136 36 236 36 - - 18551 42 142 242 342 142 42 242 42 - - 18552 48 148 248 348 148 48 248 48 - - 18553 54 154 254 354 154 54 254 54 - - 18554 60 160 260 360 160 60 260 60 360 60 18555 66 166 266 366 166 66 266 66 - - 18556 72 172 272 372 172 72 272 72 - - 18557 78 178 278 378 178 78 278 78 - - 18558 84 184 284 384 184 84 284 84 - - 18559 90 190 290 390 190 90 290 90 390 90 18560} 18561do_execsql_test joinD-624 { 18562 SELECT t1.*, t2.*, t3.*, t4.* 18563 FROM t1 RIGHT JOIN t2 ON true 18564 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18565 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18566 WHERE t1.b=t2.b AND t2.x>0 18567 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18568} { 18569 6 106 206 306 106 6 206 6 - - 18570 12 112 212 312 112 12 212 12 - - 18571 18 118 218 318 118 18 218 18 - - 18572 24 124 224 324 124 24 224 24 - - 18573 30 130 230 330 130 30 230 30 330 30 18574 36 136 236 336 136 36 236 36 - - 18575 42 142 242 342 142 42 242 42 - - 18576 48 148 248 348 148 48 248 48 - - 18577 54 154 254 354 154 54 254 54 - - 18578 60 160 260 360 160 60 260 60 360 60 18579 66 166 266 366 166 66 266 66 - - 18580 72 172 272 372 172 72 272 72 - - 18581 78 178 278 378 178 78 278 78 - - 18582 84 184 284 384 184 84 284 84 - - 18583 90 190 290 390 190 90 290 90 390 90 18584} 18585do_execsql_test joinD-625 { 18586 SELECT t1.*, t2.*, t3.*, t4.* 18587 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18588 INNER JOIN t3 ON t1.c=t3.c 18589 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18590 WHERE t3.y>0 18591 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18592} { 18593 6 106 206 306 106 6 206 6 - - 18594 12 112 212 312 112 12 212 12 - - 18595 18 118 218 318 118 18 218 18 - - 18596 24 124 224 324 124 24 224 24 - - 18597 30 130 230 330 130 30 230 30 330 30 18598 36 136 236 336 136 36 236 36 - - 18599 42 142 242 342 142 42 242 42 - - 18600 48 148 248 348 148 48 248 48 - - 18601 54 154 254 354 154 54 254 54 - - 18602 60 160 260 360 160 60 260 60 360 60 18603 66 166 266 366 166 66 266 66 - - 18604 72 172 272 372 172 72 272 72 - - 18605 78 178 278 378 178 78 278 78 - - 18606 84 184 284 384 184 84 284 84 - - 18607 90 190 290 390 190 90 290 90 390 90 18608} 18609do_execsql_test joinD-626 { 18610 SELECT t1.*, t2.*, t3.*, t4.* 18611 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18612 INNER JOIN t3 ON t1.c=t3.c 18613 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18614 WHERE t3.y>0 OR t3.y IS NULL 18615 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18616} { 18617 6 106 206 306 106 6 206 6 - - 18618 12 112 212 312 112 12 212 12 - - 18619 18 118 218 318 118 18 218 18 - - 18620 24 124 224 324 124 24 224 24 - - 18621 30 130 230 330 130 30 230 30 330 30 18622 36 136 236 336 136 36 236 36 - - 18623 42 142 242 342 142 42 242 42 - - 18624 48 148 248 348 148 48 248 48 - - 18625 54 154 254 354 154 54 254 54 - - 18626 60 160 260 360 160 60 260 60 360 60 18627 66 166 266 366 166 66 266 66 - - 18628 72 172 272 372 172 72 272 72 - - 18629 78 178 278 378 178 78 278 78 - - 18630 84 184 284 384 184 84 284 84 - - 18631 90 190 290 390 190 90 290 90 390 90 18632} 18633do_execsql_test joinD-627 { 18634 SELECT t1.*, t2.*, t3.*, t4.* 18635 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18636 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18637 LEFT JOIN t4 ON t1.d=t4.d 18638 WHERE t4.z>0 18639 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18640} { 18641 30 130 230 330 130 30 230 30 330 30 18642 60 160 260 360 160 60 260 60 360 60 18643 90 190 290 390 190 90 290 90 390 90 18644} 18645do_execsql_test joinD-628 { 18646 SELECT t1.*, t2.*, t3.*, t4.* 18647 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18648 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18649 LEFT JOIN t4 ON t1.d=t4.d 18650 WHERE t4.z IS NULL OR t4.z>0 18651 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18652} { 18653 6 106 206 306 106 6 206 6 - - 18654 12 112 212 312 112 12 212 12 - - 18655 18 118 218 318 118 18 218 18 - - 18656 24 124 224 324 124 24 224 24 - - 18657 30 130 230 330 130 30 230 30 330 30 18658 36 136 236 336 136 36 236 36 - - 18659 42 142 242 342 142 42 242 42 - - 18660 48 148 248 348 148 48 248 48 - - 18661 54 154 254 354 154 54 254 54 - - 18662 60 160 260 360 160 60 260 60 360 60 18663 66 166 266 366 166 66 266 66 - - 18664 72 172 272 372 172 72 272 72 - - 18665 78 178 278 378 178 78 278 78 - - 18666 84 184 284 384 184 84 284 84 - - 18667 90 190 290 390 190 90 290 90 390 90 18668} 18669do_execsql_test joinD-629 { 18670 SELECT t1.*, t2.*, t3.*, t4.* 18671 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18672 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18673 LEFT JOIN t4 ON t1.d=t4.d 18674 WHERE t2.x>0 AND t4.z>0 18675 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18676} { 18677 30 130 230 330 130 30 230 30 330 30 18678 60 160 260 360 160 60 260 60 360 60 18679 90 190 290 390 190 90 290 90 390 90 18680} 18681do_execsql_test joinD-630 { 18682 SELECT t1.*, t2.*, t3.*, t4.* 18683 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18684 INNER JOIN t3 ON t1.c=t3.c 18685 LEFT JOIN t4 ON t1.d=t4.d 18686 WHERE t4.z>0 AND t3.y>0 18687 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18688} { 18689 30 130 230 330 130 30 230 30 330 30 18690 60 160 260 360 160 60 260 60 360 60 18691 90 190 290 390 190 90 290 90 390 90 18692} 18693do_execsql_test joinD-631 { 18694 SELECT t1.*, t2.*, t3.*, t4.* 18695 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18696 INNER JOIN t3 ON t1.c=t3.c 18697 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18698 WHERE t2.x>0 AND t3.y>0 18699 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18700} { 18701 6 106 206 306 106 6 206 6 - - 18702 12 112 212 312 112 12 212 12 - - 18703 18 118 218 318 118 18 218 18 - - 18704 24 124 224 324 124 24 224 24 - - 18705 30 130 230 330 130 30 230 30 330 30 18706 36 136 236 336 136 36 236 36 - - 18707 42 142 242 342 142 42 242 42 - - 18708 48 148 248 348 148 48 248 48 - - 18709 54 154 254 354 154 54 254 54 - - 18710 60 160 260 360 160 60 260 60 360 60 18711 66 166 266 366 166 66 266 66 - - 18712 72 172 272 372 172 72 272 72 - - 18713 78 178 278 378 178 78 278 78 - - 18714 84 184 284 384 184 84 284 84 - - 18715 90 190 290 390 190 90 290 90 390 90 18716} 18717do_execsql_test joinD-632 { 18718 SELECT t1.*, t2.*, t3.*, t4.* 18719 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18720 INNER JOIN t3 ON t1.c=t3.c 18721 LEFT JOIN t4 ON t1.d=t4.d 18722 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 18723 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18724} { 18725 30 130 230 330 130 30 230 30 330 30 18726 60 160 260 360 160 60 260 60 360 60 18727 90 190 290 390 190 90 290 90 390 90 18728} 18729do_execsql_test joinD-633 { 18730 SELECT t1.*, t2.*, t3.*, t4.* 18731 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 18732 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 18733 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 18734 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18735} { 18736 6 106 206 306 106 6 206 6 - - 18737 12 112 212 312 112 12 212 12 - - 18738 18 118 218 318 118 18 218 18 - - 18739 24 124 224 324 124 24 224 24 - - 18740 30 130 230 330 130 30 230 30 330 30 18741 36 136 236 336 136 36 236 36 - - 18742 42 142 242 342 142 42 242 42 - - 18743 48 148 248 348 148 48 248 48 - - 18744 54 154 254 354 154 54 254 54 - - 18745 60 160 260 360 160 60 260 60 360 60 18746 66 166 266 366 166 66 266 66 - - 18747 72 172 272 372 172 72 272 72 - - 18748 78 178 278 378 178 78 278 78 - - 18749 84 184 284 384 184 84 284 84 - - 18750 90 190 290 390 190 90 290 90 390 90 18751} 18752do_execsql_test joinD-634 { 18753 SELECT t1.*, t2.*, t3.*, t4.* 18754 FROM t1 RIGHT JOIN t2 ON t2.x>0 18755 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 18756 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 18757 WHERE t1.b IS NOT DISTINCT FROM t2.b 18758 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18759} { 18760 6 106 206 306 106 6 206 6 - - 18761 12 112 212 312 112 12 212 12 - - 18762 18 118 218 318 118 18 218 18 - - 18763 24 124 224 324 124 24 224 24 - - 18764 30 130 230 330 130 30 230 30 330 30 18765 36 136 236 336 136 36 236 36 - - 18766 42 142 242 342 142 42 242 42 - - 18767 48 148 248 348 148 48 248 48 - - 18768 54 154 254 354 154 54 254 54 - - 18769 60 160 260 360 160 60 260 60 360 60 18770 66 166 266 366 166 66 266 66 - - 18771 72 172 272 372 172 72 272 72 - - 18772 78 178 278 378 178 78 278 78 - - 18773 84 184 284 384 184 84 284 84 - - 18774 90 190 290 390 190 90 290 90 390 90 18775} 18776do_execsql_test joinD-635 { 18777 SELECT t1.*, t2.*, t3.*, t4.* 18778 FROM t1 RIGHT JOIN t2 ON t2.x>0 18779 INNER JOIN t3 ON t3.y>0 18780 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 18781 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 18782 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18783} { 18784 6 106 206 306 106 6 206 6 - - 18785 12 112 212 312 112 12 212 12 - - 18786 18 118 218 318 118 18 218 18 - - 18787 24 124 224 324 124 24 224 24 - - 18788 30 130 230 330 130 30 230 30 330 30 18789 36 136 236 336 136 36 236 36 - - 18790 42 142 242 342 142 42 242 42 - - 18791 48 148 248 348 148 48 248 48 - - 18792 54 154 254 354 154 54 254 54 - - 18793 60 160 260 360 160 60 260 60 360 60 18794 66 166 266 366 166 66 266 66 - - 18795 72 172 272 372 172 72 272 72 - - 18796 78 178 278 378 178 78 278 78 - - 18797 84 184 284 384 184 84 284 84 - - 18798 90 190 290 390 190 90 290 90 390 90 18799} 18800do_execsql_test joinD-636 { 18801 SELECT t1.*, t2.*, t3.*, t4.* 18802 FROM t1 RIGHT JOIN t2 ON t2.x>0 18803 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 18804 LEFT JOIN t4 ON t4.z>0 18805 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 18806 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18807} { 18808 30 130 230 330 130 30 230 30 330 30 18809 60 160 260 360 160 60 260 60 360 60 18810 90 190 290 390 190 90 290 90 390 90 18811} 18812do_execsql_test joinD-637 { 18813 SELECT t1.*, t2.*, t3.*, t4.* 18814 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 18815 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18816 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18817 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18818} { 18819 6 106 206 306 106 6 206 6 - - 18820 12 112 212 312 112 12 212 12 - - 18821 18 118 218 318 118 18 218 18 - - 18822 24 124 224 324 124 24 224 24 - - 18823 30 130 230 330 130 30 230 30 330 30 18824 36 136 236 336 136 36 236 36 - - 18825 42 142 242 342 142 42 242 42 - - 18826 48 148 248 348 148 48 248 48 - - 18827 54 154 254 354 154 54 254 54 - - 18828 60 160 260 360 160 60 260 60 360 60 18829 66 166 266 366 166 66 266 66 - - 18830 72 172 272 372 172 72 272 72 - - 18831 78 178 278 378 178 78 278 78 - - 18832 84 184 284 384 184 84 284 84 - - 18833 90 190 290 390 190 90 290 90 390 90 18834} 18835do_execsql_test joinD-638 { 18836 SELECT t1.*, t2.*, t3.*, t4.* 18837 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18838 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 18839 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18840 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18841} { 18842 6 106 206 306 106 6 206 6 - - 18843 12 112 212 312 112 12 212 12 - - 18844 18 118 218 318 118 18 218 18 - - 18845 24 124 224 324 124 24 224 24 - - 18846 30 130 230 330 130 30 230 30 330 30 18847 36 136 236 336 136 36 236 36 - - 18848 42 142 242 342 142 42 242 42 - - 18849 48 148 248 348 148 48 248 48 - - 18850 54 154 254 354 154 54 254 54 - - 18851 60 160 260 360 160 60 260 60 360 60 18852 66 166 266 366 166 66 266 66 - - 18853 72 172 272 372 172 72 272 72 - - 18854 78 178 278 378 178 78 278 78 - - 18855 84 184 284 384 184 84 284 84 - - 18856 90 190 290 390 190 90 290 90 390 90 18857} 18858do_execsql_test joinD-639 { 18859 SELECT t1.*, t2.*, t3.*, t4.* 18860 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18861 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18862 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 18863 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18864} { 18865 30 130 230 330 130 30 230 30 330 30 18866 60 160 260 360 160 60 260 60 360 60 18867 90 190 290 390 190 90 290 90 390 90 18868 - - - - - - - - 300 0 18869 - - - - - - - - 305 5 18870 - - - - - - - - 310 10 18871 - - - - - - - - 315 15 18872 - - - - - - - - 320 20 18873 - - - - - - - - 325 25 18874 - - - - - - - - 335 35 18875 - - - - - - - - 340 40 18876 - - - - - - - - 345 45 18877 - - - - - - - - 350 50 18878 - - - - - - - - 355 55 18879 - - - - - - - - 365 65 18880 - - - - - - - - 370 70 18881 - - - - - - - - 375 75 18882 - - - - - - - - 380 80 18883 - - - - - - - - 385 85 18884 - - - - - - - - 395 95 18885} 18886do_execsql_test joinD-640 { 18887 SELECT t1.*, t2.*, t3.*, t4.* 18888 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 18889 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18890 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 18891 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18892} { 18893 30 130 230 330 130 30 230 30 330 30 18894 60 160 260 360 160 60 260 60 360 60 18895 90 190 290 390 190 90 290 90 390 90 18896 - - - - - - - - 300 0 18897 - - - - - - - - 305 5 18898 - - - - - - - - 310 10 18899 - - - - - - - - 315 15 18900 - - - - - - - - 320 20 18901 - - - - - - - - 325 25 18902 - - - - - - - - 335 35 18903 - - - - - - - - 340 40 18904 - - - - - - - - 345 45 18905 - - - - - - - - 350 50 18906 - - - - - - - - 355 55 18907 - - - - - - - - 365 65 18908 - - - - - - - - 370 70 18909 - - - - - - - - 375 75 18910 - - - - - - - - 380 80 18911 - - - - - - - - 385 85 18912 - - - - - - - - 395 95 18913} 18914do_execsql_test joinD-641 { 18915 SELECT t1.*, t2.*, t3.*, t4.* 18916 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18917 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18918 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 18919 WHERE t2.x>0 18920 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18921} { 18922 30 130 230 330 130 30 230 30 330 30 18923 60 160 260 360 160 60 260 60 360 60 18924 90 190 290 390 190 90 290 90 390 90 18925} 18926do_execsql_test joinD-642 { 18927 SELECT t1.*, t2.*, t3.*, t4.* 18928 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18929 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18930 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 18931 WHERE (t2.x>0 OR t2.x IS NULL) 18932 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18933} { 18934 30 130 230 330 130 30 230 30 330 30 18935 60 160 260 360 160 60 260 60 360 60 18936 90 190 290 390 190 90 290 90 390 90 18937 - - - - - - - - 300 0 18938 - - - - - - - - 305 5 18939 - - - - - - - - 310 10 18940 - - - - - - - - 315 15 18941 - - - - - - - - 320 20 18942 - - - - - - - - 325 25 18943 - - - - - - - - 335 35 18944 - - - - - - - - 340 40 18945 - - - - - - - - 345 45 18946 - - - - - - - - 350 50 18947 - - - - - - - - 355 55 18948 - - - - - - - - 365 65 18949 - - - - - - - - 370 70 18950 - - - - - - - - 375 75 18951 - - - - - - - - 380 80 18952 - - - - - - - - 385 85 18953 - - - - - - - - 395 95 18954} 18955do_execsql_test joinD-643 { 18956 SELECT t1.*, t2.*, t3.*, t4.* 18957 FROM t1 RIGHT JOIN t2 ON true 18958 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18959 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 18960 WHERE t1.b=t2.b AND t2.x>0 18961 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18962} { 18963 30 130 230 330 130 30 230 30 330 30 18964 60 160 260 360 160 60 260 60 360 60 18965 90 190 290 390 190 90 290 90 390 90 18966} 18967do_execsql_test joinD-644 { 18968 SELECT t1.*, t2.*, t3.*, t4.* 18969 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18970 INNER JOIN t3 ON t1.c=t3.c 18971 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 18972 WHERE t3.y>0 18973 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18974} { 18975 30 130 230 330 130 30 230 30 330 30 18976 60 160 260 360 160 60 260 60 360 60 18977 90 190 290 390 190 90 290 90 390 90 18978} 18979do_execsql_test joinD-645 { 18980 SELECT t1.*, t2.*, t3.*, t4.* 18981 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18982 INNER JOIN t3 ON t1.c=t3.c 18983 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 18984 WHERE t3.y>0 OR t3.y IS NULL 18985 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18986} { 18987 30 130 230 330 130 30 230 30 330 30 18988 60 160 260 360 160 60 260 60 360 60 18989 90 190 290 390 190 90 290 90 390 90 18990 - - - - - - - - 300 0 18991 - - - - - - - - 305 5 18992 - - - - - - - - 310 10 18993 - - - - - - - - 315 15 18994 - - - - - - - - 320 20 18995 - - - - - - - - 325 25 18996 - - - - - - - - 335 35 18997 - - - - - - - - 340 40 18998 - - - - - - - - 345 45 18999 - - - - - - - - 350 50 19000 - - - - - - - - 355 55 19001 - - - - - - - - 365 65 19002 - - - - - - - - 370 70 19003 - - - - - - - - 375 75 19004 - - - - - - - - 380 80 19005 - - - - - - - - 385 85 19006 - - - - - - - - 395 95 19007} 19008do_execsql_test joinD-646 { 19009 SELECT t1.*, t2.*, t3.*, t4.* 19010 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19011 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19012 RIGHT JOIN t4 ON t1.d=t4.d 19013 WHERE t4.z>0 19014 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19015} { 19016 30 130 230 330 130 30 230 30 330 30 19017 60 160 260 360 160 60 260 60 360 60 19018 90 190 290 390 190 90 290 90 390 90 19019 - - - - - - - - 305 5 19020 - - - - - - - - 310 10 19021 - - - - - - - - 315 15 19022 - - - - - - - - 320 20 19023 - - - - - - - - 325 25 19024 - - - - - - - - 335 35 19025 - - - - - - - - 340 40 19026 - - - - - - - - 345 45 19027 - - - - - - - - 350 50 19028 - - - - - - - - 355 55 19029 - - - - - - - - 365 65 19030 - - - - - - - - 370 70 19031 - - - - - - - - 375 75 19032 - - - - - - - - 380 80 19033 - - - - - - - - 385 85 19034 - - - - - - - - 395 95 19035} 19036do_execsql_test joinD-647 { 19037 SELECT t1.*, t2.*, t3.*, t4.* 19038 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19039 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19040 RIGHT JOIN t4 ON t1.d=t4.d 19041 WHERE t4.z IS NULL OR t4.z>0 19042 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19043} { 19044 30 130 230 330 130 30 230 30 330 30 19045 60 160 260 360 160 60 260 60 360 60 19046 90 190 290 390 190 90 290 90 390 90 19047 - - - - - - - - 305 5 19048 - - - - - - - - 310 10 19049 - - - - - - - - 315 15 19050 - - - - - - - - 320 20 19051 - - - - - - - - 325 25 19052 - - - - - - - - 335 35 19053 - - - - - - - - 340 40 19054 - - - - - - - - 345 45 19055 - - - - - - - - 350 50 19056 - - - - - - - - 355 55 19057 - - - - - - - - 365 65 19058 - - - - - - - - 370 70 19059 - - - - - - - - 375 75 19060 - - - - - - - - 380 80 19061 - - - - - - - - 385 85 19062 - - - - - - - - 395 95 19063} 19064do_execsql_test joinD-648 { 19065 SELECT t1.*, t2.*, t3.*, t4.* 19066 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19067 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19068 RIGHT JOIN t4 ON t1.d=t4.d 19069 WHERE t2.x>0 AND t4.z>0 19070 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19071} { 19072 30 130 230 330 130 30 230 30 330 30 19073 60 160 260 360 160 60 260 60 360 60 19074 90 190 290 390 190 90 290 90 390 90 19075} 19076do_execsql_test joinD-649 { 19077 SELECT t1.*, t2.*, t3.*, t4.* 19078 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19079 INNER JOIN t3 ON t1.c=t3.c 19080 RIGHT JOIN t4 ON t1.d=t4.d 19081 WHERE t4.z>0 AND t3.y>0 19082 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19083} { 19084 30 130 230 330 130 30 230 30 330 30 19085 60 160 260 360 160 60 260 60 360 60 19086 90 190 290 390 190 90 290 90 390 90 19087} 19088do_execsql_test joinD-650 { 19089 SELECT t1.*, t2.*, t3.*, t4.* 19090 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19091 INNER JOIN t3 ON t1.c=t3.c 19092 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 19093 WHERE t2.x>0 AND t3.y>0 19094 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19095} { 19096 30 130 230 330 130 30 230 30 330 30 19097 60 160 260 360 160 60 260 60 360 60 19098 90 190 290 390 190 90 290 90 390 90 19099} 19100do_execsql_test joinD-651 { 19101 SELECT t1.*, t2.*, t3.*, t4.* 19102 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19103 INNER JOIN t3 ON t1.c=t3.c 19104 RIGHT JOIN t4 ON t1.d=t4.d 19105 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 19106 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19107} { 19108 30 130 230 330 130 30 230 30 330 30 19109 60 160 260 360 160 60 260 60 360 60 19110 90 190 290 390 190 90 290 90 390 90 19111} 19112do_execsql_test joinD-652 { 19113 SELECT t1.*, t2.*, t3.*, t4.* 19114 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 19115 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 19116 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 19117 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19118} { 19119 30 130 230 330 130 30 230 30 330 30 19120 60 160 260 360 160 60 260 60 360 60 19121 90 190 290 390 190 90 290 90 390 90 19122 - - - - - - - - 300 0 19123 - - - - - - - - 305 5 19124 - - - - - - - - 310 10 19125 - - - - - - - - 315 15 19126 - - - - - - - - 320 20 19127 - - - - - - - - 325 25 19128 - - - - - - - - 335 35 19129 - - - - - - - - 340 40 19130 - - - - - - - - 345 45 19131 - - - - - - - - 350 50 19132 - - - - - - - - 355 55 19133 - - - - - - - - 365 65 19134 - - - - - - - - 370 70 19135 - - - - - - - - 375 75 19136 - - - - - - - - 380 80 19137 - - - - - - - - 385 85 19138 - - - - - - - - 395 95 19139} 19140do_execsql_test joinD-653 { 19141 SELECT t1.*, t2.*, t3.*, t4.* 19142 FROM t1 RIGHT JOIN t2 ON t2.x>0 19143 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 19144 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 19145 WHERE t1.b IS NOT DISTINCT FROM t2.b 19146 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19147} { 19148 30 130 230 330 130 30 230 30 330 30 19149 60 160 260 360 160 60 260 60 360 60 19150 90 190 290 390 190 90 290 90 390 90 19151 - - - - - - - - 300 0 19152 - - - - - - - - 305 5 19153 - - - - - - - - 310 10 19154 - - - - - - - - 320 20 19155 - - - - - - - - 325 25 19156 - - - - - - - - 335 35 19157 - - - - - - - - 340 40 19158 - - - - - - - - 350 50 19159 - - - - - - - - 355 55 19160 - - - - - - - - 365 65 19161 - - - - - - - - 370 70 19162 - - - - - - - - 380 80 19163 - - - - - - - - 385 85 19164 - - - - - - - - 395 95 19165} 19166do_execsql_test joinD-654 { 19167 SELECT t1.*, t2.*, t3.*, t4.* 19168 FROM t1 RIGHT JOIN t2 ON t2.x>0 19169 INNER JOIN t3 ON t3.y>0 19170 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 19171 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 19172 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19173} { 19174 30 130 230 330 130 30 230 30 330 30 19175 60 160 260 360 160 60 260 60 360 60 19176 90 190 290 390 190 90 290 90 390 90 19177 - - - - - - - - 300 0 19178} 19179do_execsql_test joinD-655 { 19180 SELECT t1.*, t2.*, t3.*, t4.* 19181 FROM t1 RIGHT JOIN t2 ON t2.x>0 19182 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 19183 RIGHT JOIN t4 ON t4.z>0 19184 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 19185 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19186} { 19187 30 130 230 330 130 30 230 30 330 30 19188 60 160 260 360 160 60 260 60 360 60 19189 90 190 290 390 190 90 290 90 390 90 19190} 19191do_execsql_test joinD-656 { 19192 SELECT t1.*, t2.*, t3.*, t4.* 19193 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 19194 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19195 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 19196 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19197} { 19198 30 130 230 330 130 30 230 30 330 30 19199 60 160 260 360 160 60 260 60 360 60 19200 90 190 290 390 190 90 290 90 390 90 19201 - - - - - - - - 300 0 19202 - - - - - - - - 305 5 19203 - - - - - - - - 310 10 19204 - - - - - - - - 315 15 19205 - - - - - - - - 320 20 19206 - - - - - - - - 325 25 19207 - - - - - - - - 335 35 19208 - - - - - - - - 340 40 19209 - - - - - - - - 345 45 19210 - - - - - - - - 350 50 19211 - - - - - - - - 355 55 19212 - - - - - - - - 365 65 19213 - - - - - - - - 370 70 19214 - - - - - - - - 375 75 19215 - - - - - - - - 380 80 19216 - - - - - - - - 385 85 19217 - - - - - - - - 395 95 19218} 19219do_execsql_test joinD-657 { 19220 SELECT t1.*, t2.*, t3.*, t4.* 19221 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19222 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 19223 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 19224 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19225} { 19226 30 130 230 330 130 30 230 30 330 30 19227 60 160 260 360 160 60 260 60 360 60 19228 90 190 290 390 190 90 290 90 390 90 19229 - - - - - - - - 300 0 19230 - - - - - - - - 305 5 19231 - - - - - - - - 310 10 19232 - - - - - - - - 315 15 19233 - - - - - - - - 320 20 19234 - - - - - - - - 325 25 19235 - - - - - - - - 335 35 19236 - - - - - - - - 340 40 19237 - - - - - - - - 345 45 19238 - - - - - - - - 350 50 19239 - - - - - - - - 355 55 19240 - - - - - - - - 365 65 19241 - - - - - - - - 370 70 19242 - - - - - - - - 375 75 19243 - - - - - - - - 380 80 19244 - - - - - - - - 385 85 19245 - - - - - - - - 395 95 19246} 19247do_execsql_test joinD-658 { 19248 SELECT t1.*, t2.*, t3.*, t4.* 19249 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19250 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19251 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19252 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19253} { 19254 6 106 206 306 106 6 206 6 - - 19255 12 112 212 312 112 12 212 12 - - 19256 18 118 218 318 118 18 218 18 - - 19257 24 124 224 324 124 24 224 24 - - 19258 30 130 230 330 130 30 230 30 330 30 19259 36 136 236 336 136 36 236 36 - - 19260 42 142 242 342 142 42 242 42 - - 19261 48 148 248 348 148 48 248 48 - - 19262 54 154 254 354 154 54 254 54 - - 19263 60 160 260 360 160 60 260 60 360 60 19264 66 166 266 366 166 66 266 66 - - 19265 72 172 272 372 172 72 272 72 - - 19266 78 178 278 378 178 78 278 78 - - 19267 84 184 284 384 184 84 284 84 - - 19268 90 190 290 390 190 90 290 90 390 90 19269 - - - - - - - - 300 0 19270 - - - - - - - - 305 5 19271 - - - - - - - - 310 10 19272 - - - - - - - - 315 15 19273 - - - - - - - - 320 20 19274 - - - - - - - - 325 25 19275 - - - - - - - - 335 35 19276 - - - - - - - - 340 40 19277 - - - - - - - - 345 45 19278 - - - - - - - - 350 50 19279 - - - - - - - - 355 55 19280 - - - - - - - - 365 65 19281 - - - - - - - - 370 70 19282 - - - - - - - - 375 75 19283 - - - - - - - - 380 80 19284 - - - - - - - - 385 85 19285 - - - - - - - - 395 95 19286} 19287do_execsql_test joinD-659 { 19288 SELECT t1.*, t2.*, t3.*, t4.* 19289 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 19290 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19291 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19292 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19293} { 19294 6 106 206 306 106 6 206 6 - - 19295 12 112 212 312 112 12 212 12 - - 19296 18 118 218 318 118 18 218 18 - - 19297 24 124 224 324 124 24 224 24 - - 19298 30 130 230 330 130 30 230 30 330 30 19299 36 136 236 336 136 36 236 36 - - 19300 42 142 242 342 142 42 242 42 - - 19301 48 148 248 348 148 48 248 48 - - 19302 54 154 254 354 154 54 254 54 - - 19303 60 160 260 360 160 60 260 60 360 60 19304 66 166 266 366 166 66 266 66 - - 19305 72 172 272 372 172 72 272 72 - - 19306 78 178 278 378 178 78 278 78 - - 19307 84 184 284 384 184 84 284 84 - - 19308 90 190 290 390 190 90 290 90 390 90 19309 - - - - - - - - 300 0 19310 - - - - - - - - 305 5 19311 - - - - - - - - 310 10 19312 - - - - - - - - 315 15 19313 - - - - - - - - 320 20 19314 - - - - - - - - 325 25 19315 - - - - - - - - 335 35 19316 - - - - - - - - 340 40 19317 - - - - - - - - 345 45 19318 - - - - - - - - 350 50 19319 - - - - - - - - 355 55 19320 - - - - - - - - 365 65 19321 - - - - - - - - 370 70 19322 - - - - - - - - 375 75 19323 - - - - - - - - 380 80 19324 - - - - - - - - 385 85 19325 - - - - - - - - 395 95 19326} 19327do_execsql_test joinD-660 { 19328 SELECT t1.*, t2.*, t3.*, t4.* 19329 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19330 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19331 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19332 WHERE t2.x>0 19333 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19334} { 19335 6 106 206 306 106 6 206 6 - - 19336 12 112 212 312 112 12 212 12 - - 19337 18 118 218 318 118 18 218 18 - - 19338 24 124 224 324 124 24 224 24 - - 19339 30 130 230 330 130 30 230 30 330 30 19340 36 136 236 336 136 36 236 36 - - 19341 42 142 242 342 142 42 242 42 - - 19342 48 148 248 348 148 48 248 48 - - 19343 54 154 254 354 154 54 254 54 - - 19344 60 160 260 360 160 60 260 60 360 60 19345 66 166 266 366 166 66 266 66 - - 19346 72 172 272 372 172 72 272 72 - - 19347 78 178 278 378 178 78 278 78 - - 19348 84 184 284 384 184 84 284 84 - - 19349 90 190 290 390 190 90 290 90 390 90 19350} 19351do_execsql_test joinD-661 { 19352 SELECT t1.*, t2.*, t3.*, t4.* 19353 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19354 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19355 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19356 WHERE (t2.x>0 OR t2.x IS NULL) 19357 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19358} { 19359 6 106 206 306 106 6 206 6 - - 19360 12 112 212 312 112 12 212 12 - - 19361 18 118 218 318 118 18 218 18 - - 19362 24 124 224 324 124 24 224 24 - - 19363 30 130 230 330 130 30 230 30 330 30 19364 36 136 236 336 136 36 236 36 - - 19365 42 142 242 342 142 42 242 42 - - 19366 48 148 248 348 148 48 248 48 - - 19367 54 154 254 354 154 54 254 54 - - 19368 60 160 260 360 160 60 260 60 360 60 19369 66 166 266 366 166 66 266 66 - - 19370 72 172 272 372 172 72 272 72 - - 19371 78 178 278 378 178 78 278 78 - - 19372 84 184 284 384 184 84 284 84 - - 19373 90 190 290 390 190 90 290 90 390 90 19374 - - - - - - - - 300 0 19375 - - - - - - - - 305 5 19376 - - - - - - - - 310 10 19377 - - - - - - - - 315 15 19378 - - - - - - - - 320 20 19379 - - - - - - - - 325 25 19380 - - - - - - - - 335 35 19381 - - - - - - - - 340 40 19382 - - - - - - - - 345 45 19383 - - - - - - - - 350 50 19384 - - - - - - - - 355 55 19385 - - - - - - - - 365 65 19386 - - - - - - - - 370 70 19387 - - - - - - - - 375 75 19388 - - - - - - - - 380 80 19389 - - - - - - - - 385 85 19390 - - - - - - - - 395 95 19391} 19392do_execsql_test joinD-662 { 19393 SELECT t1.*, t2.*, t3.*, t4.* 19394 FROM t1 RIGHT JOIN t2 ON true 19395 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19396 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19397 WHERE t1.b=t2.b AND t2.x>0 19398 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19399} { 19400 6 106 206 306 106 6 206 6 - - 19401 12 112 212 312 112 12 212 12 - - 19402 18 118 218 318 118 18 218 18 - - 19403 24 124 224 324 124 24 224 24 - - 19404 30 130 230 330 130 30 230 30 330 30 19405 36 136 236 336 136 36 236 36 - - 19406 42 142 242 342 142 42 242 42 - - 19407 48 148 248 348 148 48 248 48 - - 19408 54 154 254 354 154 54 254 54 - - 19409 60 160 260 360 160 60 260 60 360 60 19410 66 166 266 366 166 66 266 66 - - 19411 72 172 272 372 172 72 272 72 - - 19412 78 178 278 378 178 78 278 78 - - 19413 84 184 284 384 184 84 284 84 - - 19414 90 190 290 390 190 90 290 90 390 90 19415} 19416do_execsql_test joinD-663 { 19417 SELECT t1.*, t2.*, t3.*, t4.* 19418 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19419 INNER JOIN t3 ON t1.c=t3.c 19420 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19421 WHERE t3.y>0 19422 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19423} { 19424 6 106 206 306 106 6 206 6 - - 19425 12 112 212 312 112 12 212 12 - - 19426 18 118 218 318 118 18 218 18 - - 19427 24 124 224 324 124 24 224 24 - - 19428 30 130 230 330 130 30 230 30 330 30 19429 36 136 236 336 136 36 236 36 - - 19430 42 142 242 342 142 42 242 42 - - 19431 48 148 248 348 148 48 248 48 - - 19432 54 154 254 354 154 54 254 54 - - 19433 60 160 260 360 160 60 260 60 360 60 19434 66 166 266 366 166 66 266 66 - - 19435 72 172 272 372 172 72 272 72 - - 19436 78 178 278 378 178 78 278 78 - - 19437 84 184 284 384 184 84 284 84 - - 19438 90 190 290 390 190 90 290 90 390 90 19439} 19440do_execsql_test joinD-664 { 19441 SELECT t1.*, t2.*, t3.*, t4.* 19442 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19443 INNER JOIN t3 ON t1.c=t3.c 19444 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19445 WHERE t3.y>0 OR t3.y IS NULL 19446 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19447} { 19448 6 106 206 306 106 6 206 6 - - 19449 12 112 212 312 112 12 212 12 - - 19450 18 118 218 318 118 18 218 18 - - 19451 24 124 224 324 124 24 224 24 - - 19452 30 130 230 330 130 30 230 30 330 30 19453 36 136 236 336 136 36 236 36 - - 19454 42 142 242 342 142 42 242 42 - - 19455 48 148 248 348 148 48 248 48 - - 19456 54 154 254 354 154 54 254 54 - - 19457 60 160 260 360 160 60 260 60 360 60 19458 66 166 266 366 166 66 266 66 - - 19459 72 172 272 372 172 72 272 72 - - 19460 78 178 278 378 178 78 278 78 - - 19461 84 184 284 384 184 84 284 84 - - 19462 90 190 290 390 190 90 290 90 390 90 19463 - - - - - - - - 300 0 19464 - - - - - - - - 305 5 19465 - - - - - - - - 310 10 19466 - - - - - - - - 315 15 19467 - - - - - - - - 320 20 19468 - - - - - - - - 325 25 19469 - - - - - - - - 335 35 19470 - - - - - - - - 340 40 19471 - - - - - - - - 345 45 19472 - - - - - - - - 350 50 19473 - - - - - - - - 355 55 19474 - - - - - - - - 365 65 19475 - - - - - - - - 370 70 19476 - - - - - - - - 375 75 19477 - - - - - - - - 380 80 19478 - - - - - - - - 385 85 19479 - - - - - - - - 395 95 19480} 19481do_execsql_test joinD-665 { 19482 SELECT t1.*, t2.*, t3.*, t4.* 19483 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19484 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19485 FULL JOIN t4 ON t1.d=t4.d 19486 WHERE t4.z>0 19487 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19488} { 19489 30 130 230 330 130 30 230 30 330 30 19490 60 160 260 360 160 60 260 60 360 60 19491 90 190 290 390 190 90 290 90 390 90 19492 - - - - - - - - 305 5 19493 - - - - - - - - 310 10 19494 - - - - - - - - 315 15 19495 - - - - - - - - 320 20 19496 - - - - - - - - 325 25 19497 - - - - - - - - 335 35 19498 - - - - - - - - 340 40 19499 - - - - - - - - 345 45 19500 - - - - - - - - 350 50 19501 - - - - - - - - 355 55 19502 - - - - - - - - 365 65 19503 - - - - - - - - 370 70 19504 - - - - - - - - 375 75 19505 - - - - - - - - 380 80 19506 - - - - - - - - 385 85 19507 - - - - - - - - 395 95 19508} 19509do_execsql_test joinD-666 { 19510 SELECT t1.*, t2.*, t3.*, t4.* 19511 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19512 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19513 FULL JOIN t4 ON t1.d=t4.d 19514 WHERE t4.z IS NULL OR t4.z>0 19515 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19516} { 19517 6 106 206 306 106 6 206 6 - - 19518 12 112 212 312 112 12 212 12 - - 19519 18 118 218 318 118 18 218 18 - - 19520 24 124 224 324 124 24 224 24 - - 19521 30 130 230 330 130 30 230 30 330 30 19522 36 136 236 336 136 36 236 36 - - 19523 42 142 242 342 142 42 242 42 - - 19524 48 148 248 348 148 48 248 48 - - 19525 54 154 254 354 154 54 254 54 - - 19526 60 160 260 360 160 60 260 60 360 60 19527 66 166 266 366 166 66 266 66 - - 19528 72 172 272 372 172 72 272 72 - - 19529 78 178 278 378 178 78 278 78 - - 19530 84 184 284 384 184 84 284 84 - - 19531 90 190 290 390 190 90 290 90 390 90 19532 - - - - - - - - 305 5 19533 - - - - - - - - 310 10 19534 - - - - - - - - 315 15 19535 - - - - - - - - 320 20 19536 - - - - - - - - 325 25 19537 - - - - - - - - 335 35 19538 - - - - - - - - 340 40 19539 - - - - - - - - 345 45 19540 - - - - - - - - 350 50 19541 - - - - - - - - 355 55 19542 - - - - - - - - 365 65 19543 - - - - - - - - 370 70 19544 - - - - - - - - 375 75 19545 - - - - - - - - 380 80 19546 - - - - - - - - 385 85 19547 - - - - - - - - 395 95 19548} 19549do_execsql_test joinD-667 { 19550 SELECT t1.*, t2.*, t3.*, t4.* 19551 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19552 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19553 FULL JOIN t4 ON t1.d=t4.d 19554 WHERE t2.x>0 AND t4.z>0 19555 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19556} { 19557 30 130 230 330 130 30 230 30 330 30 19558 60 160 260 360 160 60 260 60 360 60 19559 90 190 290 390 190 90 290 90 390 90 19560} 19561do_execsql_test joinD-668 { 19562 SELECT t1.*, t2.*, t3.*, t4.* 19563 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19564 INNER JOIN t3 ON t1.c=t3.c 19565 FULL JOIN t4 ON t1.d=t4.d 19566 WHERE t4.z>0 AND t3.y>0 19567 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19568} { 19569 30 130 230 330 130 30 230 30 330 30 19570 60 160 260 360 160 60 260 60 360 60 19571 90 190 290 390 190 90 290 90 390 90 19572} 19573do_execsql_test joinD-669 { 19574 SELECT t1.*, t2.*, t3.*, t4.* 19575 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19576 INNER JOIN t3 ON t1.c=t3.c 19577 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19578 WHERE t2.x>0 AND t3.y>0 19579 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19580} { 19581 6 106 206 306 106 6 206 6 - - 19582 12 112 212 312 112 12 212 12 - - 19583 18 118 218 318 118 18 218 18 - - 19584 24 124 224 324 124 24 224 24 - - 19585 30 130 230 330 130 30 230 30 330 30 19586 36 136 236 336 136 36 236 36 - - 19587 42 142 242 342 142 42 242 42 - - 19588 48 148 248 348 148 48 248 48 - - 19589 54 154 254 354 154 54 254 54 - - 19590 60 160 260 360 160 60 260 60 360 60 19591 66 166 266 366 166 66 266 66 - - 19592 72 172 272 372 172 72 272 72 - - 19593 78 178 278 378 178 78 278 78 - - 19594 84 184 284 384 184 84 284 84 - - 19595 90 190 290 390 190 90 290 90 390 90 19596} 19597do_execsql_test joinD-670 { 19598 SELECT t1.*, t2.*, t3.*, t4.* 19599 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19600 INNER JOIN t3 ON t1.c=t3.c 19601 FULL JOIN t4 ON t1.d=t4.d 19602 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 19603 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19604} { 19605 30 130 230 330 130 30 230 30 330 30 19606 60 160 260 360 160 60 260 60 360 60 19607 90 190 290 390 190 90 290 90 390 90 19608} 19609do_execsql_test joinD-671 { 19610 SELECT t1.*, t2.*, t3.*, t4.* 19611 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 19612 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 19613 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 19614 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19615} { 19616 6 106 206 306 106 6 206 6 - - 19617 12 112 212 312 112 12 212 12 - - 19618 18 118 218 318 118 18 218 18 - - 19619 24 124 224 324 124 24 224 24 - - 19620 30 130 230 330 130 30 230 30 330 30 19621 36 136 236 336 136 36 236 36 - - 19622 42 142 242 342 142 42 242 42 - - 19623 48 148 248 348 148 48 248 48 - - 19624 54 154 254 354 154 54 254 54 - - 19625 60 160 260 360 160 60 260 60 360 60 19626 66 166 266 366 166 66 266 66 - - 19627 72 172 272 372 172 72 272 72 - - 19628 78 178 278 378 178 78 278 78 - - 19629 84 184 284 384 184 84 284 84 - - 19630 90 190 290 390 190 90 290 90 390 90 19631 - - - - - - - - 300 0 19632 - - - - - - - - 305 5 19633 - - - - - - - - 310 10 19634 - - - - - - - - 315 15 19635 - - - - - - - - 320 20 19636 - - - - - - - - 325 25 19637 - - - - - - - - 335 35 19638 - - - - - - - - 340 40 19639 - - - - - - - - 345 45 19640 - - - - - - - - 350 50 19641 - - - - - - - - 355 55 19642 - - - - - - - - 365 65 19643 - - - - - - - - 370 70 19644 - - - - - - - - 375 75 19645 - - - - - - - - 380 80 19646 - - - - - - - - 385 85 19647 - - - - - - - - 395 95 19648} 19649do_execsql_test joinD-672 { 19650 SELECT t1.*, t2.*, t3.*, t4.* 19651 FROM t1 RIGHT JOIN t2 ON t2.x>0 19652 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 19653 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 19654 WHERE t1.b IS NOT DISTINCT FROM t2.b 19655 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19656} { 19657 6 106 206 306 106 6 206 6 - - 19658 12 112 212 312 112 12 212 12 - - 19659 18 118 218 318 118 18 218 18 - - 19660 24 124 224 324 124 24 224 24 - - 19661 30 130 230 330 130 30 230 30 330 30 19662 36 136 236 336 136 36 236 36 - - 19663 42 142 242 342 142 42 242 42 - - 19664 48 148 248 348 148 48 248 48 - - 19665 54 154 254 354 154 54 254 54 - - 19666 60 160 260 360 160 60 260 60 360 60 19667 66 166 266 366 166 66 266 66 - - 19668 72 172 272 372 172 72 272 72 - - 19669 78 178 278 378 178 78 278 78 - - 19670 84 184 284 384 184 84 284 84 - - 19671 90 190 290 390 190 90 290 90 390 90 19672 - - - - - - - - 300 0 19673 - - - - - - - - 305 5 19674 - - - - - - - - 310 10 19675 - - - - - - - - 320 20 19676 - - - - - - - - 325 25 19677 - - - - - - - - 335 35 19678 - - - - - - - - 340 40 19679 - - - - - - - - 350 50 19680 - - - - - - - - 355 55 19681 - - - - - - - - 365 65 19682 - - - - - - - - 370 70 19683 - - - - - - - - 380 80 19684 - - - - - - - - 385 85 19685 - - - - - - - - 395 95 19686} 19687do_execsql_test joinD-673 { 19688 SELECT t1.*, t2.*, t3.*, t4.* 19689 FROM t1 RIGHT JOIN t2 ON t2.x>0 19690 INNER JOIN t3 ON t3.y>0 19691 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 19692 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 19693 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19694} { 19695 6 106 206 306 106 6 206 6 - - 19696 12 112 212 312 112 12 212 12 - - 19697 18 118 218 318 118 18 218 18 - - 19698 24 124 224 324 124 24 224 24 - - 19699 30 130 230 330 130 30 230 30 330 30 19700 36 136 236 336 136 36 236 36 - - 19701 42 142 242 342 142 42 242 42 - - 19702 48 148 248 348 148 48 248 48 - - 19703 54 154 254 354 154 54 254 54 - - 19704 60 160 260 360 160 60 260 60 360 60 19705 66 166 266 366 166 66 266 66 - - 19706 72 172 272 372 172 72 272 72 - - 19707 78 178 278 378 178 78 278 78 - - 19708 84 184 284 384 184 84 284 84 - - 19709 90 190 290 390 190 90 290 90 390 90 19710 - - - - - - - - 300 0 19711} 19712do_execsql_test joinD-674 { 19713 SELECT t1.*, t2.*, t3.*, t4.* 19714 FROM t1 RIGHT JOIN t2 ON t2.x>0 19715 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 19716 FULL JOIN t4 ON t4.z>0 19717 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 19718 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19719} { 19720 30 130 230 330 130 30 230 30 330 30 19721 60 160 260 360 160 60 260 60 360 60 19722 90 190 290 390 190 90 290 90 390 90 19723} 19724do_execsql_test joinD-675 { 19725 SELECT t1.*, t2.*, t3.*, t4.* 19726 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 19727 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19728 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19729 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19730} { 19731 6 106 206 306 106 6 206 6 - - 19732 12 112 212 312 112 12 212 12 - - 19733 18 118 218 318 118 18 218 18 - - 19734 24 124 224 324 124 24 224 24 - - 19735 30 130 230 330 130 30 230 30 330 30 19736 36 136 236 336 136 36 236 36 - - 19737 42 142 242 342 142 42 242 42 - - 19738 48 148 248 348 148 48 248 48 - - 19739 54 154 254 354 154 54 254 54 - - 19740 60 160 260 360 160 60 260 60 360 60 19741 66 166 266 366 166 66 266 66 - - 19742 72 172 272 372 172 72 272 72 - - 19743 78 178 278 378 178 78 278 78 - - 19744 84 184 284 384 184 84 284 84 - - 19745 90 190 290 390 190 90 290 90 390 90 19746 - - - - - - - - 300 0 19747 - - - - - - - - 305 5 19748 - - - - - - - - 310 10 19749 - - - - - - - - 315 15 19750 - - - - - - - - 320 20 19751 - - - - - - - - 325 25 19752 - - - - - - - - 335 35 19753 - - - - - - - - 340 40 19754 - - - - - - - - 345 45 19755 - - - - - - - - 350 50 19756 - - - - - - - - 355 55 19757 - - - - - - - - 365 65 19758 - - - - - - - - 370 70 19759 - - - - - - - - 375 75 19760 - - - - - - - - 380 80 19761 - - - - - - - - 385 85 19762 - - - - - - - - 395 95 19763} 19764do_execsql_test joinD-676 { 19765 SELECT t1.*, t2.*, t3.*, t4.* 19766 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19767 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 19768 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19769 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19770} { 19771 6 106 206 306 106 6 206 6 - - 19772 12 112 212 312 112 12 212 12 - - 19773 18 118 218 318 118 18 218 18 - - 19774 24 124 224 324 124 24 224 24 - - 19775 30 130 230 330 130 30 230 30 330 30 19776 36 136 236 336 136 36 236 36 - - 19777 42 142 242 342 142 42 242 42 - - 19778 48 148 248 348 148 48 248 48 - - 19779 54 154 254 354 154 54 254 54 - - 19780 60 160 260 360 160 60 260 60 360 60 19781 66 166 266 366 166 66 266 66 - - 19782 72 172 272 372 172 72 272 72 - - 19783 78 178 278 378 178 78 278 78 - - 19784 84 184 284 384 184 84 284 84 - - 19785 90 190 290 390 190 90 290 90 390 90 19786 - - - - - - - - 300 0 19787 - - - - - - - - 305 5 19788 - - - - - - - - 310 10 19789 - - - - - - - - 315 15 19790 - - - - - - - - 320 20 19791 - - - - - - - - 325 25 19792 - - - - - - - - 335 35 19793 - - - - - - - - 340 40 19794 - - - - - - - - 345 45 19795 - - - - - - - - 350 50 19796 - - - - - - - - 355 55 19797 - - - - - - - - 365 65 19798 - - - - - - - - 370 70 19799 - - - - - - - - 375 75 19800 - - - - - - - - 380 80 19801 - - - - - - - - 385 85 19802 - - - - - - - - 395 95 19803} 19804do_execsql_test joinD-677 { 19805 SELECT t1.*, t2.*, t3.*, t4.* 19806 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19807 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 19808 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 19809 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19810} { 19811 10 110 210 310 110 10 - - 310 10 19812 20 120 220 320 120 20 - - 320 20 19813 30 130 230 330 130 30 230 30 330 30 19814 40 140 240 340 140 40 - - 340 40 19815 50 150 250 350 150 50 - - 350 50 19816 60 160 260 360 160 60 260 60 360 60 19817 70 170 270 370 170 70 - - 370 70 19818 80 180 280 380 180 80 - - 380 80 19819 90 190 290 390 190 90 290 90 390 90 19820} 19821do_execsql_test joinD-678 { 19822 SELECT t1.*, t2.*, t3.*, t4.* 19823 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 19824 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 19825 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 19826 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19827} { 19828 10 110 210 310 110 10 - - 310 10 19829 20 120 220 320 120 20 - - 320 20 19830 30 130 230 330 130 30 230 30 330 30 19831 40 140 240 340 140 40 - - 340 40 19832 50 150 250 350 150 50 - - 350 50 19833 60 160 260 360 160 60 260 60 360 60 19834 70 170 270 370 170 70 - - 370 70 19835 80 180 280 380 180 80 - - 380 80 19836 90 190 290 390 190 90 290 90 390 90 19837} 19838do_execsql_test joinD-679 { 19839 SELECT t1.*, t2.*, t3.*, t4.* 19840 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19841 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 19842 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 19843 WHERE t2.x>0 19844 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19845} { 19846 10 110 210 310 110 10 - - 310 10 19847 20 120 220 320 120 20 - - 320 20 19848 30 130 230 330 130 30 230 30 330 30 19849 40 140 240 340 140 40 - - 340 40 19850 50 150 250 350 150 50 - - 350 50 19851 60 160 260 360 160 60 260 60 360 60 19852 70 170 270 370 170 70 - - 370 70 19853 80 180 280 380 180 80 - - 380 80 19854 90 190 290 390 190 90 290 90 390 90 19855} 19856do_execsql_test joinD-680 { 19857 SELECT t1.*, t2.*, t3.*, t4.* 19858 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19859 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 19860 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 19861 WHERE (t2.x>0 OR t2.x IS NULL) 19862 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19863} { 19864 10 110 210 310 110 10 - - 310 10 19865 20 120 220 320 120 20 - - 320 20 19866 30 130 230 330 130 30 230 30 330 30 19867 40 140 240 340 140 40 - - 340 40 19868 50 150 250 350 150 50 - - 350 50 19869 60 160 260 360 160 60 260 60 360 60 19870 70 170 270 370 170 70 - - 370 70 19871 80 180 280 380 180 80 - - 380 80 19872 90 190 290 390 190 90 290 90 390 90 19873} 19874do_execsql_test joinD-681 { 19875 SELECT t1.*, t2.*, t3.*, t4.* 19876 FROM t1 RIGHT JOIN t2 ON true 19877 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 19878 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 19879 WHERE t1.b=t2.b AND t2.x>0 19880 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19881} { 19882 10 110 210 310 110 10 - - 310 10 19883 20 120 220 320 120 20 - - 320 20 19884 30 130 230 330 130 30 230 30 330 30 19885 40 140 240 340 140 40 - - 340 40 19886 50 150 250 350 150 50 - - 350 50 19887 60 160 260 360 160 60 260 60 360 60 19888 70 170 270 370 170 70 - - 370 70 19889 80 180 280 380 180 80 - - 380 80 19890 90 190 290 390 190 90 290 90 390 90 19891} 19892do_execsql_test joinD-682 { 19893 SELECT t1.*, t2.*, t3.*, t4.* 19894 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19895 LEFT JOIN t3 ON t1.c=t3.c 19896 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 19897 WHERE t3.y>0 19898 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19899} { 19900 30 130 230 330 130 30 230 30 330 30 19901 60 160 260 360 160 60 260 60 360 60 19902 90 190 290 390 190 90 290 90 390 90 19903} 19904do_execsql_test joinD-683 { 19905 SELECT t1.*, t2.*, t3.*, t4.* 19906 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19907 LEFT JOIN t3 ON t1.c=t3.c 19908 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 19909 WHERE t3.y>0 OR t3.y IS NULL 19910 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19911} { 19912 10 110 210 310 110 10 - - 310 10 19913 20 120 220 320 120 20 - - 320 20 19914 30 130 230 330 130 30 230 30 330 30 19915 40 140 240 340 140 40 - - 340 40 19916 50 150 250 350 150 50 - - 350 50 19917 60 160 260 360 160 60 260 60 360 60 19918 70 170 270 370 170 70 - - 370 70 19919 80 180 280 380 180 80 - - 380 80 19920 90 190 290 390 190 90 290 90 390 90 19921} 19922do_execsql_test joinD-684 { 19923 SELECT t1.*, t2.*, t3.*, t4.* 19924 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19925 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 19926 INNER JOIN t4 ON t1.d=t4.d 19927 WHERE t4.z>0 19928 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19929} { 19930 10 110 210 310 110 10 - - 310 10 19931 20 120 220 320 120 20 - - 320 20 19932 30 130 230 330 130 30 230 30 330 30 19933 40 140 240 340 140 40 - - 340 40 19934 50 150 250 350 150 50 - - 350 50 19935 60 160 260 360 160 60 260 60 360 60 19936 70 170 270 370 170 70 - - 370 70 19937 80 180 280 380 180 80 - - 380 80 19938 90 190 290 390 190 90 290 90 390 90 19939} 19940do_execsql_test joinD-685 { 19941 SELECT t1.*, t2.*, t3.*, t4.* 19942 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19943 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 19944 INNER JOIN t4 ON t1.d=t4.d 19945 WHERE t4.z IS NULL OR t4.z>0 19946 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19947} { 19948 10 110 210 310 110 10 - - 310 10 19949 20 120 220 320 120 20 - - 320 20 19950 30 130 230 330 130 30 230 30 330 30 19951 40 140 240 340 140 40 - - 340 40 19952 50 150 250 350 150 50 - - 350 50 19953 60 160 260 360 160 60 260 60 360 60 19954 70 170 270 370 170 70 - - 370 70 19955 80 180 280 380 180 80 - - 380 80 19956 90 190 290 390 190 90 290 90 390 90 19957} 19958do_execsql_test joinD-686 { 19959 SELECT t1.*, t2.*, t3.*, t4.* 19960 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19961 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 19962 INNER JOIN t4 ON t1.d=t4.d 19963 WHERE t2.x>0 AND t4.z>0 19964 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19965} { 19966 10 110 210 310 110 10 - - 310 10 19967 20 120 220 320 120 20 - - 320 20 19968 30 130 230 330 130 30 230 30 330 30 19969 40 140 240 340 140 40 - - 340 40 19970 50 150 250 350 150 50 - - 350 50 19971 60 160 260 360 160 60 260 60 360 60 19972 70 170 270 370 170 70 - - 370 70 19973 80 180 280 380 180 80 - - 380 80 19974 90 190 290 390 190 90 290 90 390 90 19975} 19976do_execsql_test joinD-687 { 19977 SELECT t1.*, t2.*, t3.*, t4.* 19978 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19979 LEFT JOIN t3 ON t1.c=t3.c 19980 INNER JOIN t4 ON t1.d=t4.d 19981 WHERE t4.z>0 AND t3.y>0 19982 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19983} { 19984 30 130 230 330 130 30 230 30 330 30 19985 60 160 260 360 160 60 260 60 360 60 19986 90 190 290 390 190 90 290 90 390 90 19987} 19988do_execsql_test joinD-688 { 19989 SELECT t1.*, t2.*, t3.*, t4.* 19990 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19991 LEFT JOIN t3 ON t1.c=t3.c 19992 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 19993 WHERE t2.x>0 AND t3.y>0 19994 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19995} { 19996 30 130 230 330 130 30 230 30 330 30 19997 60 160 260 360 160 60 260 60 360 60 19998 90 190 290 390 190 90 290 90 390 90 19999} 20000do_execsql_test joinD-689 { 20001 SELECT t1.*, t2.*, t3.*, t4.* 20002 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 20003 LEFT JOIN t3 ON t1.c=t3.c 20004 INNER JOIN t4 ON t1.d=t4.d 20005 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 20006 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20007} { 20008 30 130 230 330 130 30 230 30 330 30 20009 60 160 260 360 160 60 260 60 360 60 20010 90 190 290 390 190 90 290 90 390 90 20011} 20012do_execsql_test joinD-690 { 20013 SELECT t1.*, t2.*, t3.*, t4.* 20014 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 20015 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 20016 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 20017 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20018} { 20019 10 110 210 310 110 10 - - 310 10 20020 20 120 220 320 120 20 - - 320 20 20021 30 130 230 330 130 30 230 30 330 30 20022 40 140 240 340 140 40 - - 340 40 20023 50 150 250 350 150 50 - - 350 50 20024 60 160 260 360 160 60 260 60 360 60 20025 70 170 270 370 170 70 - - 370 70 20026 80 180 280 380 180 80 - - 380 80 20027 90 190 290 390 190 90 290 90 390 90 20028} 20029do_execsql_test joinD-691 { 20030 SELECT t1.*, t2.*, t3.*, t4.* 20031 FROM t1 RIGHT JOIN t2 ON t2.x>0 20032 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 20033 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 20034 WHERE t1.b IS NOT DISTINCT FROM t2.b 20035 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20036} { 20037 10 110 210 310 110 10 - - 310 10 20038 20 120 220 320 120 20 - - 320 20 20039 30 130 230 330 130 30 230 30 330 30 20040 40 140 240 340 140 40 - - 340 40 20041 50 150 250 350 150 50 - - 350 50 20042 60 160 260 360 160 60 260 60 360 60 20043 70 170 270 370 170 70 - - 370 70 20044 80 180 280 380 180 80 - - 380 80 20045 90 190 290 390 190 90 290 90 390 90 20046} 20047do_execsql_test joinD-692 { 20048 SELECT t1.*, t2.*, t3.*, t4.* 20049 FROM t1 RIGHT JOIN t2 ON t2.x>0 20050 LEFT JOIN t3 ON t3.y>0 20051 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 20052 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 20053 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20054} { 20055 30 130 230 330 130 30 230 30 330 30 20056 60 160 260 360 160 60 260 60 360 60 20057 90 190 290 390 190 90 290 90 390 90 20058} 20059do_execsql_test joinD-693 { 20060 SELECT t1.*, t2.*, t3.*, t4.* 20061 FROM t1 RIGHT JOIN t2 ON t2.x>0 20062 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 20063 INNER JOIN t4 ON t4.z>0 20064 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 20065 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20066} { 20067 10 110 210 310 110 10 - - 310 10 20068 20 120 220 320 120 20 - - 320 20 20069 30 130 230 330 130 30 230 30 330 30 20070 40 140 240 340 140 40 - - 340 40 20071 50 150 250 350 150 50 - - 350 50 20072 60 160 260 360 160 60 260 60 360 60 20073 70 170 270 370 170 70 - - 370 70 20074 80 180 280 380 180 80 - - 380 80 20075 90 190 290 390 190 90 290 90 390 90 20076} 20077do_execsql_test joinD-694 { 20078 SELECT t1.*, t2.*, t3.*, t4.* 20079 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 20080 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20081 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 20082 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20083} { 20084 10 110 210 310 110 10 - - 310 10 20085 20 120 220 320 120 20 - - 320 20 20086 30 130 230 330 130 30 230 30 330 30 20087 40 140 240 340 140 40 - - 340 40 20088 50 150 250 350 150 50 - - 350 50 20089 60 160 260 360 160 60 260 60 360 60 20090 70 170 270 370 170 70 - - 370 70 20091 80 180 280 380 180 80 - - 380 80 20092 90 190 290 390 190 90 290 90 390 90 20093} 20094do_execsql_test joinD-695 { 20095 SELECT t1.*, t2.*, t3.*, t4.* 20096 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 20097 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 20098 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 20099 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20100} { 20101 10 110 210 310 110 10 - - 310 10 20102 20 120 220 320 120 20 - - 320 20 20103 30 130 230 330 130 30 230 30 330 30 20104 40 140 240 340 140 40 - - 340 40 20105 50 150 250 350 150 50 - - 350 50 20106 60 160 260 360 160 60 260 60 360 60 20107 70 170 270 370 170 70 - - 370 70 20108 80 180 280 380 180 80 - - 380 80 20109 90 190 290 390 190 90 290 90 390 90 20110} 20111do_execsql_test joinD-696 { 20112 SELECT t1.*, t2.*, t3.*, t4.* 20113 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 20114 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20115 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20116 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20117} { 20118 2 102 202 302 102 2 - - - - 20119 4 104 204 304 104 4 - - - - 20120 6 106 206 306 106 6 206 6 - - 20121 8 108 208 308 108 8 - - - - 20122 10 110 210 310 110 10 - - 310 10 20123 12 112 212 312 112 12 212 12 - - 20124 14 114 214 314 114 14 - - - - 20125 16 116 216 316 116 16 - - - - 20126 18 118 218 318 118 18 218 18 - - 20127 20 120 220 320 120 20 - - 320 20 20128 22 122 222 322 122 22 - - - - 20129 24 124 224 324 124 24 224 24 - - 20130 26 126 226 326 126 26 - - - - 20131 28 128 228 328 128 28 - - - - 20132 30 130 230 330 130 30 230 30 330 30 20133 32 132 232 332 132 32 - - - - 20134 34 134 234 334 134 34 - - - - 20135 36 136 236 336 136 36 236 36 - - 20136 38 138 238 338 138 38 - - - - 20137 40 140 240 340 140 40 - - 340 40 20138 42 142 242 342 142 42 242 42 - - 20139 44 144 244 344 144 44 - - - - 20140 46 146 246 346 146 46 - - - - 20141 48 148 248 348 148 48 248 48 - - 20142 50 150 250 350 150 50 - - 350 50 20143 52 152 252 352 152 52 - - - - 20144 54 154 254 354 154 54 254 54 - - 20145 56 156 256 356 156 56 - - - - 20146 58 158 258 358 158 58 - - - - 20147 60 160 260 360 160 60 260 60 360 60 20148 62 162 262 362 162 62 - - - - 20149 64 164 264 364 164 64 - - - - 20150 66 166 266 366 166 66 266 66 - - 20151 68 168 268 368 168 68 - - - - 20152 70 170 270 370 170 70 - - 370 70 20153 72 172 272 372 172 72 272 72 - - 20154 74 174 274 374 174 74 - - - - 20155 76 176 276 376 176 76 - - - - 20156 78 178 278 378 178 78 278 78 - - 20157 80 180 280 380 180 80 - - 380 80 20158 82 182 282 382 182 82 - - - - 20159 84 184 284 384 184 84 284 84 - - 20160 86 186 286 386 186 86 - - - - 20161 88 188 288 388 188 88 - - - - 20162 90 190 290 390 190 90 290 90 390 90 20163 92 192 292 392 192 92 - - - - 20164 94 194 294 394 194 94 - - - - 20165 - - - - 100 0 - - - - 20166} 20167do_execsql_test joinD-697 { 20168 SELECT t1.*, t2.*, t3.*, t4.* 20169 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 20170 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20171 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20172 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20173} { 20174 2 102 202 302 102 2 - - - - 20175 4 104 204 304 104 4 - - - - 20176 6 106 206 306 106 6 206 6 - - 20177 8 108 208 308 108 8 - - - - 20178 10 110 210 310 110 10 - - 310 10 20179 12 112 212 312 112 12 212 12 - - 20180 14 114 214 314 114 14 - - - - 20181 16 116 216 316 116 16 - - - - 20182 18 118 218 318 118 18 218 18 - - 20183 20 120 220 320 120 20 - - 320 20 20184 22 122 222 322 122 22 - - - - 20185 24 124 224 324 124 24 224 24 - - 20186 26 126 226 326 126 26 - - - - 20187 28 128 228 328 128 28 - - - - 20188 30 130 230 330 130 30 230 30 330 30 20189 32 132 232 332 132 32 - - - - 20190 34 134 234 334 134 34 - - - - 20191 36 136 236 336 136 36 236 36 - - 20192 38 138 238 338 138 38 - - - - 20193 40 140 240 340 140 40 - - 340 40 20194 42 142 242 342 142 42 242 42 - - 20195 44 144 244 344 144 44 - - - - 20196 46 146 246 346 146 46 - - - - 20197 48 148 248 348 148 48 248 48 - - 20198 50 150 250 350 150 50 - - 350 50 20199 52 152 252 352 152 52 - - - - 20200 54 154 254 354 154 54 254 54 - - 20201 56 156 256 356 156 56 - - - - 20202 58 158 258 358 158 58 - - - - 20203 60 160 260 360 160 60 260 60 360 60 20204 62 162 262 362 162 62 - - - - 20205 64 164 264 364 164 64 - - - - 20206 66 166 266 366 166 66 266 66 - - 20207 68 168 268 368 168 68 - - - - 20208 70 170 270 370 170 70 - - 370 70 20209 72 172 272 372 172 72 272 72 - - 20210 74 174 274 374 174 74 - - - - 20211 76 176 276 376 176 76 - - - - 20212 78 178 278 378 178 78 278 78 - - 20213 80 180 280 380 180 80 - - 380 80 20214 82 182 282 382 182 82 - - - - 20215 84 184 284 384 184 84 284 84 - - 20216 86 186 286 386 186 86 - - - - 20217 88 188 288 388 188 88 - - - - 20218 90 190 290 390 190 90 290 90 390 90 20219 92 192 292 392 192 92 - - - - 20220 94 194 294 394 194 94 - - - - 20221 - - - - 100 0 - - - - 20222} 20223do_execsql_test joinD-698 { 20224 SELECT t1.*, t2.*, t3.*, t4.* 20225 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 20226 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20227 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20228 WHERE t2.x>0 20229 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20230} { 20231 2 102 202 302 102 2 - - - - 20232 4 104 204 304 104 4 - - - - 20233 6 106 206 306 106 6 206 6 - - 20234 8 108 208 308 108 8 - - - - 20235 10 110 210 310 110 10 - - 310 10 20236 12 112 212 312 112 12 212 12 - - 20237 14 114 214 314 114 14 - - - - 20238 16 116 216 316 116 16 - - - - 20239 18 118 218 318 118 18 218 18 - - 20240 20 120 220 320 120 20 - - 320 20 20241 22 122 222 322 122 22 - - - - 20242 24 124 224 324 124 24 224 24 - - 20243 26 126 226 326 126 26 - - - - 20244 28 128 228 328 128 28 - - - - 20245 30 130 230 330 130 30 230 30 330 30 20246 32 132 232 332 132 32 - - - - 20247 34 134 234 334 134 34 - - - - 20248 36 136 236 336 136 36 236 36 - - 20249 38 138 238 338 138 38 - - - - 20250 40 140 240 340 140 40 - - 340 40 20251 42 142 242 342 142 42 242 42 - - 20252 44 144 244 344 144 44 - - - - 20253 46 146 246 346 146 46 - - - - 20254 48 148 248 348 148 48 248 48 - - 20255 50 150 250 350 150 50 - - 350 50 20256 52 152 252 352 152 52 - - - - 20257 54 154 254 354 154 54 254 54 - - 20258 56 156 256 356 156 56 - - - - 20259 58 158 258 358 158 58 - - - - 20260 60 160 260 360 160 60 260 60 360 60 20261 62 162 262 362 162 62 - - - - 20262 64 164 264 364 164 64 - - - - 20263 66 166 266 366 166 66 266 66 - - 20264 68 168 268 368 168 68 - - - - 20265 70 170 270 370 170 70 - - 370 70 20266 72 172 272 372 172 72 272 72 - - 20267 74 174 274 374 174 74 - - - - 20268 76 176 276 376 176 76 - - - - 20269 78 178 278 378 178 78 278 78 - - 20270 80 180 280 380 180 80 - - 380 80 20271 82 182 282 382 182 82 - - - - 20272 84 184 284 384 184 84 284 84 - - 20273 86 186 286 386 186 86 - - - - 20274 88 188 288 388 188 88 - - - - 20275 90 190 290 390 190 90 290 90 390 90 20276 92 192 292 392 192 92 - - - - 20277 94 194 294 394 194 94 - - - - 20278} 20279do_execsql_test joinD-699 { 20280 SELECT t1.*, t2.*, t3.*, t4.* 20281 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 20282 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20283 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20284 WHERE (t2.x>0 OR t2.x IS NULL) 20285 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20286} { 20287 2 102 202 302 102 2 - - - - 20288 4 104 204 304 104 4 - - - - 20289 6 106 206 306 106 6 206 6 - - 20290 8 108 208 308 108 8 - - - - 20291 10 110 210 310 110 10 - - 310 10 20292 12 112 212 312 112 12 212 12 - - 20293 14 114 214 314 114 14 - - - - 20294 16 116 216 316 116 16 - - - - 20295 18 118 218 318 118 18 218 18 - - 20296 20 120 220 320 120 20 - - 320 20 20297 22 122 222 322 122 22 - - - - 20298 24 124 224 324 124 24 224 24 - - 20299 26 126 226 326 126 26 - - - - 20300 28 128 228 328 128 28 - - - - 20301 30 130 230 330 130 30 230 30 330 30 20302 32 132 232 332 132 32 - - - - 20303 34 134 234 334 134 34 - - - - 20304 36 136 236 336 136 36 236 36 - - 20305 38 138 238 338 138 38 - - - - 20306 40 140 240 340 140 40 - - 340 40 20307 42 142 242 342 142 42 242 42 - - 20308 44 144 244 344 144 44 - - - - 20309 46 146 246 346 146 46 - - - - 20310 48 148 248 348 148 48 248 48 - - 20311 50 150 250 350 150 50 - - 350 50 20312 52 152 252 352 152 52 - - - - 20313 54 154 254 354 154 54 254 54 - - 20314 56 156 256 356 156 56 - - - - 20315 58 158 258 358 158 58 - - - - 20316 60 160 260 360 160 60 260 60 360 60 20317 62 162 262 362 162 62 - - - - 20318 64 164 264 364 164 64 - - - - 20319 66 166 266 366 166 66 266 66 - - 20320 68 168 268 368 168 68 - - - - 20321 70 170 270 370 170 70 - - 370 70 20322 72 172 272 372 172 72 272 72 - - 20323 74 174 274 374 174 74 - - - - 20324 76 176 276 376 176 76 - - - - 20325 78 178 278 378 178 78 278 78 - - 20326 80 180 280 380 180 80 - - 380 80 20327 82 182 282 382 182 82 - - - - 20328 84 184 284 384 184 84 284 84 - - 20329 86 186 286 386 186 86 - - - - 20330 88 188 288 388 188 88 - - - - 20331 90 190 290 390 190 90 290 90 390 90 20332 92 192 292 392 192 92 - - - - 20333 94 194 294 394 194 94 - - - - 20334} 20335do_execsql_test joinD-700 { 20336 SELECT t1.*, t2.*, t3.*, t4.* 20337 FROM t1 RIGHT JOIN t2 ON true 20338 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20339 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20340 WHERE t1.b=t2.b AND t2.x>0 20341 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20342} { 20343 2 102 202 302 102 2 - - - - 20344 4 104 204 304 104 4 - - - - 20345 6 106 206 306 106 6 206 6 - - 20346 8 108 208 308 108 8 - - - - 20347 10 110 210 310 110 10 - - 310 10 20348 12 112 212 312 112 12 212 12 - - 20349 14 114 214 314 114 14 - - - - 20350 16 116 216 316 116 16 - - - - 20351 18 118 218 318 118 18 218 18 - - 20352 20 120 220 320 120 20 - - 320 20 20353 22 122 222 322 122 22 - - - - 20354 24 124 224 324 124 24 224 24 - - 20355 26 126 226 326 126 26 - - - - 20356 28 128 228 328 128 28 - - - - 20357 30 130 230 330 130 30 230 30 330 30 20358 32 132 232 332 132 32 - - - - 20359 34 134 234 334 134 34 - - - - 20360 36 136 236 336 136 36 236 36 - - 20361 38 138 238 338 138 38 - - - - 20362 40 140 240 340 140 40 - - 340 40 20363 42 142 242 342 142 42 242 42 - - 20364 44 144 244 344 144 44 - - - - 20365 46 146 246 346 146 46 - - - - 20366 48 148 248 348 148 48 248 48 - - 20367 50 150 250 350 150 50 - - 350 50 20368 52 152 252 352 152 52 - - - - 20369 54 154 254 354 154 54 254 54 - - 20370 56 156 256 356 156 56 - - - - 20371 58 158 258 358 158 58 - - - - 20372 60 160 260 360 160 60 260 60 360 60 20373 62 162 262 362 162 62 - - - - 20374 64 164 264 364 164 64 - - - - 20375 66 166 266 366 166 66 266 66 - - 20376 68 168 268 368 168 68 - - - - 20377 70 170 270 370 170 70 - - 370 70 20378 72 172 272 372 172 72 272 72 - - 20379 74 174 274 374 174 74 - - - - 20380 76 176 276 376 176 76 - - - - 20381 78 178 278 378 178 78 278 78 - - 20382 80 180 280 380 180 80 - - 380 80 20383 82 182 282 382 182 82 - - - - 20384 84 184 284 384 184 84 284 84 - - 20385 86 186 286 386 186 86 - - - - 20386 88 188 288 388 188 88 - - - - 20387 90 190 290 390 190 90 290 90 390 90 20388 92 192 292 392 192 92 - - - - 20389 94 194 294 394 194 94 - - - - 20390} 20391do_execsql_test joinD-701 { 20392 SELECT t1.*, t2.*, t3.*, t4.* 20393 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 20394 LEFT JOIN t3 ON t1.c=t3.c 20395 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20396 WHERE t3.y>0 20397 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20398} { 20399 6 106 206 306 106 6 206 6 - - 20400 12 112 212 312 112 12 212 12 - - 20401 18 118 218 318 118 18 218 18 - - 20402 24 124 224 324 124 24 224 24 - - 20403 30 130 230 330 130 30 230 30 330 30 20404 36 136 236 336 136 36 236 36 - - 20405 42 142 242 342 142 42 242 42 - - 20406 48 148 248 348 148 48 248 48 - - 20407 54 154 254 354 154 54 254 54 - - 20408 60 160 260 360 160 60 260 60 360 60 20409 66 166 266 366 166 66 266 66 - - 20410 72 172 272 372 172 72 272 72 - - 20411 78 178 278 378 178 78 278 78 - - 20412 84 184 284 384 184 84 284 84 - - 20413 90 190 290 390 190 90 290 90 390 90 20414} 20415do_execsql_test joinD-702 { 20416 SELECT t1.*, t2.*, t3.*, t4.* 20417 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 20418 LEFT JOIN t3 ON t1.c=t3.c 20419 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20420 WHERE t3.y>0 OR t3.y IS NULL 20421 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20422} { 20423 2 102 202 302 102 2 - - - - 20424 4 104 204 304 104 4 - - - - 20425 6 106 206 306 106 6 206 6 - - 20426 8 108 208 308 108 8 - - - - 20427 10 110 210 310 110 10 - - 310 10 20428 12 112 212 312 112 12 212 12 - - 20429 14 114 214 314 114 14 - - - - 20430 16 116 216 316 116 16 - - - - 20431 18 118 218 318 118 18 218 18 - - 20432 20 120 220 320 120 20 - - 320 20 20433 22 122 222 322 122 22 - - - - 20434 24 124 224 324 124 24 224 24 - - 20435 26 126 226 326 126 26 - - - - 20436 28 128 228 328 128 28 - - - - 20437 30 130 230 330 130 30 230 30 330 30 20438 32 132 232 332 132 32 - - - - 20439 34 134 234 334 134 34 - - - - 20440 36 136 236 336 136 36 236 36 - - 20441 38 138 238 338 138 38 - - - - 20442 40 140 240 340 140 40 - - 340 40 20443 42 142 242 342 142 42 242 42 - - 20444 44 144 244 344 144 44 - - - - 20445 46 146 246 346 146 46 - - - - 20446 48 148 248 348 148 48 248 48 - - 20447 50 150 250 350 150 50 - - 350 50 20448 52 152 252 352 152 52 - - - - 20449 54 154 254 354 154 54 254 54 - - 20450 56 156 256 356 156 56 - - - - 20451 58 158 258 358 158 58 - - - - 20452 60 160 260 360 160 60 260 60 360 60 20453 62 162 262 362 162 62 - - - - 20454 64 164 264 364 164 64 - - - - 20455 66 166 266 366 166 66 266 66 - - 20456 68 168 268 368 168 68 - - - - 20457 70 170 270 370 170 70 - - 370 70 20458 72 172 272 372 172 72 272 72 - - 20459 74 174 274 374 174 74 - - - - 20460 76 176 276 376 176 76 - - - - 20461 78 178 278 378 178 78 278 78 - - 20462 80 180 280 380 180 80 - - 380 80 20463 82 182 282 382 182 82 - - - - 20464 84 184 284 384 184 84 284 84 - - 20465 86 186 286 386 186 86 - - - - 20466 88 188 288 388 188 88 - - - - 20467 90 190 290 390 190 90 290 90 390 90 20468 92 192 292 392 192 92 - - - - 20469 94 194 294 394 194 94 - - - - 20470 - - - - 100 0 - - - - 20471} 20472do_execsql_test joinD-703 { 20473 SELECT t1.*, t2.*, t3.*, t4.* 20474 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 20475 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20476 LEFT JOIN t4 ON t1.d=t4.d 20477 WHERE t4.z>0 20478 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20479} { 20480 10 110 210 310 110 10 - - 310 10 20481 20 120 220 320 120 20 - - 320 20 20482 30 130 230 330 130 30 230 30 330 30 20483 40 140 240 340 140 40 - - 340 40 20484 50 150 250 350 150 50 - - 350 50 20485 60 160 260 360 160 60 260 60 360 60 20486 70 170 270 370 170 70 - - 370 70 20487 80 180 280 380 180 80 - - 380 80 20488 90 190 290 390 190 90 290 90 390 90 20489} 20490do_execsql_test joinD-704 { 20491 SELECT t1.*, t2.*, t3.*, t4.* 20492 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 20493 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20494 LEFT JOIN t4 ON t1.d=t4.d 20495 WHERE t4.z IS NULL OR t4.z>0 20496 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20497} { 20498 2 102 202 302 102 2 - - - - 20499 4 104 204 304 104 4 - - - - 20500 6 106 206 306 106 6 206 6 - - 20501 8 108 208 308 108 8 - - - - 20502 10 110 210 310 110 10 - - 310 10 20503 12 112 212 312 112 12 212 12 - - 20504 14 114 214 314 114 14 - - - - 20505 16 116 216 316 116 16 - - - - 20506 18 118 218 318 118 18 218 18 - - 20507 20 120 220 320 120 20 - - 320 20 20508 22 122 222 322 122 22 - - - - 20509 24 124 224 324 124 24 224 24 - - 20510 26 126 226 326 126 26 - - - - 20511 28 128 228 328 128 28 - - - - 20512 30 130 230 330 130 30 230 30 330 30 20513 32 132 232 332 132 32 - - - - 20514 34 134 234 334 134 34 - - - - 20515 36 136 236 336 136 36 236 36 - - 20516 38 138 238 338 138 38 - - - - 20517 40 140 240 340 140 40 - - 340 40 20518 42 142 242 342 142 42 242 42 - - 20519 44 144 244 344 144 44 - - - - 20520 46 146 246 346 146 46 - - - - 20521 48 148 248 348 148 48 248 48 - - 20522 50 150 250 350 150 50 - - 350 50 20523 52 152 252 352 152 52 - - - - 20524 54 154 254 354 154 54 254 54 - - 20525 56 156 256 356 156 56 - - - - 20526 58 158 258 358 158 58 - - - - 20527 60 160 260 360 160 60 260 60 360 60 20528 62 162 262 362 162 62 - - - - 20529 64 164 264 364 164 64 - - - - 20530 66 166 266 366 166 66 266 66 - - 20531 68 168 268 368 168 68 - - - - 20532 70 170 270 370 170 70 - - 370 70 20533 72 172 272 372 172 72 272 72 - - 20534 74 174 274 374 174 74 - - - - 20535 76 176 276 376 176 76 - - - - 20536 78 178 278 378 178 78 278 78 - - 20537 80 180 280 380 180 80 - - 380 80 20538 82 182 282 382 182 82 - - - - 20539 84 184 284 384 184 84 284 84 - - 20540 86 186 286 386 186 86 - - - - 20541 88 188 288 388 188 88 - - - - 20542 90 190 290 390 190 90 290 90 390 90 20543 92 192 292 392 192 92 - - - - 20544 94 194 294 394 194 94 - - - - 20545 - - - - 100 0 - - - - 20546} 20547do_execsql_test joinD-705 { 20548 SELECT t1.*, t2.*, t3.*, t4.* 20549 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 20550 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20551 LEFT JOIN t4 ON t1.d=t4.d 20552 WHERE t2.x>0 AND t4.z>0 20553 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20554} { 20555 10 110 210 310 110 10 - - 310 10 20556 20 120 220 320 120 20 - - 320 20 20557 30 130 230 330 130 30 230 30 330 30 20558 40 140 240 340 140 40 - - 340 40 20559 50 150 250 350 150 50 - - 350 50 20560 60 160 260 360 160 60 260 60 360 60 20561 70 170 270 370 170 70 - - 370 70 20562 80 180 280 380 180 80 - - 380 80 20563 90 190 290 390 190 90 290 90 390 90 20564} 20565do_execsql_test joinD-706 { 20566 SELECT t1.*, t2.*, t3.*, t4.* 20567 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 20568 LEFT JOIN t3 ON t1.c=t3.c 20569 LEFT JOIN t4 ON t1.d=t4.d 20570 WHERE t4.z>0 AND t3.y>0 20571 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20572} { 20573 30 130 230 330 130 30 230 30 330 30 20574 60 160 260 360 160 60 260 60 360 60 20575 90 190 290 390 190 90 290 90 390 90 20576} 20577do_execsql_test joinD-707 { 20578 SELECT t1.*, t2.*, t3.*, t4.* 20579 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 20580 LEFT JOIN t3 ON t1.c=t3.c 20581 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20582 WHERE t2.x>0 AND t3.y>0 20583 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20584} { 20585 6 106 206 306 106 6 206 6 - - 20586 12 112 212 312 112 12 212 12 - - 20587 18 118 218 318 118 18 218 18 - - 20588 24 124 224 324 124 24 224 24 - - 20589 30 130 230 330 130 30 230 30 330 30 20590 36 136 236 336 136 36 236 36 - - 20591 42 142 242 342 142 42 242 42 - - 20592 48 148 248 348 148 48 248 48 - - 20593 54 154 254 354 154 54 254 54 - - 20594 60 160 260 360 160 60 260 60 360 60 20595 66 166 266 366 166 66 266 66 - - 20596 72 172 272 372 172 72 272 72 - - 20597 78 178 278 378 178 78 278 78 - - 20598 84 184 284 384 184 84 284 84 - - 20599 90 190 290 390 190 90 290 90 390 90 20600} 20601do_execsql_test joinD-708 { 20602 SELECT t1.*, t2.*, t3.*, t4.* 20603 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 20604 LEFT JOIN t3 ON t1.c=t3.c 20605 LEFT JOIN t4 ON t1.d=t4.d 20606 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 20607 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20608} { 20609 30 130 230 330 130 30 230 30 330 30 20610 60 160 260 360 160 60 260 60 360 60 20611 90 190 290 390 190 90 290 90 390 90 20612} 20613do_execsql_test joinD-709 { 20614 SELECT t1.*, t2.*, t3.*, t4.* 20615 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 20616 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 20617 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 20618 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20619} { 20620 2 102 202 302 102 2 - - - - 20621 4 104 204 304 104 4 - - - - 20622 6 106 206 306 106 6 206 6 - - 20623 8 108 208 308 108 8 - - - - 20624 10 110 210 310 110 10 - - 310 10 20625 12 112 212 312 112 12 212 12 - - 20626 14 114 214 314 114 14 - - - - 20627 16 116 216 316 116 16 - - - - 20628 18 118 218 318 118 18 218 18 - - 20629 20 120 220 320 120 20 - - 320 20 20630 22 122 222 322 122 22 - - - - 20631 24 124 224 324 124 24 224 24 - - 20632 26 126 226 326 126 26 - - - - 20633 28 128 228 328 128 28 - - - - 20634 30 130 230 330 130 30 230 30 330 30 20635 32 132 232 332 132 32 - - - - 20636 34 134 234 334 134 34 - - - - 20637 36 136 236 336 136 36 236 36 - - 20638 38 138 238 338 138 38 - - - - 20639 40 140 240 340 140 40 - - 340 40 20640 42 142 242 342 142 42 242 42 - - 20641 44 144 244 344 144 44 - - - - 20642 46 146 246 346 146 46 - - - - 20643 48 148 248 348 148 48 248 48 - - 20644 50 150 250 350 150 50 - - 350 50 20645 52 152 252 352 152 52 - - - - 20646 54 154 254 354 154 54 254 54 - - 20647 56 156 256 356 156 56 - - - - 20648 58 158 258 358 158 58 - - - - 20649 60 160 260 360 160 60 260 60 360 60 20650 62 162 262 362 162 62 - - - - 20651 64 164 264 364 164 64 - - - - 20652 66 166 266 366 166 66 266 66 - - 20653 68 168 268 368 168 68 - - - - 20654 70 170 270 370 170 70 - - 370 70 20655 72 172 272 372 172 72 272 72 - - 20656 74 174 274 374 174 74 - - - - 20657 76 176 276 376 176 76 - - - - 20658 78 178 278 378 178 78 278 78 - - 20659 80 180 280 380 180 80 - - 380 80 20660 82 182 282 382 182 82 - - - - 20661 84 184 284 384 184 84 284 84 - - 20662 86 186 286 386 186 86 - - - - 20663 88 188 288 388 188 88 - - - - 20664 90 190 290 390 190 90 290 90 390 90 20665 92 192 292 392 192 92 - - - - 20666 94 194 294 394 194 94 - - - - 20667 - - - - 100 0 - - - - 20668} 20669do_execsql_test joinD-710 { 20670 SELECT t1.*, t2.*, t3.*, t4.* 20671 FROM t1 RIGHT JOIN t2 ON t2.x>0 20672 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 20673 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 20674 WHERE t1.b IS NOT DISTINCT FROM t2.b 20675 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20676} { 20677 2 102 202 302 102 2 - - - - 20678 4 104 204 304 104 4 - - - - 20679 6 106 206 306 106 6 206 6 - - 20680 8 108 208 308 108 8 - - - - 20681 10 110 210 310 110 10 - - 310 10 20682 12 112 212 312 112 12 212 12 - - 20683 14 114 214 314 114 14 - - - - 20684 16 116 216 316 116 16 - - - - 20685 18 118 218 318 118 18 218 18 - - 20686 20 120 220 320 120 20 - - 320 20 20687 22 122 222 322 122 22 - - - - 20688 24 124 224 324 124 24 224 24 - - 20689 26 126 226 326 126 26 - - - - 20690 28 128 228 328 128 28 - - - - 20691 30 130 230 330 130 30 230 30 330 30 20692 32 132 232 332 132 32 - - - - 20693 34 134 234 334 134 34 - - - - 20694 36 136 236 336 136 36 236 36 - - 20695 38 138 238 338 138 38 - - - - 20696 40 140 240 340 140 40 - - 340 40 20697 42 142 242 342 142 42 242 42 - - 20698 44 144 244 344 144 44 - - - - 20699 46 146 246 346 146 46 - - - - 20700 48 148 248 348 148 48 248 48 - - 20701 50 150 250 350 150 50 - - 350 50 20702 52 152 252 352 152 52 - - - - 20703 54 154 254 354 154 54 254 54 - - 20704 56 156 256 356 156 56 - - - - 20705 58 158 258 358 158 58 - - - - 20706 60 160 260 360 160 60 260 60 360 60 20707 62 162 262 362 162 62 - - - - 20708 64 164 264 364 164 64 - - - - 20709 66 166 266 366 166 66 266 66 - - 20710 68 168 268 368 168 68 - - - - 20711 70 170 270 370 170 70 - - 370 70 20712 72 172 272 372 172 72 272 72 - - 20713 74 174 274 374 174 74 - - - - 20714 76 176 276 376 176 76 - - - - 20715 78 178 278 378 178 78 278 78 - - 20716 80 180 280 380 180 80 - - 380 80 20717 82 182 282 382 182 82 - - - - 20718 84 184 284 384 184 84 284 84 - - 20719 86 186 286 386 186 86 - - - - 20720 88 188 288 388 188 88 - - - - 20721 90 190 290 390 190 90 290 90 390 90 20722 92 192 292 392 192 92 - - - - 20723 94 194 294 394 194 94 - - - - 20724} 20725do_execsql_test joinD-711 { 20726 SELECT t1.*, t2.*, t3.*, t4.* 20727 FROM t1 RIGHT JOIN t2 ON t2.x>0 20728 LEFT JOIN t3 ON t3.y>0 20729 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 20730 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 20731 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20732} { 20733 6 106 206 306 106 6 206 6 - - 20734 12 112 212 312 112 12 212 12 - - 20735 18 118 218 318 118 18 218 18 - - 20736 24 124 224 324 124 24 224 24 - - 20737 30 130 230 330 130 30 230 30 330 30 20738 36 136 236 336 136 36 236 36 - - 20739 42 142 242 342 142 42 242 42 - - 20740 48 148 248 348 148 48 248 48 - - 20741 54 154 254 354 154 54 254 54 - - 20742 60 160 260 360 160 60 260 60 360 60 20743 66 166 266 366 166 66 266 66 - - 20744 72 172 272 372 172 72 272 72 - - 20745 78 178 278 378 178 78 278 78 - - 20746 84 184 284 384 184 84 284 84 - - 20747 90 190 290 390 190 90 290 90 390 90 20748} 20749do_execsql_test joinD-712 { 20750 SELECT t1.*, t2.*, t3.*, t4.* 20751 FROM t1 RIGHT JOIN t2 ON t2.x>0 20752 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 20753 LEFT JOIN t4 ON t4.z>0 20754 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 20755 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20756} { 20757 10 110 210 310 110 10 - - 310 10 20758 20 120 220 320 120 20 - - 320 20 20759 30 130 230 330 130 30 230 30 330 30 20760 40 140 240 340 140 40 - - 340 40 20761 50 150 250 350 150 50 - - 350 50 20762 60 160 260 360 160 60 260 60 360 60 20763 70 170 270 370 170 70 - - 370 70 20764 80 180 280 380 180 80 - - 380 80 20765 90 190 290 390 190 90 290 90 390 90 20766} 20767do_execsql_test joinD-713 { 20768 SELECT t1.*, t2.*, t3.*, t4.* 20769 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 20770 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20771 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20772 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20773} { 20774 2 102 202 302 102 2 - - - - 20775 4 104 204 304 104 4 - - - - 20776 6 106 206 306 106 6 206 6 - - 20777 8 108 208 308 108 8 - - - - 20778 10 110 210 310 110 10 - - 310 10 20779 12 112 212 312 112 12 212 12 - - 20780 14 114 214 314 114 14 - - - - 20781 16 116 216 316 116 16 - - - - 20782 18 118 218 318 118 18 218 18 - - 20783 20 120 220 320 120 20 - - 320 20 20784 22 122 222 322 122 22 - - - - 20785 24 124 224 324 124 24 224 24 - - 20786 26 126 226 326 126 26 - - - - 20787 28 128 228 328 128 28 - - - - 20788 30 130 230 330 130 30 230 30 330 30 20789 32 132 232 332 132 32 - - - - 20790 34 134 234 334 134 34 - - - - 20791 36 136 236 336 136 36 236 36 - - 20792 38 138 238 338 138 38 - - - - 20793 40 140 240 340 140 40 - - 340 40 20794 42 142 242 342 142 42 242 42 - - 20795 44 144 244 344 144 44 - - - - 20796 46 146 246 346 146 46 - - - - 20797 48 148 248 348 148 48 248 48 - - 20798 50 150 250 350 150 50 - - 350 50 20799 52 152 252 352 152 52 - - - - 20800 54 154 254 354 154 54 254 54 - - 20801 56 156 256 356 156 56 - - - - 20802 58 158 258 358 158 58 - - - - 20803 60 160 260 360 160 60 260 60 360 60 20804 62 162 262 362 162 62 - - - - 20805 64 164 264 364 164 64 - - - - 20806 66 166 266 366 166 66 266 66 - - 20807 68 168 268 368 168 68 - - - - 20808 70 170 270 370 170 70 - - 370 70 20809 72 172 272 372 172 72 272 72 - - 20810 74 174 274 374 174 74 - - - - 20811 76 176 276 376 176 76 - - - - 20812 78 178 278 378 178 78 278 78 - - 20813 80 180 280 380 180 80 - - 380 80 20814 82 182 282 382 182 82 - - - - 20815 84 184 284 384 184 84 284 84 - - 20816 86 186 286 386 186 86 - - - - 20817 88 188 288 388 188 88 - - - - 20818 90 190 290 390 190 90 290 90 390 90 20819 92 192 292 392 192 92 - - - - 20820 94 194 294 394 194 94 - - - - 20821 - - - - 100 0 - - - - 20822} 20823do_execsql_test joinD-714 { 20824 SELECT t1.*, t2.*, t3.*, t4.* 20825 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 20826 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 20827 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20828 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20829} { 20830 2 102 202 302 102 2 - - - - 20831 4 104 204 304 104 4 - - - - 20832 6 106 206 306 106 6 206 6 - - 20833 8 108 208 308 108 8 - - - - 20834 10 110 210 310 110 10 - - 310 10 20835 12 112 212 312 112 12 212 12 - - 20836 14 114 214 314 114 14 - - - - 20837 16 116 216 316 116 16 - - - - 20838 18 118 218 318 118 18 218 18 - - 20839 20 120 220 320 120 20 - - 320 20 20840 22 122 222 322 122 22 - - - - 20841 24 124 224 324 124 24 224 24 - - 20842 26 126 226 326 126 26 - - - - 20843 28 128 228 328 128 28 - - - - 20844 30 130 230 330 130 30 230 30 330 30 20845 32 132 232 332 132 32 - - - - 20846 34 134 234 334 134 34 - - - - 20847 36 136 236 336 136 36 236 36 - - 20848 38 138 238 338 138 38 - - - - 20849 40 140 240 340 140 40 - - 340 40 20850 42 142 242 342 142 42 242 42 - - 20851 44 144 244 344 144 44 - - - - 20852 46 146 246 346 146 46 - - - - 20853 48 148 248 348 148 48 248 48 - - 20854 50 150 250 350 150 50 - - 350 50 20855 52 152 252 352 152 52 - - - - 20856 54 154 254 354 154 54 254 54 - - 20857 56 156 256 356 156 56 - - - - 20858 58 158 258 358 158 58 - - - - 20859 60 160 260 360 160 60 260 60 360 60 20860 62 162 262 362 162 62 - - - - 20861 64 164 264 364 164 64 - - - - 20862 66 166 266 366 166 66 266 66 - - 20863 68 168 268 368 168 68 - - - - 20864 70 170 270 370 170 70 - - 370 70 20865 72 172 272 372 172 72 272 72 - - 20866 74 174 274 374 174 74 - - - - 20867 76 176 276 376 176 76 - - - - 20868 78 178 278 378 178 78 278 78 - - 20869 80 180 280 380 180 80 - - 380 80 20870 82 182 282 382 182 82 - - - - 20871 84 184 284 384 184 84 284 84 - - 20872 86 186 286 386 186 86 - - - - 20873 88 188 288 388 188 88 - - - - 20874 90 190 290 390 190 90 290 90 390 90 20875 92 192 292 392 192 92 - - - - 20876 94 194 294 394 194 94 - - - - 20877 - - - - 100 0 - - - - 20878} 20879do_execsql_test joinD-715 { 20880 SELECT t1.*, t2.*, t3.*, t4.* 20881 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 20882 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20883 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 20884 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20885} { 20886 10 110 210 310 110 10 - - 310 10 20887 20 120 220 320 120 20 - - 320 20 20888 30 130 230 330 130 30 230 30 330 30 20889 40 140 240 340 140 40 - - 340 40 20890 50 150 250 350 150 50 - - 350 50 20891 60 160 260 360 160 60 260 60 360 60 20892 70 170 270 370 170 70 - - 370 70 20893 80 180 280 380 180 80 - - 380 80 20894 90 190 290 390 190 90 290 90 390 90 20895 - - - - - - - - 300 0 20896 - - - - - - - - 305 5 20897 - - - - - - - - 315 15 20898 - - - - - - - - 325 25 20899 - - - - - - - - 335 35 20900 - - - - - - - - 345 45 20901 - - - - - - - - 355 55 20902 - - - - - - - - 365 65 20903 - - - - - - - - 375 75 20904 - - - - - - - - 385 85 20905 - - - - - - - - 395 95 20906} 20907do_execsql_test joinD-716 { 20908 SELECT t1.*, t2.*, t3.*, t4.* 20909 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 20910 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20911 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 20912 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20913} { 20914 10 110 210 310 110 10 - - 310 10 20915 20 120 220 320 120 20 - - 320 20 20916 30 130 230 330 130 30 230 30 330 30 20917 40 140 240 340 140 40 - - 340 40 20918 50 150 250 350 150 50 - - 350 50 20919 60 160 260 360 160 60 260 60 360 60 20920 70 170 270 370 170 70 - - 370 70 20921 80 180 280 380 180 80 - - 380 80 20922 90 190 290 390 190 90 290 90 390 90 20923 - - - - - - - - 300 0 20924 - - - - - - - - 305 5 20925 - - - - - - - - 315 15 20926 - - - - - - - - 325 25 20927 - - - - - - - - 335 35 20928 - - - - - - - - 345 45 20929 - - - - - - - - 355 55 20930 - - - - - - - - 365 65 20931 - - - - - - - - 375 75 20932 - - - - - - - - 385 85 20933 - - - - - - - - 395 95 20934} 20935do_execsql_test joinD-717 { 20936 SELECT t1.*, t2.*, t3.*, t4.* 20937 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 20938 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20939 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 20940 WHERE t2.x>0 20941 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20942} { 20943 10 110 210 310 110 10 - - 310 10 20944 20 120 220 320 120 20 - - 320 20 20945 30 130 230 330 130 30 230 30 330 30 20946 40 140 240 340 140 40 - - 340 40 20947 50 150 250 350 150 50 - - 350 50 20948 60 160 260 360 160 60 260 60 360 60 20949 70 170 270 370 170 70 - - 370 70 20950 80 180 280 380 180 80 - - 380 80 20951 90 190 290 390 190 90 290 90 390 90 20952} 20953do_execsql_test joinD-718 { 20954 SELECT t1.*, t2.*, t3.*, t4.* 20955 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 20956 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20957 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 20958 WHERE (t2.x>0 OR t2.x IS NULL) 20959 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20960} { 20961 10 110 210 310 110 10 - - 310 10 20962 20 120 220 320 120 20 - - 320 20 20963 30 130 230 330 130 30 230 30 330 30 20964 40 140 240 340 140 40 - - 340 40 20965 50 150 250 350 150 50 - - 350 50 20966 60 160 260 360 160 60 260 60 360 60 20967 70 170 270 370 170 70 - - 370 70 20968 80 180 280 380 180 80 - - 380 80 20969 90 190 290 390 190 90 290 90 390 90 20970 - - - - - - - - 300 0 20971 - - - - - - - - 305 5 20972 - - - - - - - - 315 15 20973 - - - - - - - - 325 25 20974 - - - - - - - - 335 35 20975 - - - - - - - - 345 45 20976 - - - - - - - - 355 55 20977 - - - - - - - - 365 65 20978 - - - - - - - - 375 75 20979 - - - - - - - - 385 85 20980 - - - - - - - - 395 95 20981} 20982do_execsql_test joinD-719 { 20983 SELECT t1.*, t2.*, t3.*, t4.* 20984 FROM t1 RIGHT JOIN t2 ON true 20985 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20986 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 20987 WHERE t1.b=t2.b AND t2.x>0 20988 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20989} { 20990 10 110 210 310 110 10 - - 310 10 20991 20 120 220 320 120 20 - - 320 20 20992 30 130 230 330 130 30 230 30 330 30 20993 40 140 240 340 140 40 - - 340 40 20994 50 150 250 350 150 50 - - 350 50 20995 60 160 260 360 160 60 260 60 360 60 20996 70 170 270 370 170 70 - - 370 70 20997 80 180 280 380 180 80 - - 380 80 20998 90 190 290 390 190 90 290 90 390 90 20999} 21000do_execsql_test joinD-720 { 21001 SELECT t1.*, t2.*, t3.*, t4.* 21002 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21003 LEFT JOIN t3 ON t1.c=t3.c 21004 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 21005 WHERE t3.y>0 21006 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21007} { 21008 30 130 230 330 130 30 230 30 330 30 21009 60 160 260 360 160 60 260 60 360 60 21010 90 190 290 390 190 90 290 90 390 90 21011} 21012do_execsql_test joinD-721 { 21013 SELECT t1.*, t2.*, t3.*, t4.* 21014 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21015 LEFT JOIN t3 ON t1.c=t3.c 21016 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 21017 WHERE t3.y>0 OR t3.y IS NULL 21018 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21019} { 21020 10 110 210 310 110 10 - - 310 10 21021 20 120 220 320 120 20 - - 320 20 21022 30 130 230 330 130 30 230 30 330 30 21023 40 140 240 340 140 40 - - 340 40 21024 50 150 250 350 150 50 - - 350 50 21025 60 160 260 360 160 60 260 60 360 60 21026 70 170 270 370 170 70 - - 370 70 21027 80 180 280 380 180 80 - - 380 80 21028 90 190 290 390 190 90 290 90 390 90 21029 - - - - - - - - 300 0 21030 - - - - - - - - 305 5 21031 - - - - - - - - 315 15 21032 - - - - - - - - 325 25 21033 - - - - - - - - 335 35 21034 - - - - - - - - 345 45 21035 - - - - - - - - 355 55 21036 - - - - - - - - 365 65 21037 - - - - - - - - 375 75 21038 - - - - - - - - 385 85 21039 - - - - - - - - 395 95 21040} 21041do_execsql_test joinD-722 { 21042 SELECT t1.*, t2.*, t3.*, t4.* 21043 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21044 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21045 RIGHT JOIN t4 ON t1.d=t4.d 21046 WHERE t4.z>0 21047 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21048} { 21049 10 110 210 310 110 10 - - 310 10 21050 20 120 220 320 120 20 - - 320 20 21051 30 130 230 330 130 30 230 30 330 30 21052 40 140 240 340 140 40 - - 340 40 21053 50 150 250 350 150 50 - - 350 50 21054 60 160 260 360 160 60 260 60 360 60 21055 70 170 270 370 170 70 - - 370 70 21056 80 180 280 380 180 80 - - 380 80 21057 90 190 290 390 190 90 290 90 390 90 21058 - - - - - - - - 305 5 21059 - - - - - - - - 315 15 21060 - - - - - - - - 325 25 21061 - - - - - - - - 335 35 21062 - - - - - - - - 345 45 21063 - - - - - - - - 355 55 21064 - - - - - - - - 365 65 21065 - - - - - - - - 375 75 21066 - - - - - - - - 385 85 21067 - - - - - - - - 395 95 21068} 21069do_execsql_test joinD-723 { 21070 SELECT t1.*, t2.*, t3.*, t4.* 21071 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21072 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21073 RIGHT JOIN t4 ON t1.d=t4.d 21074 WHERE t4.z IS NULL OR t4.z>0 21075 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21076} { 21077 10 110 210 310 110 10 - - 310 10 21078 20 120 220 320 120 20 - - 320 20 21079 30 130 230 330 130 30 230 30 330 30 21080 40 140 240 340 140 40 - - 340 40 21081 50 150 250 350 150 50 - - 350 50 21082 60 160 260 360 160 60 260 60 360 60 21083 70 170 270 370 170 70 - - 370 70 21084 80 180 280 380 180 80 - - 380 80 21085 90 190 290 390 190 90 290 90 390 90 21086 - - - - - - - - 305 5 21087 - - - - - - - - 315 15 21088 - - - - - - - - 325 25 21089 - - - - - - - - 335 35 21090 - - - - - - - - 345 45 21091 - - - - - - - - 355 55 21092 - - - - - - - - 365 65 21093 - - - - - - - - 375 75 21094 - - - - - - - - 385 85 21095 - - - - - - - - 395 95 21096} 21097do_execsql_test joinD-724 { 21098 SELECT t1.*, t2.*, t3.*, t4.* 21099 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 21100 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21101 RIGHT JOIN t4 ON t1.d=t4.d 21102 WHERE t2.x>0 AND t4.z>0 21103 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21104} { 21105 10 110 210 310 110 10 - - 310 10 21106 20 120 220 320 120 20 - - 320 20 21107 30 130 230 330 130 30 230 30 330 30 21108 40 140 240 340 140 40 - - 340 40 21109 50 150 250 350 150 50 - - 350 50 21110 60 160 260 360 160 60 260 60 360 60 21111 70 170 270 370 170 70 - - 370 70 21112 80 180 280 380 180 80 - - 380 80 21113 90 190 290 390 190 90 290 90 390 90 21114} 21115do_execsql_test joinD-725 { 21116 SELECT t1.*, t2.*, t3.*, t4.* 21117 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21118 LEFT JOIN t3 ON t1.c=t3.c 21119 RIGHT JOIN t4 ON t1.d=t4.d 21120 WHERE t4.z>0 AND t3.y>0 21121 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21122} { 21123 30 130 230 330 130 30 230 30 330 30 21124 60 160 260 360 160 60 260 60 360 60 21125 90 190 290 390 190 90 290 90 390 90 21126} 21127do_execsql_test joinD-726 { 21128 SELECT t1.*, t2.*, t3.*, t4.* 21129 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 21130 LEFT JOIN t3 ON t1.c=t3.c 21131 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 21132 WHERE t2.x>0 AND t3.y>0 21133 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21134} { 21135 30 130 230 330 130 30 230 30 330 30 21136 60 160 260 360 160 60 260 60 360 60 21137 90 190 290 390 190 90 290 90 390 90 21138} 21139do_execsql_test joinD-727 { 21140 SELECT t1.*, t2.*, t3.*, t4.* 21141 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 21142 LEFT JOIN t3 ON t1.c=t3.c 21143 RIGHT JOIN t4 ON t1.d=t4.d 21144 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 21145 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21146} { 21147 30 130 230 330 130 30 230 30 330 30 21148 60 160 260 360 160 60 260 60 360 60 21149 90 190 290 390 190 90 290 90 390 90 21150} 21151do_execsql_test joinD-728 { 21152 SELECT t1.*, t2.*, t3.*, t4.* 21153 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 21154 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 21155 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 21156 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21157} { 21158 10 110 210 310 110 10 - - 310 10 21159 20 120 220 320 120 20 - - 320 20 21160 30 130 230 330 130 30 230 30 330 30 21161 40 140 240 340 140 40 - - 340 40 21162 50 150 250 350 150 50 - - 350 50 21163 60 160 260 360 160 60 260 60 360 60 21164 70 170 270 370 170 70 - - 370 70 21165 80 180 280 380 180 80 - - 380 80 21166 90 190 290 390 190 90 290 90 390 90 21167 - - - - - - - - 300 0 21168 - - - - - - - - 305 5 21169 - - - - - - - - 315 15 21170 - - - - - - - - 325 25 21171 - - - - - - - - 335 35 21172 - - - - - - - - 345 45 21173 - - - - - - - - 355 55 21174 - - - - - - - - 365 65 21175 - - - - - - - - 375 75 21176 - - - - - - - - 385 85 21177 - - - - - - - - 395 95 21178} 21179do_execsql_test joinD-729 { 21180 SELECT t1.*, t2.*, t3.*, t4.* 21181 FROM t1 RIGHT JOIN t2 ON t2.x>0 21182 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 21183 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 21184 WHERE t1.b IS NOT DISTINCT FROM t2.b 21185 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21186} { 21187 10 110 210 310 110 10 - - 310 10 21188 20 120 220 320 120 20 - - 320 20 21189 30 130 230 330 130 30 230 30 330 30 21190 40 140 240 340 140 40 - - 340 40 21191 50 150 250 350 150 50 - - 350 50 21192 60 160 260 360 160 60 260 60 360 60 21193 70 170 270 370 170 70 - - 370 70 21194 80 180 280 380 180 80 - - 380 80 21195 90 190 290 390 190 90 290 90 390 90 21196 - - - - - - - - 300 0 21197} 21198do_execsql_test joinD-730 { 21199 SELECT t1.*, t2.*, t3.*, t4.* 21200 FROM t1 RIGHT JOIN t2 ON t2.x>0 21201 LEFT JOIN t3 ON t3.y>0 21202 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 21203 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 21204 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21205} { 21206 30 130 230 330 130 30 230 30 330 30 21207 60 160 260 360 160 60 260 60 360 60 21208 90 190 290 390 190 90 290 90 390 90 21209 - - - - - - - - 300 0 21210} 21211do_execsql_test joinD-731 { 21212 SELECT t1.*, t2.*, t3.*, t4.* 21213 FROM t1 RIGHT JOIN t2 ON t2.x>0 21214 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 21215 RIGHT JOIN t4 ON t4.z>0 21216 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 21217 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21218} { 21219 10 110 210 310 110 10 - - 310 10 21220 20 120 220 320 120 20 - - 320 20 21221 30 130 230 330 130 30 230 30 330 30 21222 40 140 240 340 140 40 - - 340 40 21223 50 150 250 350 150 50 - - 350 50 21224 60 160 260 360 160 60 260 60 360 60 21225 70 170 270 370 170 70 - - 370 70 21226 80 180 280 380 180 80 - - 380 80 21227 90 190 290 390 190 90 290 90 390 90 21228} 21229do_execsql_test joinD-732 { 21230 SELECT t1.*, t2.*, t3.*, t4.* 21231 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 21232 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21233 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 21234 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21235} { 21236 10 110 210 310 110 10 - - 310 10 21237 20 120 220 320 120 20 - - 320 20 21238 30 130 230 330 130 30 230 30 330 30 21239 40 140 240 340 140 40 - - 340 40 21240 50 150 250 350 150 50 - - 350 50 21241 60 160 260 360 160 60 260 60 360 60 21242 70 170 270 370 170 70 - - 370 70 21243 80 180 280 380 180 80 - - 380 80 21244 90 190 290 390 190 90 290 90 390 90 21245 - - - - - - - - 300 0 21246 - - - - - - - - 305 5 21247 - - - - - - - - 315 15 21248 - - - - - - - - 325 25 21249 - - - - - - - - 335 35 21250 - - - - - - - - 345 45 21251 - - - - - - - - 355 55 21252 - - - - - - - - 365 65 21253 - - - - - - - - 375 75 21254 - - - - - - - - 385 85 21255 - - - - - - - - 395 95 21256} 21257do_execsql_test joinD-733 { 21258 SELECT t1.*, t2.*, t3.*, t4.* 21259 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21260 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 21261 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 21262 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21263} { 21264 10 110 210 310 110 10 - - 310 10 21265 20 120 220 320 120 20 - - 320 20 21266 30 130 230 330 130 30 230 30 330 30 21267 40 140 240 340 140 40 - - 340 40 21268 50 150 250 350 150 50 - - 350 50 21269 60 160 260 360 160 60 260 60 360 60 21270 70 170 270 370 170 70 - - 370 70 21271 80 180 280 380 180 80 - - 380 80 21272 90 190 290 390 190 90 290 90 390 90 21273 - - - - - - - - 300 0 21274 - - - - - - - - 305 5 21275 - - - - - - - - 315 15 21276 - - - - - - - - 325 25 21277 - - - - - - - - 335 35 21278 - - - - - - - - 345 45 21279 - - - - - - - - 355 55 21280 - - - - - - - - 365 65 21281 - - - - - - - - 375 75 21282 - - - - - - - - 385 85 21283 - - - - - - - - 395 95 21284} 21285do_execsql_test joinD-734 { 21286 SELECT t1.*, t2.*, t3.*, t4.* 21287 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21288 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21289 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 21290 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21291} { 21292 2 102 202 302 102 2 - - - - 21293 4 104 204 304 104 4 - - - - 21294 6 106 206 306 106 6 206 6 - - 21295 8 108 208 308 108 8 - - - - 21296 10 110 210 310 110 10 - - 310 10 21297 12 112 212 312 112 12 212 12 - - 21298 14 114 214 314 114 14 - - - - 21299 16 116 216 316 116 16 - - - - 21300 18 118 218 318 118 18 218 18 - - 21301 20 120 220 320 120 20 - - 320 20 21302 22 122 222 322 122 22 - - - - 21303 24 124 224 324 124 24 224 24 - - 21304 26 126 226 326 126 26 - - - - 21305 28 128 228 328 128 28 - - - - 21306 30 130 230 330 130 30 230 30 330 30 21307 32 132 232 332 132 32 - - - - 21308 34 134 234 334 134 34 - - - - 21309 36 136 236 336 136 36 236 36 - - 21310 38 138 238 338 138 38 - - - - 21311 40 140 240 340 140 40 - - 340 40 21312 42 142 242 342 142 42 242 42 - - 21313 44 144 244 344 144 44 - - - - 21314 46 146 246 346 146 46 - - - - 21315 48 148 248 348 148 48 248 48 - - 21316 50 150 250 350 150 50 - - 350 50 21317 52 152 252 352 152 52 - - - - 21318 54 154 254 354 154 54 254 54 - - 21319 56 156 256 356 156 56 - - - - 21320 58 158 258 358 158 58 - - - - 21321 60 160 260 360 160 60 260 60 360 60 21322 62 162 262 362 162 62 - - - - 21323 64 164 264 364 164 64 - - - - 21324 66 166 266 366 166 66 266 66 - - 21325 68 168 268 368 168 68 - - - - 21326 70 170 270 370 170 70 - - 370 70 21327 72 172 272 372 172 72 272 72 - - 21328 74 174 274 374 174 74 - - - - 21329 76 176 276 376 176 76 - - - - 21330 78 178 278 378 178 78 278 78 - - 21331 80 180 280 380 180 80 - - 380 80 21332 82 182 282 382 182 82 - - - - 21333 84 184 284 384 184 84 284 84 - - 21334 86 186 286 386 186 86 - - - - 21335 88 188 288 388 188 88 - - - - 21336 90 190 290 390 190 90 290 90 390 90 21337 92 192 292 392 192 92 - - - - 21338 94 194 294 394 194 94 - - - - 21339 - - - - 100 0 - - - - 21340 - - - - - - - - 300 0 21341 - - - - - - - - 305 5 21342 - - - - - - - - 315 15 21343 - - - - - - - - 325 25 21344 - - - - - - - - 335 35 21345 - - - - - - - - 345 45 21346 - - - - - - - - 355 55 21347 - - - - - - - - 365 65 21348 - - - - - - - - 375 75 21349 - - - - - - - - 385 85 21350 - - - - - - - - 395 95 21351} 21352do_execsql_test joinD-735 { 21353 SELECT t1.*, t2.*, t3.*, t4.* 21354 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 21355 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21356 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 21357 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21358} { 21359 2 102 202 302 102 2 - - - - 21360 4 104 204 304 104 4 - - - - 21361 6 106 206 306 106 6 206 6 - - 21362 8 108 208 308 108 8 - - - - 21363 10 110 210 310 110 10 - - 310 10 21364 12 112 212 312 112 12 212 12 - - 21365 14 114 214 314 114 14 - - - - 21366 16 116 216 316 116 16 - - - - 21367 18 118 218 318 118 18 218 18 - - 21368 20 120 220 320 120 20 - - 320 20 21369 22 122 222 322 122 22 - - - - 21370 24 124 224 324 124 24 224 24 - - 21371 26 126 226 326 126 26 - - - - 21372 28 128 228 328 128 28 - - - - 21373 30 130 230 330 130 30 230 30 330 30 21374 32 132 232 332 132 32 - - - - 21375 34 134 234 334 134 34 - - - - 21376 36 136 236 336 136 36 236 36 - - 21377 38 138 238 338 138 38 - - - - 21378 40 140 240 340 140 40 - - 340 40 21379 42 142 242 342 142 42 242 42 - - 21380 44 144 244 344 144 44 - - - - 21381 46 146 246 346 146 46 - - - - 21382 48 148 248 348 148 48 248 48 - - 21383 50 150 250 350 150 50 - - 350 50 21384 52 152 252 352 152 52 - - - - 21385 54 154 254 354 154 54 254 54 - - 21386 56 156 256 356 156 56 - - - - 21387 58 158 258 358 158 58 - - - - 21388 60 160 260 360 160 60 260 60 360 60 21389 62 162 262 362 162 62 - - - - 21390 64 164 264 364 164 64 - - - - 21391 66 166 266 366 166 66 266 66 - - 21392 68 168 268 368 168 68 - - - - 21393 70 170 270 370 170 70 - - 370 70 21394 72 172 272 372 172 72 272 72 - - 21395 74 174 274 374 174 74 - - - - 21396 76 176 276 376 176 76 - - - - 21397 78 178 278 378 178 78 278 78 - - 21398 80 180 280 380 180 80 - - 380 80 21399 82 182 282 382 182 82 - - - - 21400 84 184 284 384 184 84 284 84 - - 21401 86 186 286 386 186 86 - - - - 21402 88 188 288 388 188 88 - - - - 21403 90 190 290 390 190 90 290 90 390 90 21404 92 192 292 392 192 92 - - - - 21405 94 194 294 394 194 94 - - - - 21406 - - - - 100 0 - - - - 21407 - - - - - - - - 300 0 21408 - - - - - - - - 305 5 21409 - - - - - - - - 315 15 21410 - - - - - - - - 325 25 21411 - - - - - - - - 335 35 21412 - - - - - - - - 345 45 21413 - - - - - - - - 355 55 21414 - - - - - - - - 365 65 21415 - - - - - - - - 375 75 21416 - - - - - - - - 385 85 21417 - - - - - - - - 395 95 21418} 21419do_execsql_test joinD-736 { 21420 SELECT t1.*, t2.*, t3.*, t4.* 21421 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 21422 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21423 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 21424 WHERE t2.x>0 21425 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21426} { 21427 2 102 202 302 102 2 - - - - 21428 4 104 204 304 104 4 - - - - 21429 6 106 206 306 106 6 206 6 - - 21430 8 108 208 308 108 8 - - - - 21431 10 110 210 310 110 10 - - 310 10 21432 12 112 212 312 112 12 212 12 - - 21433 14 114 214 314 114 14 - - - - 21434 16 116 216 316 116 16 - - - - 21435 18 118 218 318 118 18 218 18 - - 21436 20 120 220 320 120 20 - - 320 20 21437 22 122 222 322 122 22 - - - - 21438 24 124 224 324 124 24 224 24 - - 21439 26 126 226 326 126 26 - - - - 21440 28 128 228 328 128 28 - - - - 21441 30 130 230 330 130 30 230 30 330 30 21442 32 132 232 332 132 32 - - - - 21443 34 134 234 334 134 34 - - - - 21444 36 136 236 336 136 36 236 36 - - 21445 38 138 238 338 138 38 - - - - 21446 40 140 240 340 140 40 - - 340 40 21447 42 142 242 342 142 42 242 42 - - 21448 44 144 244 344 144 44 - - - - 21449 46 146 246 346 146 46 - - - - 21450 48 148 248 348 148 48 248 48 - - 21451 50 150 250 350 150 50 - - 350 50 21452 52 152 252 352 152 52 - - - - 21453 54 154 254 354 154 54 254 54 - - 21454 56 156 256 356 156 56 - - - - 21455 58 158 258 358 158 58 - - - - 21456 60 160 260 360 160 60 260 60 360 60 21457 62 162 262 362 162 62 - - - - 21458 64 164 264 364 164 64 - - - - 21459 66 166 266 366 166 66 266 66 - - 21460 68 168 268 368 168 68 - - - - 21461 70 170 270 370 170 70 - - 370 70 21462 72 172 272 372 172 72 272 72 - - 21463 74 174 274 374 174 74 - - - - 21464 76 176 276 376 176 76 - - - - 21465 78 178 278 378 178 78 278 78 - - 21466 80 180 280 380 180 80 - - 380 80 21467 82 182 282 382 182 82 - - - - 21468 84 184 284 384 184 84 284 84 - - 21469 86 186 286 386 186 86 - - - - 21470 88 188 288 388 188 88 - - - - 21471 90 190 290 390 190 90 290 90 390 90 21472 92 192 292 392 192 92 - - - - 21473 94 194 294 394 194 94 - - - - 21474} 21475do_execsql_test joinD-737 { 21476 SELECT t1.*, t2.*, t3.*, t4.* 21477 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 21478 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21479 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 21480 WHERE (t2.x>0 OR t2.x IS NULL) 21481 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21482} { 21483 2 102 202 302 102 2 - - - - 21484 4 104 204 304 104 4 - - - - 21485 6 106 206 306 106 6 206 6 - - 21486 8 108 208 308 108 8 - - - - 21487 10 110 210 310 110 10 - - 310 10 21488 12 112 212 312 112 12 212 12 - - 21489 14 114 214 314 114 14 - - - - 21490 16 116 216 316 116 16 - - - - 21491 18 118 218 318 118 18 218 18 - - 21492 20 120 220 320 120 20 - - 320 20 21493 22 122 222 322 122 22 - - - - 21494 24 124 224 324 124 24 224 24 - - 21495 26 126 226 326 126 26 - - - - 21496 28 128 228 328 128 28 - - - - 21497 30 130 230 330 130 30 230 30 330 30 21498 32 132 232 332 132 32 - - - - 21499 34 134 234 334 134 34 - - - - 21500 36 136 236 336 136 36 236 36 - - 21501 38 138 238 338 138 38 - - - - 21502 40 140 240 340 140 40 - - 340 40 21503 42 142 242 342 142 42 242 42 - - 21504 44 144 244 344 144 44 - - - - 21505 46 146 246 346 146 46 - - - - 21506 48 148 248 348 148 48 248 48 - - 21507 50 150 250 350 150 50 - - 350 50 21508 52 152 252 352 152 52 - - - - 21509 54 154 254 354 154 54 254 54 - - 21510 56 156 256 356 156 56 - - - - 21511 58 158 258 358 158 58 - - - - 21512 60 160 260 360 160 60 260 60 360 60 21513 62 162 262 362 162 62 - - - - 21514 64 164 264 364 164 64 - - - - 21515 66 166 266 366 166 66 266 66 - - 21516 68 168 268 368 168 68 - - - - 21517 70 170 270 370 170 70 - - 370 70 21518 72 172 272 372 172 72 272 72 - - 21519 74 174 274 374 174 74 - - - - 21520 76 176 276 376 176 76 - - - - 21521 78 178 278 378 178 78 278 78 - - 21522 80 180 280 380 180 80 - - 380 80 21523 82 182 282 382 182 82 - - - - 21524 84 184 284 384 184 84 284 84 - - 21525 86 186 286 386 186 86 - - - - 21526 88 188 288 388 188 88 - - - - 21527 90 190 290 390 190 90 290 90 390 90 21528 92 192 292 392 192 92 - - - - 21529 94 194 294 394 194 94 - - - - 21530 - - - - - - - - 300 0 21531 - - - - - - - - 305 5 21532 - - - - - - - - 315 15 21533 - - - - - - - - 325 25 21534 - - - - - - - - 335 35 21535 - - - - - - - - 345 45 21536 - - - - - - - - 355 55 21537 - - - - - - - - 365 65 21538 - - - - - - - - 375 75 21539 - - - - - - - - 385 85 21540 - - - - - - - - 395 95 21541} 21542do_execsql_test joinD-738 { 21543 SELECT t1.*, t2.*, t3.*, t4.* 21544 FROM t1 RIGHT JOIN t2 ON true 21545 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21546 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 21547 WHERE t1.b=t2.b AND t2.x>0 21548 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21549} { 21550 2 102 202 302 102 2 - - - - 21551 4 104 204 304 104 4 - - - - 21552 6 106 206 306 106 6 206 6 - - 21553 8 108 208 308 108 8 - - - - 21554 10 110 210 310 110 10 - - 310 10 21555 12 112 212 312 112 12 212 12 - - 21556 14 114 214 314 114 14 - - - - 21557 16 116 216 316 116 16 - - - - 21558 18 118 218 318 118 18 218 18 - - 21559 20 120 220 320 120 20 - - 320 20 21560 22 122 222 322 122 22 - - - - 21561 24 124 224 324 124 24 224 24 - - 21562 26 126 226 326 126 26 - - - - 21563 28 128 228 328 128 28 - - - - 21564 30 130 230 330 130 30 230 30 330 30 21565 32 132 232 332 132 32 - - - - 21566 34 134 234 334 134 34 - - - - 21567 36 136 236 336 136 36 236 36 - - 21568 38 138 238 338 138 38 - - - - 21569 40 140 240 340 140 40 - - 340 40 21570 42 142 242 342 142 42 242 42 - - 21571 44 144 244 344 144 44 - - - - 21572 46 146 246 346 146 46 - - - - 21573 48 148 248 348 148 48 248 48 - - 21574 50 150 250 350 150 50 - - 350 50 21575 52 152 252 352 152 52 - - - - 21576 54 154 254 354 154 54 254 54 - - 21577 56 156 256 356 156 56 - - - - 21578 58 158 258 358 158 58 - - - - 21579 60 160 260 360 160 60 260 60 360 60 21580 62 162 262 362 162 62 - - - - 21581 64 164 264 364 164 64 - - - - 21582 66 166 266 366 166 66 266 66 - - 21583 68 168 268 368 168 68 - - - - 21584 70 170 270 370 170 70 - - 370 70 21585 72 172 272 372 172 72 272 72 - - 21586 74 174 274 374 174 74 - - - - 21587 76 176 276 376 176 76 - - - - 21588 78 178 278 378 178 78 278 78 - - 21589 80 180 280 380 180 80 - - 380 80 21590 82 182 282 382 182 82 - - - - 21591 84 184 284 384 184 84 284 84 - - 21592 86 186 286 386 186 86 - - - - 21593 88 188 288 388 188 88 - - - - 21594 90 190 290 390 190 90 290 90 390 90 21595 92 192 292 392 192 92 - - - - 21596 94 194 294 394 194 94 - - - - 21597} 21598do_execsql_test joinD-739 { 21599 SELECT t1.*, t2.*, t3.*, t4.* 21600 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21601 LEFT JOIN t3 ON t1.c=t3.c 21602 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 21603 WHERE t3.y>0 21604 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21605} { 21606 6 106 206 306 106 6 206 6 - - 21607 12 112 212 312 112 12 212 12 - - 21608 18 118 218 318 118 18 218 18 - - 21609 24 124 224 324 124 24 224 24 - - 21610 30 130 230 330 130 30 230 30 330 30 21611 36 136 236 336 136 36 236 36 - - 21612 42 142 242 342 142 42 242 42 - - 21613 48 148 248 348 148 48 248 48 - - 21614 54 154 254 354 154 54 254 54 - - 21615 60 160 260 360 160 60 260 60 360 60 21616 66 166 266 366 166 66 266 66 - - 21617 72 172 272 372 172 72 272 72 - - 21618 78 178 278 378 178 78 278 78 - - 21619 84 184 284 384 184 84 284 84 - - 21620 90 190 290 390 190 90 290 90 390 90 21621} 21622do_execsql_test joinD-740 { 21623 SELECT t1.*, t2.*, t3.*, t4.* 21624 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21625 LEFT JOIN t3 ON t1.c=t3.c 21626 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 21627 WHERE t3.y>0 OR t3.y IS NULL 21628 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21629} { 21630 2 102 202 302 102 2 - - - - 21631 4 104 204 304 104 4 - - - - 21632 6 106 206 306 106 6 206 6 - - 21633 8 108 208 308 108 8 - - - - 21634 10 110 210 310 110 10 - - 310 10 21635 12 112 212 312 112 12 212 12 - - 21636 14 114 214 314 114 14 - - - - 21637 16 116 216 316 116 16 - - - - 21638 18 118 218 318 118 18 218 18 - - 21639 20 120 220 320 120 20 - - 320 20 21640 22 122 222 322 122 22 - - - - 21641 24 124 224 324 124 24 224 24 - - 21642 26 126 226 326 126 26 - - - - 21643 28 128 228 328 128 28 - - - - 21644 30 130 230 330 130 30 230 30 330 30 21645 32 132 232 332 132 32 - - - - 21646 34 134 234 334 134 34 - - - - 21647 36 136 236 336 136 36 236 36 - - 21648 38 138 238 338 138 38 - - - - 21649 40 140 240 340 140 40 - - 340 40 21650 42 142 242 342 142 42 242 42 - - 21651 44 144 244 344 144 44 - - - - 21652 46 146 246 346 146 46 - - - - 21653 48 148 248 348 148 48 248 48 - - 21654 50 150 250 350 150 50 - - 350 50 21655 52 152 252 352 152 52 - - - - 21656 54 154 254 354 154 54 254 54 - - 21657 56 156 256 356 156 56 - - - - 21658 58 158 258 358 158 58 - - - - 21659 60 160 260 360 160 60 260 60 360 60 21660 62 162 262 362 162 62 - - - - 21661 64 164 264 364 164 64 - - - - 21662 66 166 266 366 166 66 266 66 - - 21663 68 168 268 368 168 68 - - - - 21664 70 170 270 370 170 70 - - 370 70 21665 72 172 272 372 172 72 272 72 - - 21666 74 174 274 374 174 74 - - - - 21667 76 176 276 376 176 76 - - - - 21668 78 178 278 378 178 78 278 78 - - 21669 80 180 280 380 180 80 - - 380 80 21670 82 182 282 382 182 82 - - - - 21671 84 184 284 384 184 84 284 84 - - 21672 86 186 286 386 186 86 - - - - 21673 88 188 288 388 188 88 - - - - 21674 90 190 290 390 190 90 290 90 390 90 21675 92 192 292 392 192 92 - - - - 21676 94 194 294 394 194 94 - - - - 21677 - - - - 100 0 - - - - 21678 - - - - - - - - 300 0 21679 - - - - - - - - 305 5 21680 - - - - - - - - 315 15 21681 - - - - - - - - 325 25 21682 - - - - - - - - 335 35 21683 - - - - - - - - 345 45 21684 - - - - - - - - 355 55 21685 - - - - - - - - 365 65 21686 - - - - - - - - 375 75 21687 - - - - - - - - 385 85 21688 - - - - - - - - 395 95 21689} 21690do_execsql_test joinD-741 { 21691 SELECT t1.*, t2.*, t3.*, t4.* 21692 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21693 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21694 FULL JOIN t4 ON t1.d=t4.d 21695 WHERE t4.z>0 21696 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21697} { 21698 10 110 210 310 110 10 - - 310 10 21699 20 120 220 320 120 20 - - 320 20 21700 30 130 230 330 130 30 230 30 330 30 21701 40 140 240 340 140 40 - - 340 40 21702 50 150 250 350 150 50 - - 350 50 21703 60 160 260 360 160 60 260 60 360 60 21704 70 170 270 370 170 70 - - 370 70 21705 80 180 280 380 180 80 - - 380 80 21706 90 190 290 390 190 90 290 90 390 90 21707 - - - - - - - - 305 5 21708 - - - - - - - - 315 15 21709 - - - - - - - - 325 25 21710 - - - - - - - - 335 35 21711 - - - - - - - - 345 45 21712 - - - - - - - - 355 55 21713 - - - - - - - - 365 65 21714 - - - - - - - - 375 75 21715 - - - - - - - - 385 85 21716 - - - - - - - - 395 95 21717} 21718do_execsql_test joinD-742 { 21719 SELECT t1.*, t2.*, t3.*, t4.* 21720 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21721 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21722 FULL JOIN t4 ON t1.d=t4.d 21723 WHERE t4.z IS NULL OR t4.z>0 21724 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21725} { 21726 2 102 202 302 102 2 - - - - 21727 4 104 204 304 104 4 - - - - 21728 6 106 206 306 106 6 206 6 - - 21729 8 108 208 308 108 8 - - - - 21730 10 110 210 310 110 10 - - 310 10 21731 12 112 212 312 112 12 212 12 - - 21732 14 114 214 314 114 14 - - - - 21733 16 116 216 316 116 16 - - - - 21734 18 118 218 318 118 18 218 18 - - 21735 20 120 220 320 120 20 - - 320 20 21736 22 122 222 322 122 22 - - - - 21737 24 124 224 324 124 24 224 24 - - 21738 26 126 226 326 126 26 - - - - 21739 28 128 228 328 128 28 - - - - 21740 30 130 230 330 130 30 230 30 330 30 21741 32 132 232 332 132 32 - - - - 21742 34 134 234 334 134 34 - - - - 21743 36 136 236 336 136 36 236 36 - - 21744 38 138 238 338 138 38 - - - - 21745 40 140 240 340 140 40 - - 340 40 21746 42 142 242 342 142 42 242 42 - - 21747 44 144 244 344 144 44 - - - - 21748 46 146 246 346 146 46 - - - - 21749 48 148 248 348 148 48 248 48 - - 21750 50 150 250 350 150 50 - - 350 50 21751 52 152 252 352 152 52 - - - - 21752 54 154 254 354 154 54 254 54 - - 21753 56 156 256 356 156 56 - - - - 21754 58 158 258 358 158 58 - - - - 21755 60 160 260 360 160 60 260 60 360 60 21756 62 162 262 362 162 62 - - - - 21757 64 164 264 364 164 64 - - - - 21758 66 166 266 366 166 66 266 66 - - 21759 68 168 268 368 168 68 - - - - 21760 70 170 270 370 170 70 - - 370 70 21761 72 172 272 372 172 72 272 72 - - 21762 74 174 274 374 174 74 - - - - 21763 76 176 276 376 176 76 - - - - 21764 78 178 278 378 178 78 278 78 - - 21765 80 180 280 380 180 80 - - 380 80 21766 82 182 282 382 182 82 - - - - 21767 84 184 284 384 184 84 284 84 - - 21768 86 186 286 386 186 86 - - - - 21769 88 188 288 388 188 88 - - - - 21770 90 190 290 390 190 90 290 90 390 90 21771 92 192 292 392 192 92 - - - - 21772 94 194 294 394 194 94 - - - - 21773 - - - - 100 0 - - - - 21774 - - - - - - - - 305 5 21775 - - - - - - - - 315 15 21776 - - - - - - - - 325 25 21777 - - - - - - - - 335 35 21778 - - - - - - - - 345 45 21779 - - - - - - - - 355 55 21780 - - - - - - - - 365 65 21781 - - - - - - - - 375 75 21782 - - - - - - - - 385 85 21783 - - - - - - - - 395 95 21784} 21785do_execsql_test joinD-743 { 21786 SELECT t1.*, t2.*, t3.*, t4.* 21787 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 21788 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21789 FULL JOIN t4 ON t1.d=t4.d 21790 WHERE t2.x>0 AND t4.z>0 21791 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21792} { 21793 10 110 210 310 110 10 - - 310 10 21794 20 120 220 320 120 20 - - 320 20 21795 30 130 230 330 130 30 230 30 330 30 21796 40 140 240 340 140 40 - - 340 40 21797 50 150 250 350 150 50 - - 350 50 21798 60 160 260 360 160 60 260 60 360 60 21799 70 170 270 370 170 70 - - 370 70 21800 80 180 280 380 180 80 - - 380 80 21801 90 190 290 390 190 90 290 90 390 90 21802} 21803do_execsql_test joinD-744 { 21804 SELECT t1.*, t2.*, t3.*, t4.* 21805 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21806 LEFT JOIN t3 ON t1.c=t3.c 21807 FULL JOIN t4 ON t1.d=t4.d 21808 WHERE t4.z>0 AND t3.y>0 21809 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21810} { 21811 30 130 230 330 130 30 230 30 330 30 21812 60 160 260 360 160 60 260 60 360 60 21813 90 190 290 390 190 90 290 90 390 90 21814} 21815do_execsql_test joinD-745 { 21816 SELECT t1.*, t2.*, t3.*, t4.* 21817 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 21818 LEFT JOIN t3 ON t1.c=t3.c 21819 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 21820 WHERE t2.x>0 AND t3.y>0 21821 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21822} { 21823 6 106 206 306 106 6 206 6 - - 21824 12 112 212 312 112 12 212 12 - - 21825 18 118 218 318 118 18 218 18 - - 21826 24 124 224 324 124 24 224 24 - - 21827 30 130 230 330 130 30 230 30 330 30 21828 36 136 236 336 136 36 236 36 - - 21829 42 142 242 342 142 42 242 42 - - 21830 48 148 248 348 148 48 248 48 - - 21831 54 154 254 354 154 54 254 54 - - 21832 60 160 260 360 160 60 260 60 360 60 21833 66 166 266 366 166 66 266 66 - - 21834 72 172 272 372 172 72 272 72 - - 21835 78 178 278 378 178 78 278 78 - - 21836 84 184 284 384 184 84 284 84 - - 21837 90 190 290 390 190 90 290 90 390 90 21838} 21839do_execsql_test joinD-746 { 21840 SELECT t1.*, t2.*, t3.*, t4.* 21841 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 21842 LEFT JOIN t3 ON t1.c=t3.c 21843 FULL JOIN t4 ON t1.d=t4.d 21844 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 21845 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21846} { 21847 30 130 230 330 130 30 230 30 330 30 21848 60 160 260 360 160 60 260 60 360 60 21849 90 190 290 390 190 90 290 90 390 90 21850} 21851do_execsql_test joinD-747 { 21852 SELECT t1.*, t2.*, t3.*, t4.* 21853 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 21854 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 21855 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 21856 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21857} { 21858 2 102 202 302 102 2 - - - - 21859 4 104 204 304 104 4 - - - - 21860 6 106 206 306 106 6 206 6 - - 21861 8 108 208 308 108 8 - - - - 21862 10 110 210 310 110 10 - - 310 10 21863 12 112 212 312 112 12 212 12 - - 21864 14 114 214 314 114 14 - - - - 21865 16 116 216 316 116 16 - - - - 21866 18 118 218 318 118 18 218 18 - - 21867 20 120 220 320 120 20 - - 320 20 21868 22 122 222 322 122 22 - - - - 21869 24 124 224 324 124 24 224 24 - - 21870 26 126 226 326 126 26 - - - - 21871 28 128 228 328 128 28 - - - - 21872 30 130 230 330 130 30 230 30 330 30 21873 32 132 232 332 132 32 - - - - 21874 34 134 234 334 134 34 - - - - 21875 36 136 236 336 136 36 236 36 - - 21876 38 138 238 338 138 38 - - - - 21877 40 140 240 340 140 40 - - 340 40 21878 42 142 242 342 142 42 242 42 - - 21879 44 144 244 344 144 44 - - - - 21880 46 146 246 346 146 46 - - - - 21881 48 148 248 348 148 48 248 48 - - 21882 50 150 250 350 150 50 - - 350 50 21883 52 152 252 352 152 52 - - - - 21884 54 154 254 354 154 54 254 54 - - 21885 56 156 256 356 156 56 - - - - 21886 58 158 258 358 158 58 - - - - 21887 60 160 260 360 160 60 260 60 360 60 21888 62 162 262 362 162 62 - - - - 21889 64 164 264 364 164 64 - - - - 21890 66 166 266 366 166 66 266 66 - - 21891 68 168 268 368 168 68 - - - - 21892 70 170 270 370 170 70 - - 370 70 21893 72 172 272 372 172 72 272 72 - - 21894 74 174 274 374 174 74 - - - - 21895 76 176 276 376 176 76 - - - - 21896 78 178 278 378 178 78 278 78 - - 21897 80 180 280 380 180 80 - - 380 80 21898 82 182 282 382 182 82 - - - - 21899 84 184 284 384 184 84 284 84 - - 21900 86 186 286 386 186 86 - - - - 21901 88 188 288 388 188 88 - - - - 21902 90 190 290 390 190 90 290 90 390 90 21903 92 192 292 392 192 92 - - - - 21904 94 194 294 394 194 94 - - - - 21905 - - - - 100 0 - - - - 21906 - - - - - - - - 300 0 21907 - - - - - - - - 305 5 21908 - - - - - - - - 315 15 21909 - - - - - - - - 325 25 21910 - - - - - - - - 335 35 21911 - - - - - - - - 345 45 21912 - - - - - - - - 355 55 21913 - - - - - - - - 365 65 21914 - - - - - - - - 375 75 21915 - - - - - - - - 385 85 21916 - - - - - - - - 395 95 21917} 21918do_execsql_test joinD-748 { 21919 SELECT t1.*, t2.*, t3.*, t4.* 21920 FROM t1 RIGHT JOIN t2 ON t2.x>0 21921 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 21922 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 21923 WHERE t1.b IS NOT DISTINCT FROM t2.b 21924 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21925} { 21926 2 102 202 302 102 2 - - - - 21927 4 104 204 304 104 4 - - - - 21928 6 106 206 306 106 6 206 6 - - 21929 8 108 208 308 108 8 - - - - 21930 10 110 210 310 110 10 - - 310 10 21931 12 112 212 312 112 12 212 12 - - 21932 14 114 214 314 114 14 - - - - 21933 16 116 216 316 116 16 - - - - 21934 18 118 218 318 118 18 218 18 - - 21935 20 120 220 320 120 20 - - 320 20 21936 22 122 222 322 122 22 - - - - 21937 24 124 224 324 124 24 224 24 - - 21938 26 126 226 326 126 26 - - - - 21939 28 128 228 328 128 28 - - - - 21940 30 130 230 330 130 30 230 30 330 30 21941 32 132 232 332 132 32 - - - - 21942 34 134 234 334 134 34 - - - - 21943 36 136 236 336 136 36 236 36 - - 21944 38 138 238 338 138 38 - - - - 21945 40 140 240 340 140 40 - - 340 40 21946 42 142 242 342 142 42 242 42 - - 21947 44 144 244 344 144 44 - - - - 21948 46 146 246 346 146 46 - - - - 21949 48 148 248 348 148 48 248 48 - - 21950 50 150 250 350 150 50 - - 350 50 21951 52 152 252 352 152 52 - - - - 21952 54 154 254 354 154 54 254 54 - - 21953 56 156 256 356 156 56 - - - - 21954 58 158 258 358 158 58 - - - - 21955 60 160 260 360 160 60 260 60 360 60 21956 62 162 262 362 162 62 - - - - 21957 64 164 264 364 164 64 - - - - 21958 66 166 266 366 166 66 266 66 - - 21959 68 168 268 368 168 68 - - - - 21960 70 170 270 370 170 70 - - 370 70 21961 72 172 272 372 172 72 272 72 - - 21962 74 174 274 374 174 74 - - - - 21963 76 176 276 376 176 76 - - - - 21964 78 178 278 378 178 78 278 78 - - 21965 80 180 280 380 180 80 - - 380 80 21966 82 182 282 382 182 82 - - - - 21967 84 184 284 384 184 84 284 84 - - 21968 86 186 286 386 186 86 - - - - 21969 88 188 288 388 188 88 - - - - 21970 90 190 290 390 190 90 290 90 390 90 21971 92 192 292 392 192 92 - - - - 21972 94 194 294 394 194 94 - - - - 21973 - - - - - - - - 300 0 21974} 21975do_execsql_test joinD-749 { 21976 SELECT t1.*, t2.*, t3.*, t4.* 21977 FROM t1 RIGHT JOIN t2 ON t2.x>0 21978 LEFT JOIN t3 ON t3.y>0 21979 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 21980 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 21981 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21982} { 21983 6 106 206 306 106 6 206 6 - - 21984 12 112 212 312 112 12 212 12 - - 21985 18 118 218 318 118 18 218 18 - - 21986 24 124 224 324 124 24 224 24 - - 21987 30 130 230 330 130 30 230 30 330 30 21988 36 136 236 336 136 36 236 36 - - 21989 42 142 242 342 142 42 242 42 - - 21990 48 148 248 348 148 48 248 48 - - 21991 54 154 254 354 154 54 254 54 - - 21992 60 160 260 360 160 60 260 60 360 60 21993 66 166 266 366 166 66 266 66 - - 21994 72 172 272 372 172 72 272 72 - - 21995 78 178 278 378 178 78 278 78 - - 21996 84 184 284 384 184 84 284 84 - - 21997 90 190 290 390 190 90 290 90 390 90 21998 - - - - - - - - 300 0 21999} 22000do_execsql_test joinD-750 { 22001 SELECT t1.*, t2.*, t3.*, t4.* 22002 FROM t1 RIGHT JOIN t2 ON t2.x>0 22003 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 22004 FULL JOIN t4 ON t4.z>0 22005 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 22006 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22007} { 22008 10 110 210 310 110 10 - - 310 10 22009 20 120 220 320 120 20 - - 320 20 22010 30 130 230 330 130 30 230 30 330 30 22011 40 140 240 340 140 40 - - 340 40 22012 50 150 250 350 150 50 - - 350 50 22013 60 160 260 360 160 60 260 60 360 60 22014 70 170 270 370 170 70 - - 370 70 22015 80 180 280 380 180 80 - - 380 80 22016 90 190 290 390 190 90 290 90 390 90 22017} 22018do_execsql_test joinD-751 { 22019 SELECT t1.*, t2.*, t3.*, t4.* 22020 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 22021 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 22022 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 22023 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22024} { 22025 2 102 202 302 102 2 - - - - 22026 4 104 204 304 104 4 - - - - 22027 6 106 206 306 106 6 206 6 - - 22028 8 108 208 308 108 8 - - - - 22029 10 110 210 310 110 10 - - 310 10 22030 12 112 212 312 112 12 212 12 - - 22031 14 114 214 314 114 14 - - - - 22032 16 116 216 316 116 16 - - - - 22033 18 118 218 318 118 18 218 18 - - 22034 20 120 220 320 120 20 - - 320 20 22035 22 122 222 322 122 22 - - - - 22036 24 124 224 324 124 24 224 24 - - 22037 26 126 226 326 126 26 - - - - 22038 28 128 228 328 128 28 - - - - 22039 30 130 230 330 130 30 230 30 330 30 22040 32 132 232 332 132 32 - - - - 22041 34 134 234 334 134 34 - - - - 22042 36 136 236 336 136 36 236 36 - - 22043 38 138 238 338 138 38 - - - - 22044 40 140 240 340 140 40 - - 340 40 22045 42 142 242 342 142 42 242 42 - - 22046 44 144 244 344 144 44 - - - - 22047 46 146 246 346 146 46 - - - - 22048 48 148 248 348 148 48 248 48 - - 22049 50 150 250 350 150 50 - - 350 50 22050 52 152 252 352 152 52 - - - - 22051 54 154 254 354 154 54 254 54 - - 22052 56 156 256 356 156 56 - - - - 22053 58 158 258 358 158 58 - - - - 22054 60 160 260 360 160 60 260 60 360 60 22055 62 162 262 362 162 62 - - - - 22056 64 164 264 364 164 64 - - - - 22057 66 166 266 366 166 66 266 66 - - 22058 68 168 268 368 168 68 - - - - 22059 70 170 270 370 170 70 - - 370 70 22060 72 172 272 372 172 72 272 72 - - 22061 74 174 274 374 174 74 - - - - 22062 76 176 276 376 176 76 - - - - 22063 78 178 278 378 178 78 278 78 - - 22064 80 180 280 380 180 80 - - 380 80 22065 82 182 282 382 182 82 - - - - 22066 84 184 284 384 184 84 284 84 - - 22067 86 186 286 386 186 86 - - - - 22068 88 188 288 388 188 88 - - - - 22069 90 190 290 390 190 90 290 90 390 90 22070 92 192 292 392 192 92 - - - - 22071 94 194 294 394 194 94 - - - - 22072 - - - - 100 0 - - - - 22073 - - - - - - - - 300 0 22074 - - - - - - - - 305 5 22075 - - - - - - - - 315 15 22076 - - - - - - - - 325 25 22077 - - - - - - - - 335 35 22078 - - - - - - - - 345 45 22079 - - - - - - - - 355 55 22080 - - - - - - - - 365 65 22081 - - - - - - - - 375 75 22082 - - - - - - - - 385 85 22083 - - - - - - - - 395 95 22084} 22085do_execsql_test joinD-752 { 22086 SELECT t1.*, t2.*, t3.*, t4.* 22087 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22088 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 22089 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 22090 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22091} { 22092 2 102 202 302 102 2 - - - - 22093 4 104 204 304 104 4 - - - - 22094 6 106 206 306 106 6 206 6 - - 22095 8 108 208 308 108 8 - - - - 22096 10 110 210 310 110 10 - - 310 10 22097 12 112 212 312 112 12 212 12 - - 22098 14 114 214 314 114 14 - - - - 22099 16 116 216 316 116 16 - - - - 22100 18 118 218 318 118 18 218 18 - - 22101 20 120 220 320 120 20 - - 320 20 22102 22 122 222 322 122 22 - - - - 22103 24 124 224 324 124 24 224 24 - - 22104 26 126 226 326 126 26 - - - - 22105 28 128 228 328 128 28 - - - - 22106 30 130 230 330 130 30 230 30 330 30 22107 32 132 232 332 132 32 - - - - 22108 34 134 234 334 134 34 - - - - 22109 36 136 236 336 136 36 236 36 - - 22110 38 138 238 338 138 38 - - - - 22111 40 140 240 340 140 40 - - 340 40 22112 42 142 242 342 142 42 242 42 - - 22113 44 144 244 344 144 44 - - - - 22114 46 146 246 346 146 46 - - - - 22115 48 148 248 348 148 48 248 48 - - 22116 50 150 250 350 150 50 - - 350 50 22117 52 152 252 352 152 52 - - - - 22118 54 154 254 354 154 54 254 54 - - 22119 56 156 256 356 156 56 - - - - 22120 58 158 258 358 158 58 - - - - 22121 60 160 260 360 160 60 260 60 360 60 22122 62 162 262 362 162 62 - - - - 22123 64 164 264 364 164 64 - - - - 22124 66 166 266 366 166 66 266 66 - - 22125 68 168 268 368 168 68 - - - - 22126 70 170 270 370 170 70 - - 370 70 22127 72 172 272 372 172 72 272 72 - - 22128 74 174 274 374 174 74 - - - - 22129 76 176 276 376 176 76 - - - - 22130 78 178 278 378 178 78 278 78 - - 22131 80 180 280 380 180 80 - - 380 80 22132 82 182 282 382 182 82 - - - - 22133 84 184 284 384 184 84 284 84 - - 22134 86 186 286 386 186 86 - - - - 22135 88 188 288 388 188 88 - - - - 22136 90 190 290 390 190 90 290 90 390 90 22137 92 192 292 392 192 92 - - - - 22138 94 194 294 394 194 94 - - - - 22139 - - - - 100 0 - - - - 22140 - - - - - - - - 300 0 22141 - - - - - - - - 305 5 22142 - - - - - - - - 315 15 22143 - - - - - - - - 325 25 22144 - - - - - - - - 335 35 22145 - - - - - - - - 345 45 22146 - - - - - - - - 355 55 22147 - - - - - - - - 365 65 22148 - - - - - - - - 375 75 22149 - - - - - - - - 385 85 22150 - - - - - - - - 395 95 22151} 22152do_execsql_test joinD-753 { 22153 SELECT t1.*, t2.*, t3.*, t4.* 22154 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22155 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22156 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22157 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22158} { 22159 30 130 230 330 130 30 230 30 330 30 22160 60 160 260 360 160 60 260 60 360 60 22161 90 190 290 390 190 90 290 90 390 90 22162} 22163do_execsql_test joinD-754 { 22164 SELECT t1.*, t2.*, t3.*, t4.* 22165 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 22166 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22167 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22168 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22169} { 22170 30 130 230 330 130 30 230 30 330 30 22171 60 160 260 360 160 60 260 60 360 60 22172 90 190 290 390 190 90 290 90 390 90 22173} 22174do_execsql_test joinD-755 { 22175 SELECT t1.*, t2.*, t3.*, t4.* 22176 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22177 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22178 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22179 WHERE t2.x>0 22180 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22181} { 22182 30 130 230 330 130 30 230 30 330 30 22183 60 160 260 360 160 60 260 60 360 60 22184 90 190 290 390 190 90 290 90 390 90 22185} 22186do_execsql_test joinD-756 { 22187 SELECT t1.*, t2.*, t3.*, t4.* 22188 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22189 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22190 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22191 WHERE (t2.x>0 OR t2.x IS NULL) 22192 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22193} { 22194 30 130 230 330 130 30 230 30 330 30 22195 60 160 260 360 160 60 260 60 360 60 22196 90 190 290 390 190 90 290 90 390 90 22197} 22198do_execsql_test joinD-757 { 22199 SELECT t1.*, t2.*, t3.*, t4.* 22200 FROM t1 RIGHT JOIN t2 ON true 22201 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22202 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22203 WHERE t1.b=t2.b AND t2.x>0 22204 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22205} { 22206 30 130 230 330 130 30 230 30 330 30 22207 60 160 260 360 160 60 260 60 360 60 22208 90 190 290 390 190 90 290 90 390 90 22209} 22210do_execsql_test joinD-758 { 22211 SELECT t1.*, t2.*, t3.*, t4.* 22212 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22213 RIGHT JOIN t3 ON t1.c=t3.c 22214 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22215 WHERE t3.y>0 22216 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22217} { 22218 30 130 230 330 130 30 230 30 330 30 22219 60 160 260 360 160 60 260 60 360 60 22220 90 190 290 390 190 90 290 90 390 90 22221} 22222do_execsql_test joinD-759 { 22223 SELECT t1.*, t2.*, t3.*, t4.* 22224 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22225 RIGHT JOIN t3 ON t1.c=t3.c 22226 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22227 WHERE t3.y>0 OR t3.y IS NULL 22228 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22229} { 22230 30 130 230 330 130 30 230 30 330 30 22231 60 160 260 360 160 60 260 60 360 60 22232 90 190 290 390 190 90 290 90 390 90 22233} 22234do_execsql_test joinD-760 { 22235 SELECT t1.*, t2.*, t3.*, t4.* 22236 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22237 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22238 INNER JOIN t4 ON t1.d=t4.d 22239 WHERE t4.z>0 22240 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22241} { 22242 30 130 230 330 130 30 230 30 330 30 22243 60 160 260 360 160 60 260 60 360 60 22244 90 190 290 390 190 90 290 90 390 90 22245} 22246do_execsql_test joinD-761 { 22247 SELECT t1.*, t2.*, t3.*, t4.* 22248 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22249 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22250 INNER JOIN t4 ON t1.d=t4.d 22251 WHERE t4.z IS NULL OR t4.z>0 22252 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22253} { 22254 30 130 230 330 130 30 230 30 330 30 22255 60 160 260 360 160 60 260 60 360 60 22256 90 190 290 390 190 90 290 90 390 90 22257} 22258do_execsql_test joinD-762 { 22259 SELECT t1.*, t2.*, t3.*, t4.* 22260 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22261 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22262 INNER JOIN t4 ON t1.d=t4.d 22263 WHERE t2.x>0 AND t4.z>0 22264 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22265} { 22266 30 130 230 330 130 30 230 30 330 30 22267 60 160 260 360 160 60 260 60 360 60 22268 90 190 290 390 190 90 290 90 390 90 22269} 22270do_execsql_test joinD-763 { 22271 SELECT t1.*, t2.*, t3.*, t4.* 22272 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22273 RIGHT JOIN t3 ON t1.c=t3.c 22274 INNER JOIN t4 ON t1.d=t4.d 22275 WHERE t4.z>0 AND t3.y>0 22276 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22277} { 22278 30 130 230 330 130 30 230 30 330 30 22279 60 160 260 360 160 60 260 60 360 60 22280 90 190 290 390 190 90 290 90 390 90 22281} 22282do_execsql_test joinD-764 { 22283 SELECT t1.*, t2.*, t3.*, t4.* 22284 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22285 RIGHT JOIN t3 ON t1.c=t3.c 22286 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22287 WHERE t2.x>0 AND t3.y>0 22288 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22289} { 22290 30 130 230 330 130 30 230 30 330 30 22291 60 160 260 360 160 60 260 60 360 60 22292 90 190 290 390 190 90 290 90 390 90 22293} 22294do_execsql_test joinD-765 { 22295 SELECT t1.*, t2.*, t3.*, t4.* 22296 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22297 RIGHT JOIN t3 ON t1.c=t3.c 22298 INNER JOIN t4 ON t1.d=t4.d 22299 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 22300 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22301} { 22302 30 130 230 330 130 30 230 30 330 30 22303 60 160 260 360 160 60 260 60 360 60 22304 90 190 290 390 190 90 290 90 390 90 22305} 22306do_execsql_test joinD-766 { 22307 SELECT t1.*, t2.*, t3.*, t4.* 22308 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 22309 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 22310 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 22311 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22312} { 22313 30 130 230 330 130 30 230 30 330 30 22314 60 160 260 360 160 60 260 60 360 60 22315 90 190 290 390 190 90 290 90 390 90 22316} 22317do_execsql_test joinD-767 { 22318 SELECT t1.*, t2.*, t3.*, t4.* 22319 FROM t1 RIGHT JOIN t2 ON t2.x>0 22320 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 22321 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 22322 WHERE t1.b IS NOT DISTINCT FROM t2.b 22323 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22324} { 22325 30 130 230 330 130 30 230 30 330 30 22326 60 160 260 360 160 60 260 60 360 60 22327 90 190 290 390 190 90 290 90 390 90 22328} 22329do_execsql_test joinD-768 { 22330 SELECT t1.*, t2.*, t3.*, t4.* 22331 FROM t1 RIGHT JOIN t2 ON t2.x>0 22332 RIGHT JOIN t3 ON t3.y>0 22333 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 22334 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 22335 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22336} { 22337 30 130 230 330 130 30 230 30 330 30 22338 60 160 260 360 160 60 260 60 360 60 22339 90 190 290 390 190 90 290 90 390 90 22340} 22341do_execsql_test joinD-769 { 22342 SELECT t1.*, t2.*, t3.*, t4.* 22343 FROM t1 RIGHT JOIN t2 ON t2.x>0 22344 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 22345 INNER JOIN t4 ON t4.z>0 22346 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 22347 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22348} { 22349 30 130 230 330 130 30 230 30 330 30 22350 60 160 260 360 160 60 260 60 360 60 22351 90 190 290 390 190 90 290 90 390 90 22352} 22353do_execsql_test joinD-770 { 22354 SELECT t1.*, t2.*, t3.*, t4.* 22355 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 22356 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22357 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22358 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22359} { 22360 30 130 230 330 130 30 230 30 330 30 22361 60 160 260 360 160 60 260 60 360 60 22362 90 190 290 390 190 90 290 90 390 90 22363} 22364do_execsql_test joinD-771 { 22365 SELECT t1.*, t2.*, t3.*, t4.* 22366 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22367 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 22368 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22369 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22370} { 22371 30 130 230 330 130 30 230 30 330 30 22372 60 160 260 360 160 60 260 60 360 60 22373 90 190 290 390 190 90 290 90 390 90 22374} 22375do_execsql_test joinD-772 { 22376 SELECT t1.*, t2.*, t3.*, t4.* 22377 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22378 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22379 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22380 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22381} { 22382 6 106 206 306 106 6 206 6 - - 22383 12 112 212 312 112 12 212 12 - - 22384 18 118 218 318 118 18 218 18 - - 22385 24 124 224 324 124 24 224 24 - - 22386 30 130 230 330 130 30 230 30 330 30 22387 36 136 236 336 136 36 236 36 - - 22388 42 142 242 342 142 42 242 42 - - 22389 48 148 248 348 148 48 248 48 - - 22390 54 154 254 354 154 54 254 54 - - 22391 60 160 260 360 160 60 260 60 360 60 22392 66 166 266 366 166 66 266 66 - - 22393 72 172 272 372 172 72 272 72 - - 22394 78 178 278 378 178 78 278 78 - - 22395 84 184 284 384 184 84 284 84 - - 22396 90 190 290 390 190 90 290 90 390 90 22397 - - - - - - 200 0 - - 22398 - - - - - - 203 3 - - 22399 - - - - - - 209 9 - - 22400 - - - - - - 215 15 - - 22401 - - - - - - 221 21 - - 22402 - - - - - - 227 27 - - 22403 - - - - - - 233 33 - - 22404 - - - - - - 239 39 - - 22405 - - - - - - 245 45 - - 22406 - - - - - - 251 51 - - 22407 - - - - - - 257 57 - - 22408 - - - - - - 263 63 - - 22409 - - - - - - 269 69 - - 22410 - - - - - - 275 75 - - 22411 - - - - - - 281 81 - - 22412 - - - - - - 287 87 - - 22413 - - - - - - 293 93 - - 22414} 22415do_execsql_test joinD-773 { 22416 SELECT t1.*, t2.*, t3.*, t4.* 22417 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 22418 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22419 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22420 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22421} { 22422 6 106 206 306 106 6 206 6 - - 22423 12 112 212 312 112 12 212 12 - - 22424 18 118 218 318 118 18 218 18 - - 22425 24 124 224 324 124 24 224 24 - - 22426 30 130 230 330 130 30 230 30 330 30 22427 36 136 236 336 136 36 236 36 - - 22428 42 142 242 342 142 42 242 42 - - 22429 48 148 248 348 148 48 248 48 - - 22430 54 154 254 354 154 54 254 54 - - 22431 60 160 260 360 160 60 260 60 360 60 22432 66 166 266 366 166 66 266 66 - - 22433 72 172 272 372 172 72 272 72 - - 22434 78 178 278 378 178 78 278 78 - - 22435 84 184 284 384 184 84 284 84 - - 22436 90 190 290 390 190 90 290 90 390 90 22437 - - - - - - 200 0 - - 22438 - - - - - - 203 3 - - 22439 - - - - - - 209 9 - - 22440 - - - - - - 215 15 - - 22441 - - - - - - 221 21 - - 22442 - - - - - - 227 27 - - 22443 - - - - - - 233 33 - - 22444 - - - - - - 239 39 - - 22445 - - - - - - 245 45 - - 22446 - - - - - - 251 51 - - 22447 - - - - - - 257 57 - - 22448 - - - - - - 263 63 - - 22449 - - - - - - 269 69 - - 22450 - - - - - - 275 75 - - 22451 - - - - - - 281 81 - - 22452 - - - - - - 287 87 - - 22453 - - - - - - 293 93 - - 22454} 22455do_execsql_test joinD-774 { 22456 SELECT t1.*, t2.*, t3.*, t4.* 22457 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22458 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22459 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22460 WHERE t2.x>0 22461 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22462} { 22463 6 106 206 306 106 6 206 6 - - 22464 12 112 212 312 112 12 212 12 - - 22465 18 118 218 318 118 18 218 18 - - 22466 24 124 224 324 124 24 224 24 - - 22467 30 130 230 330 130 30 230 30 330 30 22468 36 136 236 336 136 36 236 36 - - 22469 42 142 242 342 142 42 242 42 - - 22470 48 148 248 348 148 48 248 48 - - 22471 54 154 254 354 154 54 254 54 - - 22472 60 160 260 360 160 60 260 60 360 60 22473 66 166 266 366 166 66 266 66 - - 22474 72 172 272 372 172 72 272 72 - - 22475 78 178 278 378 178 78 278 78 - - 22476 84 184 284 384 184 84 284 84 - - 22477 90 190 290 390 190 90 290 90 390 90 22478} 22479do_execsql_test joinD-775 { 22480 SELECT t1.*, t2.*, t3.*, t4.* 22481 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22482 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22483 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22484 WHERE (t2.x>0 OR t2.x IS NULL) 22485 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22486} { 22487 6 106 206 306 106 6 206 6 - - 22488 12 112 212 312 112 12 212 12 - - 22489 18 118 218 318 118 18 218 18 - - 22490 24 124 224 324 124 24 224 24 - - 22491 30 130 230 330 130 30 230 30 330 30 22492 36 136 236 336 136 36 236 36 - - 22493 42 142 242 342 142 42 242 42 - - 22494 48 148 248 348 148 48 248 48 - - 22495 54 154 254 354 154 54 254 54 - - 22496 60 160 260 360 160 60 260 60 360 60 22497 66 166 266 366 166 66 266 66 - - 22498 72 172 272 372 172 72 272 72 - - 22499 78 178 278 378 178 78 278 78 - - 22500 84 184 284 384 184 84 284 84 - - 22501 90 190 290 390 190 90 290 90 390 90 22502 - - - - - - 200 0 - - 22503 - - - - - - 203 3 - - 22504 - - - - - - 209 9 - - 22505 - - - - - - 215 15 - - 22506 - - - - - - 221 21 - - 22507 - - - - - - 227 27 - - 22508 - - - - - - 233 33 - - 22509 - - - - - - 239 39 - - 22510 - - - - - - 245 45 - - 22511 - - - - - - 251 51 - - 22512 - - - - - - 257 57 - - 22513 - - - - - - 263 63 - - 22514 - - - - - - 269 69 - - 22515 - - - - - - 275 75 - - 22516 - - - - - - 281 81 - - 22517 - - - - - - 287 87 - - 22518 - - - - - - 293 93 - - 22519} 22520do_execsql_test joinD-776 { 22521 SELECT t1.*, t2.*, t3.*, t4.* 22522 FROM t1 RIGHT JOIN t2 ON true 22523 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22524 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22525 WHERE t1.b=t2.b AND t2.x>0 22526 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22527} { 22528 6 106 206 306 106 6 206 6 - - 22529 12 112 212 312 112 12 212 12 - - 22530 18 118 218 318 118 18 218 18 - - 22531 24 124 224 324 124 24 224 24 - - 22532 30 130 230 330 130 30 230 30 330 30 22533 36 136 236 336 136 36 236 36 - - 22534 42 142 242 342 142 42 242 42 - - 22535 48 148 248 348 148 48 248 48 - - 22536 54 154 254 354 154 54 254 54 - - 22537 60 160 260 360 160 60 260 60 360 60 22538 66 166 266 366 166 66 266 66 - - 22539 72 172 272 372 172 72 272 72 - - 22540 78 178 278 378 178 78 278 78 - - 22541 84 184 284 384 184 84 284 84 - - 22542 90 190 290 390 190 90 290 90 390 90 22543} 22544do_execsql_test joinD-777 { 22545 SELECT t1.*, t2.*, t3.*, t4.* 22546 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22547 RIGHT JOIN t3 ON t1.c=t3.c 22548 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22549 WHERE t3.y>0 22550 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22551} { 22552 6 106 206 306 106 6 206 6 - - 22553 12 112 212 312 112 12 212 12 - - 22554 18 118 218 318 118 18 218 18 - - 22555 24 124 224 324 124 24 224 24 - - 22556 30 130 230 330 130 30 230 30 330 30 22557 36 136 236 336 136 36 236 36 - - 22558 42 142 242 342 142 42 242 42 - - 22559 48 148 248 348 148 48 248 48 - - 22560 54 154 254 354 154 54 254 54 - - 22561 60 160 260 360 160 60 260 60 360 60 22562 66 166 266 366 166 66 266 66 - - 22563 72 172 272 372 172 72 272 72 - - 22564 78 178 278 378 178 78 278 78 - - 22565 84 184 284 384 184 84 284 84 - - 22566 90 190 290 390 190 90 290 90 390 90 22567 - - - - - - 203 3 - - 22568 - - - - - - 209 9 - - 22569 - - - - - - 215 15 - - 22570 - - - - - - 221 21 - - 22571 - - - - - - 227 27 - - 22572 - - - - - - 233 33 - - 22573 - - - - - - 239 39 - - 22574 - - - - - - 245 45 - - 22575 - - - - - - 251 51 - - 22576 - - - - - - 257 57 - - 22577 - - - - - - 263 63 - - 22578 - - - - - - 269 69 - - 22579 - - - - - - 275 75 - - 22580 - - - - - - 281 81 - - 22581 - - - - - - 287 87 - - 22582 - - - - - - 293 93 - - 22583} 22584do_execsql_test joinD-778 { 22585 SELECT t1.*, t2.*, t3.*, t4.* 22586 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22587 RIGHT JOIN t3 ON t1.c=t3.c 22588 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22589 WHERE t3.y>0 OR t3.y IS NULL 22590 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22591} { 22592 6 106 206 306 106 6 206 6 - - 22593 12 112 212 312 112 12 212 12 - - 22594 18 118 218 318 118 18 218 18 - - 22595 24 124 224 324 124 24 224 24 - - 22596 30 130 230 330 130 30 230 30 330 30 22597 36 136 236 336 136 36 236 36 - - 22598 42 142 242 342 142 42 242 42 - - 22599 48 148 248 348 148 48 248 48 - - 22600 54 154 254 354 154 54 254 54 - - 22601 60 160 260 360 160 60 260 60 360 60 22602 66 166 266 366 166 66 266 66 - - 22603 72 172 272 372 172 72 272 72 - - 22604 78 178 278 378 178 78 278 78 - - 22605 84 184 284 384 184 84 284 84 - - 22606 90 190 290 390 190 90 290 90 390 90 22607 - - - - - - 203 3 - - 22608 - - - - - - 209 9 - - 22609 - - - - - - 215 15 - - 22610 - - - - - - 221 21 - - 22611 - - - - - - 227 27 - - 22612 - - - - - - 233 33 - - 22613 - - - - - - 239 39 - - 22614 - - - - - - 245 45 - - 22615 - - - - - - 251 51 - - 22616 - - - - - - 257 57 - - 22617 - - - - - - 263 63 - - 22618 - - - - - - 269 69 - - 22619 - - - - - - 275 75 - - 22620 - - - - - - 281 81 - - 22621 - - - - - - 287 87 - - 22622 - - - - - - 293 93 - - 22623} 22624do_execsql_test joinD-779 { 22625 SELECT t1.*, t2.*, t3.*, t4.* 22626 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22627 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22628 LEFT JOIN t4 ON t1.d=t4.d 22629 WHERE t4.z>0 22630 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22631} { 22632 30 130 230 330 130 30 230 30 330 30 22633 60 160 260 360 160 60 260 60 360 60 22634 90 190 290 390 190 90 290 90 390 90 22635} 22636do_execsql_test joinD-780 { 22637 SELECT t1.*, t2.*, t3.*, t4.* 22638 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22639 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22640 LEFT JOIN t4 ON t1.d=t4.d 22641 WHERE t4.z IS NULL OR t4.z>0 22642 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22643} { 22644 6 106 206 306 106 6 206 6 - - 22645 12 112 212 312 112 12 212 12 - - 22646 18 118 218 318 118 18 218 18 - - 22647 24 124 224 324 124 24 224 24 - - 22648 30 130 230 330 130 30 230 30 330 30 22649 36 136 236 336 136 36 236 36 - - 22650 42 142 242 342 142 42 242 42 - - 22651 48 148 248 348 148 48 248 48 - - 22652 54 154 254 354 154 54 254 54 - - 22653 60 160 260 360 160 60 260 60 360 60 22654 66 166 266 366 166 66 266 66 - - 22655 72 172 272 372 172 72 272 72 - - 22656 78 178 278 378 178 78 278 78 - - 22657 84 184 284 384 184 84 284 84 - - 22658 90 190 290 390 190 90 290 90 390 90 22659 - - - - - - 200 0 - - 22660 - - - - - - 203 3 - - 22661 - - - - - - 209 9 - - 22662 - - - - - - 215 15 - - 22663 - - - - - - 221 21 - - 22664 - - - - - - 227 27 - - 22665 - - - - - - 233 33 - - 22666 - - - - - - 239 39 - - 22667 - - - - - - 245 45 - - 22668 - - - - - - 251 51 - - 22669 - - - - - - 257 57 - - 22670 - - - - - - 263 63 - - 22671 - - - - - - 269 69 - - 22672 - - - - - - 275 75 - - 22673 - - - - - - 281 81 - - 22674 - - - - - - 287 87 - - 22675 - - - - - - 293 93 - - 22676} 22677do_execsql_test joinD-781 { 22678 SELECT t1.*, t2.*, t3.*, t4.* 22679 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22680 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22681 LEFT JOIN t4 ON t1.d=t4.d 22682 WHERE t2.x>0 AND t4.z>0 22683 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22684} { 22685 30 130 230 330 130 30 230 30 330 30 22686 60 160 260 360 160 60 260 60 360 60 22687 90 190 290 390 190 90 290 90 390 90 22688} 22689do_execsql_test joinD-782 { 22690 SELECT t1.*, t2.*, t3.*, t4.* 22691 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22692 RIGHT JOIN t3 ON t1.c=t3.c 22693 LEFT JOIN t4 ON t1.d=t4.d 22694 WHERE t4.z>0 AND t3.y>0 22695 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22696} { 22697 30 130 230 330 130 30 230 30 330 30 22698 60 160 260 360 160 60 260 60 360 60 22699 90 190 290 390 190 90 290 90 390 90 22700} 22701do_execsql_test joinD-783 { 22702 SELECT t1.*, t2.*, t3.*, t4.* 22703 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22704 RIGHT JOIN t3 ON t1.c=t3.c 22705 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22706 WHERE t2.x>0 AND t3.y>0 22707 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22708} { 22709 6 106 206 306 106 6 206 6 - - 22710 12 112 212 312 112 12 212 12 - - 22711 18 118 218 318 118 18 218 18 - - 22712 24 124 224 324 124 24 224 24 - - 22713 30 130 230 330 130 30 230 30 330 30 22714 36 136 236 336 136 36 236 36 - - 22715 42 142 242 342 142 42 242 42 - - 22716 48 148 248 348 148 48 248 48 - - 22717 54 154 254 354 154 54 254 54 - - 22718 60 160 260 360 160 60 260 60 360 60 22719 66 166 266 366 166 66 266 66 - - 22720 72 172 272 372 172 72 272 72 - - 22721 78 178 278 378 178 78 278 78 - - 22722 84 184 284 384 184 84 284 84 - - 22723 90 190 290 390 190 90 290 90 390 90 22724} 22725do_execsql_test joinD-784 { 22726 SELECT t1.*, t2.*, t3.*, t4.* 22727 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22728 RIGHT JOIN t3 ON t1.c=t3.c 22729 LEFT JOIN t4 ON t1.d=t4.d 22730 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 22731 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22732} { 22733 30 130 230 330 130 30 230 30 330 30 22734 60 160 260 360 160 60 260 60 360 60 22735 90 190 290 390 190 90 290 90 390 90 22736} 22737do_execsql_test joinD-785 { 22738 SELECT t1.*, t2.*, t3.*, t4.* 22739 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 22740 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 22741 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 22742 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22743} { 22744 6 106 206 306 106 6 206 6 - - 22745 12 112 212 312 112 12 212 12 - - 22746 18 118 218 318 118 18 218 18 - - 22747 24 124 224 324 124 24 224 24 - - 22748 30 130 230 330 130 30 230 30 330 30 22749 36 136 236 336 136 36 236 36 - - 22750 42 142 242 342 142 42 242 42 - - 22751 48 148 248 348 148 48 248 48 - - 22752 54 154 254 354 154 54 254 54 - - 22753 60 160 260 360 160 60 260 60 360 60 22754 66 166 266 366 166 66 266 66 - - 22755 72 172 272 372 172 72 272 72 - - 22756 78 178 278 378 178 78 278 78 - - 22757 84 184 284 384 184 84 284 84 - - 22758 90 190 290 390 190 90 290 90 390 90 22759 - - - - - - 200 0 - - 22760 - - - - - - 203 3 - - 22761 - - - - - - 209 9 - - 22762 - - - - - - 215 15 - - 22763 - - - - - - 221 21 - - 22764 - - - - - - 227 27 - - 22765 - - - - - - 233 33 - - 22766 - - - - - - 239 39 - - 22767 - - - - - - 245 45 - - 22768 - - - - - - 251 51 - - 22769 - - - - - - 257 57 - - 22770 - - - - - - 263 63 - - 22771 - - - - - - 269 69 - - 22772 - - - - - - 275 75 - - 22773 - - - - - - 281 81 - - 22774 - - - - - - 287 87 - - 22775 - - - - - - 293 93 - - 22776} 22777do_execsql_test joinD-786 { 22778 SELECT t1.*, t2.*, t3.*, t4.* 22779 FROM t1 RIGHT JOIN t2 ON t2.x>0 22780 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 22781 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 22782 WHERE t1.b IS NOT DISTINCT FROM t2.b 22783 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22784} { 22785 6 106 206 306 106 6 206 6 - - 22786 12 112 212 312 112 12 212 12 - - 22787 18 118 218 318 118 18 218 18 - - 22788 24 124 224 324 124 24 224 24 - - 22789 30 130 230 330 130 30 230 30 330 30 22790 36 136 236 336 136 36 236 36 - - 22791 42 142 242 342 142 42 242 42 - - 22792 48 148 248 348 148 48 248 48 - - 22793 54 154 254 354 154 54 254 54 - - 22794 60 160 260 360 160 60 260 60 360 60 22795 66 166 266 366 166 66 266 66 - - 22796 72 172 272 372 172 72 272 72 - - 22797 78 178 278 378 178 78 278 78 - - 22798 84 184 284 384 184 84 284 84 - - 22799 90 190 290 390 190 90 290 90 390 90 22800 - - - - - - 200 0 - - 22801} 22802do_execsql_test joinD-787 { 22803 SELECT t1.*, t2.*, t3.*, t4.* 22804 FROM t1 RIGHT JOIN t2 ON t2.x>0 22805 RIGHT JOIN t3 ON t3.y>0 22806 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 22807 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 22808 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22809} { 22810 6 106 206 306 106 6 206 6 - - 22811 12 112 212 312 112 12 212 12 - - 22812 18 118 218 318 118 18 218 18 - - 22813 24 124 224 324 124 24 224 24 - - 22814 30 130 230 330 130 30 230 30 330 30 22815 36 136 236 336 136 36 236 36 - - 22816 42 142 242 342 142 42 242 42 - - 22817 48 148 248 348 148 48 248 48 - - 22818 54 154 254 354 154 54 254 54 - - 22819 60 160 260 360 160 60 260 60 360 60 22820 66 166 266 366 166 66 266 66 - - 22821 72 172 272 372 172 72 272 72 - - 22822 78 178 278 378 178 78 278 78 - - 22823 84 184 284 384 184 84 284 84 - - 22824 90 190 290 390 190 90 290 90 390 90 22825} 22826do_execsql_test joinD-788 { 22827 SELECT t1.*, t2.*, t3.*, t4.* 22828 FROM t1 RIGHT JOIN t2 ON t2.x>0 22829 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 22830 LEFT JOIN t4 ON t4.z>0 22831 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 22832 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22833} { 22834 30 130 230 330 130 30 230 30 330 30 22835 60 160 260 360 160 60 260 60 360 60 22836 90 190 290 390 190 90 290 90 390 90 22837} 22838do_execsql_test joinD-789 { 22839 SELECT t1.*, t2.*, t3.*, t4.* 22840 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 22841 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22842 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22843 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22844} { 22845 6 106 206 306 106 6 206 6 - - 22846 12 112 212 312 112 12 212 12 - - 22847 18 118 218 318 118 18 218 18 - - 22848 24 124 224 324 124 24 224 24 - - 22849 30 130 230 330 130 30 230 30 330 30 22850 36 136 236 336 136 36 236 36 - - 22851 42 142 242 342 142 42 242 42 - - 22852 48 148 248 348 148 48 248 48 - - 22853 54 154 254 354 154 54 254 54 - - 22854 60 160 260 360 160 60 260 60 360 60 22855 66 166 266 366 166 66 266 66 - - 22856 72 172 272 372 172 72 272 72 - - 22857 78 178 278 378 178 78 278 78 - - 22858 84 184 284 384 184 84 284 84 - - 22859 90 190 290 390 190 90 290 90 390 90 22860 - - - - - - 200 0 - - 22861 - - - - - - 203 3 - - 22862 - - - - - - 209 9 - - 22863 - - - - - - 215 15 - - 22864 - - - - - - 221 21 - - 22865 - - - - - - 227 27 - - 22866 - - - - - - 233 33 - - 22867 - - - - - - 239 39 - - 22868 - - - - - - 245 45 - - 22869 - - - - - - 251 51 - - 22870 - - - - - - 257 57 - - 22871 - - - - - - 263 63 - - 22872 - - - - - - 269 69 - - 22873 - - - - - - 275 75 - - 22874 - - - - - - 281 81 - - 22875 - - - - - - 287 87 - - 22876 - - - - - - 293 93 - - 22877} 22878do_execsql_test joinD-790 { 22879 SELECT t1.*, t2.*, t3.*, t4.* 22880 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22881 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 22882 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22883 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22884} { 22885 6 106 206 306 106 6 206 6 - - 22886 12 112 212 312 112 12 212 12 - - 22887 18 118 218 318 118 18 218 18 - - 22888 24 124 224 324 124 24 224 24 - - 22889 30 130 230 330 130 30 230 30 330 30 22890 36 136 236 336 136 36 236 36 - - 22891 42 142 242 342 142 42 242 42 - - 22892 48 148 248 348 148 48 248 48 - - 22893 54 154 254 354 154 54 254 54 - - 22894 60 160 260 360 160 60 260 60 360 60 22895 66 166 266 366 166 66 266 66 - - 22896 72 172 272 372 172 72 272 72 - - 22897 78 178 278 378 178 78 278 78 - - 22898 84 184 284 384 184 84 284 84 - - 22899 90 190 290 390 190 90 290 90 390 90 22900 - - - - - - 200 0 - - 22901 - - - - - - 203 3 - - 22902 - - - - - - 209 9 - - 22903 - - - - - - 215 15 - - 22904 - - - - - - 221 21 - - 22905 - - - - - - 227 27 - - 22906 - - - - - - 233 33 - - 22907 - - - - - - 239 39 - - 22908 - - - - - - 245 45 - - 22909 - - - - - - 251 51 - - 22910 - - - - - - 257 57 - - 22911 - - - - - - 263 63 - - 22912 - - - - - - 269 69 - - 22913 - - - - - - 275 75 - - 22914 - - - - - - 281 81 - - 22915 - - - - - - 287 87 - - 22916 - - - - - - 293 93 - - 22917} 22918do_execsql_test joinD-791 { 22919 SELECT t1.*, t2.*, t3.*, t4.* 22920 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22921 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22922 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 22923 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22924} { 22925 30 130 230 330 130 30 230 30 330 30 22926 60 160 260 360 160 60 260 60 360 60 22927 90 190 290 390 190 90 290 90 390 90 22928 - - - - - - - - 300 0 22929 - - - - - - - - 305 5 22930 - - - - - - - - 310 10 22931 - - - - - - - - 315 15 22932 - - - - - - - - 320 20 22933 - - - - - - - - 325 25 22934 - - - - - - - - 335 35 22935 - - - - - - - - 340 40 22936 - - - - - - - - 345 45 22937 - - - - - - - - 350 50 22938 - - - - - - - - 355 55 22939 - - - - - - - - 365 65 22940 - - - - - - - - 370 70 22941 - - - - - - - - 375 75 22942 - - - - - - - - 380 80 22943 - - - - - - - - 385 85 22944 - - - - - - - - 395 95 22945} 22946do_execsql_test joinD-792 { 22947 SELECT t1.*, t2.*, t3.*, t4.* 22948 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 22949 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22950 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 22951 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22952} { 22953 30 130 230 330 130 30 230 30 330 30 22954 60 160 260 360 160 60 260 60 360 60 22955 90 190 290 390 190 90 290 90 390 90 22956 - - - - - - - - 300 0 22957 - - - - - - - - 305 5 22958 - - - - - - - - 310 10 22959 - - - - - - - - 315 15 22960 - - - - - - - - 320 20 22961 - - - - - - - - 325 25 22962 - - - - - - - - 335 35 22963 - - - - - - - - 340 40 22964 - - - - - - - - 345 45 22965 - - - - - - - - 350 50 22966 - - - - - - - - 355 55 22967 - - - - - - - - 365 65 22968 - - - - - - - - 370 70 22969 - - - - - - - - 375 75 22970 - - - - - - - - 380 80 22971 - - - - - - - - 385 85 22972 - - - - - - - - 395 95 22973} 22974do_execsql_test joinD-793 { 22975 SELECT t1.*, t2.*, t3.*, t4.* 22976 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22977 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22978 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 22979 WHERE t2.x>0 22980 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22981} { 22982 30 130 230 330 130 30 230 30 330 30 22983 60 160 260 360 160 60 260 60 360 60 22984 90 190 290 390 190 90 290 90 390 90 22985} 22986do_execsql_test joinD-794 { 22987 SELECT t1.*, t2.*, t3.*, t4.* 22988 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22989 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22990 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 22991 WHERE (t2.x>0 OR t2.x IS NULL) 22992 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22993} { 22994 30 130 230 330 130 30 230 30 330 30 22995 60 160 260 360 160 60 260 60 360 60 22996 90 190 290 390 190 90 290 90 390 90 22997 - - - - - - - - 300 0 22998 - - - - - - - - 305 5 22999 - - - - - - - - 310 10 23000 - - - - - - - - 315 15 23001 - - - - - - - - 320 20 23002 - - - - - - - - 325 25 23003 - - - - - - - - 335 35 23004 - - - - - - - - 340 40 23005 - - - - - - - - 345 45 23006 - - - - - - - - 350 50 23007 - - - - - - - - 355 55 23008 - - - - - - - - 365 65 23009 - - - - - - - - 370 70 23010 - - - - - - - - 375 75 23011 - - - - - - - - 380 80 23012 - - - - - - - - 385 85 23013 - - - - - - - - 395 95 23014} 23015do_execsql_test joinD-795 { 23016 SELECT t1.*, t2.*, t3.*, t4.* 23017 FROM t1 RIGHT JOIN t2 ON true 23018 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23019 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 23020 WHERE t1.b=t2.b AND t2.x>0 23021 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23022} { 23023 30 130 230 330 130 30 230 30 330 30 23024 60 160 260 360 160 60 260 60 360 60 23025 90 190 290 390 190 90 290 90 390 90 23026} 23027do_execsql_test joinD-796 { 23028 SELECT t1.*, t2.*, t3.*, t4.* 23029 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23030 RIGHT JOIN t3 ON t1.c=t3.c 23031 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 23032 WHERE t3.y>0 23033 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23034} { 23035 30 130 230 330 130 30 230 30 330 30 23036 60 160 260 360 160 60 260 60 360 60 23037 90 190 290 390 190 90 290 90 390 90 23038} 23039do_execsql_test joinD-797 { 23040 SELECT t1.*, t2.*, t3.*, t4.* 23041 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23042 RIGHT JOIN t3 ON t1.c=t3.c 23043 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 23044 WHERE t3.y>0 OR t3.y IS NULL 23045 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23046} { 23047 30 130 230 330 130 30 230 30 330 30 23048 60 160 260 360 160 60 260 60 360 60 23049 90 190 290 390 190 90 290 90 390 90 23050 - - - - - - - - 300 0 23051 - - - - - - - - 305 5 23052 - - - - - - - - 310 10 23053 - - - - - - - - 315 15 23054 - - - - - - - - 320 20 23055 - - - - - - - - 325 25 23056 - - - - - - - - 335 35 23057 - - - - - - - - 340 40 23058 - - - - - - - - 345 45 23059 - - - - - - - - 350 50 23060 - - - - - - - - 355 55 23061 - - - - - - - - 365 65 23062 - - - - - - - - 370 70 23063 - - - - - - - - 375 75 23064 - - - - - - - - 380 80 23065 - - - - - - - - 385 85 23066 - - - - - - - - 395 95 23067} 23068do_execsql_test joinD-798 { 23069 SELECT t1.*, t2.*, t3.*, t4.* 23070 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23071 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23072 RIGHT JOIN t4 ON t1.d=t4.d 23073 WHERE t4.z>0 23074 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23075} { 23076 30 130 230 330 130 30 230 30 330 30 23077 60 160 260 360 160 60 260 60 360 60 23078 90 190 290 390 190 90 290 90 390 90 23079 - - - - - - - - 305 5 23080 - - - - - - - - 310 10 23081 - - - - - - - - 315 15 23082 - - - - - - - - 320 20 23083 - - - - - - - - 325 25 23084 - - - - - - - - 335 35 23085 - - - - - - - - 340 40 23086 - - - - - - - - 345 45 23087 - - - - - - - - 350 50 23088 - - - - - - - - 355 55 23089 - - - - - - - - 365 65 23090 - - - - - - - - 370 70 23091 - - - - - - - - 375 75 23092 - - - - - - - - 380 80 23093 - - - - - - - - 385 85 23094 - - - - - - - - 395 95 23095} 23096do_execsql_test joinD-799 { 23097 SELECT t1.*, t2.*, t3.*, t4.* 23098 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23099 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23100 RIGHT JOIN t4 ON t1.d=t4.d 23101 WHERE t4.z IS NULL OR t4.z>0 23102 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23103} { 23104 30 130 230 330 130 30 230 30 330 30 23105 60 160 260 360 160 60 260 60 360 60 23106 90 190 290 390 190 90 290 90 390 90 23107 - - - - - - - - 305 5 23108 - - - - - - - - 310 10 23109 - - - - - - - - 315 15 23110 - - - - - - - - 320 20 23111 - - - - - - - - 325 25 23112 - - - - - - - - 335 35 23113 - - - - - - - - 340 40 23114 - - - - - - - - 345 45 23115 - - - - - - - - 350 50 23116 - - - - - - - - 355 55 23117 - - - - - - - - 365 65 23118 - - - - - - - - 370 70 23119 - - - - - - - - 375 75 23120 - - - - - - - - 380 80 23121 - - - - - - - - 385 85 23122 - - - - - - - - 395 95 23123} 23124do_execsql_test joinD-800 { 23125 SELECT t1.*, t2.*, t3.*, t4.* 23126 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 23127 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23128 RIGHT JOIN t4 ON t1.d=t4.d 23129 WHERE t2.x>0 AND t4.z>0 23130 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23131} { 23132 30 130 230 330 130 30 230 30 330 30 23133 60 160 260 360 160 60 260 60 360 60 23134 90 190 290 390 190 90 290 90 390 90 23135} 23136do_execsql_test joinD-801 { 23137 SELECT t1.*, t2.*, t3.*, t4.* 23138 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23139 RIGHT JOIN t3 ON t1.c=t3.c 23140 RIGHT JOIN t4 ON t1.d=t4.d 23141 WHERE t4.z>0 AND t3.y>0 23142 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23143} { 23144 30 130 230 330 130 30 230 30 330 30 23145 60 160 260 360 160 60 260 60 360 60 23146 90 190 290 390 190 90 290 90 390 90 23147} 23148do_execsql_test joinD-802 { 23149 SELECT t1.*, t2.*, t3.*, t4.* 23150 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 23151 RIGHT JOIN t3 ON t1.c=t3.c 23152 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 23153 WHERE t2.x>0 AND t3.y>0 23154 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23155} { 23156 30 130 230 330 130 30 230 30 330 30 23157 60 160 260 360 160 60 260 60 360 60 23158 90 190 290 390 190 90 290 90 390 90 23159} 23160do_execsql_test joinD-803 { 23161 SELECT t1.*, t2.*, t3.*, t4.* 23162 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 23163 RIGHT JOIN t3 ON t1.c=t3.c 23164 RIGHT JOIN t4 ON t1.d=t4.d 23165 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 23166 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23167} { 23168 30 130 230 330 130 30 230 30 330 30 23169 60 160 260 360 160 60 260 60 360 60 23170 90 190 290 390 190 90 290 90 390 90 23171} 23172do_execsql_test joinD-804 { 23173 SELECT t1.*, t2.*, t3.*, t4.* 23174 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 23175 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 23176 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 23177 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23178} { 23179 30 130 230 330 130 30 230 30 330 30 23180 60 160 260 360 160 60 260 60 360 60 23181 90 190 290 390 190 90 290 90 390 90 23182 - - - - - - - - 300 0 23183 - - - - - - - - 305 5 23184 - - - - - - - - 310 10 23185 - - - - - - - - 315 15 23186 - - - - - - - - 320 20 23187 - - - - - - - - 325 25 23188 - - - - - - - - 335 35 23189 - - - - - - - - 340 40 23190 - - - - - - - - 345 45 23191 - - - - - - - - 350 50 23192 - - - - - - - - 355 55 23193 - - - - - - - - 365 65 23194 - - - - - - - - 370 70 23195 - - - - - - - - 375 75 23196 - - - - - - - - 380 80 23197 - - - - - - - - 385 85 23198 - - - - - - - - 395 95 23199} 23200do_execsql_test joinD-805 { 23201 SELECT t1.*, t2.*, t3.*, t4.* 23202 FROM t1 RIGHT JOIN t2 ON t2.x>0 23203 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 23204 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 23205 WHERE t1.b IS NOT DISTINCT FROM t2.b 23206 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23207} { 23208 30 130 230 330 130 30 230 30 330 30 23209 60 160 260 360 160 60 260 60 360 60 23210 90 190 290 390 190 90 290 90 390 90 23211 - - - - - - - - 300 0 23212 - - - - - - - - 305 5 23213 - - - - - - - - 310 10 23214 - - - - - - - - 320 20 23215 - - - - - - - - 325 25 23216 - - - - - - - - 335 35 23217 - - - - - - - - 340 40 23218 - - - - - - - - 350 50 23219 - - - - - - - - 355 55 23220 - - - - - - - - 365 65 23221 - - - - - - - - 370 70 23222 - - - - - - - - 380 80 23223 - - - - - - - - 385 85 23224 - - - - - - - - 395 95 23225} 23226do_execsql_test joinD-806 { 23227 SELECT t1.*, t2.*, t3.*, t4.* 23228 FROM t1 RIGHT JOIN t2 ON t2.x>0 23229 RIGHT JOIN t3 ON t3.y>0 23230 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 23231 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 23232 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23233} { 23234 30 130 230 330 130 30 230 30 330 30 23235 60 160 260 360 160 60 260 60 360 60 23236 90 190 290 390 190 90 290 90 390 90 23237 - - - - - - - - 300 0 23238} 23239do_execsql_test joinD-807 { 23240 SELECT t1.*, t2.*, t3.*, t4.* 23241 FROM t1 RIGHT JOIN t2 ON t2.x>0 23242 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 23243 RIGHT JOIN t4 ON t4.z>0 23244 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 23245 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23246} { 23247 30 130 230 330 130 30 230 30 330 30 23248 60 160 260 360 160 60 260 60 360 60 23249 90 190 290 390 190 90 290 90 390 90 23250} 23251do_execsql_test joinD-808 { 23252 SELECT t1.*, t2.*, t3.*, t4.* 23253 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 23254 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23255 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 23256 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23257} { 23258 30 130 230 330 130 30 230 30 330 30 23259 60 160 260 360 160 60 260 60 360 60 23260 90 190 290 390 190 90 290 90 390 90 23261 - - - - - - - - 300 0 23262 - - - - - - - - 305 5 23263 - - - - - - - - 310 10 23264 - - - - - - - - 315 15 23265 - - - - - - - - 320 20 23266 - - - - - - - - 325 25 23267 - - - - - - - - 335 35 23268 - - - - - - - - 340 40 23269 - - - - - - - - 345 45 23270 - - - - - - - - 350 50 23271 - - - - - - - - 355 55 23272 - - - - - - - - 365 65 23273 - - - - - - - - 370 70 23274 - - - - - - - - 375 75 23275 - - - - - - - - 380 80 23276 - - - - - - - - 385 85 23277 - - - - - - - - 395 95 23278} 23279do_execsql_test joinD-809 { 23280 SELECT t1.*, t2.*, t3.*, t4.* 23281 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23282 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 23283 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 23284 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23285} { 23286 30 130 230 330 130 30 230 30 330 30 23287 60 160 260 360 160 60 260 60 360 60 23288 90 190 290 390 190 90 290 90 390 90 23289 - - - - - - - - 300 0 23290 - - - - - - - - 305 5 23291 - - - - - - - - 310 10 23292 - - - - - - - - 315 15 23293 - - - - - - - - 320 20 23294 - - - - - - - - 325 25 23295 - - - - - - - - 335 35 23296 - - - - - - - - 340 40 23297 - - - - - - - - 345 45 23298 - - - - - - - - 350 50 23299 - - - - - - - - 355 55 23300 - - - - - - - - 365 65 23301 - - - - - - - - 370 70 23302 - - - - - - - - 375 75 23303 - - - - - - - - 380 80 23304 - - - - - - - - 385 85 23305 - - - - - - - - 395 95 23306} 23307do_execsql_test joinD-810 { 23308 SELECT t1.*, t2.*, t3.*, t4.* 23309 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23310 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23311 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23312 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23313} { 23314 6 106 206 306 106 6 206 6 - - 23315 12 112 212 312 112 12 212 12 - - 23316 18 118 218 318 118 18 218 18 - - 23317 24 124 224 324 124 24 224 24 - - 23318 30 130 230 330 130 30 230 30 330 30 23319 36 136 236 336 136 36 236 36 - - 23320 42 142 242 342 142 42 242 42 - - 23321 48 148 248 348 148 48 248 48 - - 23322 54 154 254 354 154 54 254 54 - - 23323 60 160 260 360 160 60 260 60 360 60 23324 66 166 266 366 166 66 266 66 - - 23325 72 172 272 372 172 72 272 72 - - 23326 78 178 278 378 178 78 278 78 - - 23327 84 184 284 384 184 84 284 84 - - 23328 90 190 290 390 190 90 290 90 390 90 23329 - - - - - - 200 0 - - 23330 - - - - - - 203 3 - - 23331 - - - - - - 209 9 - - 23332 - - - - - - 215 15 - - 23333 - - - - - - 221 21 - - 23334 - - - - - - 227 27 - - 23335 - - - - - - 233 33 - - 23336 - - - - - - 239 39 - - 23337 - - - - - - 245 45 - - 23338 - - - - - - 251 51 - - 23339 - - - - - - 257 57 - - 23340 - - - - - - 263 63 - - 23341 - - - - - - 269 69 - - 23342 - - - - - - 275 75 - - 23343 - - - - - - 281 81 - - 23344 - - - - - - 287 87 - - 23345 - - - - - - 293 93 - - 23346 - - - - - - - - 300 0 23347 - - - - - - - - 305 5 23348 - - - - - - - - 310 10 23349 - - - - - - - - 315 15 23350 - - - - - - - - 320 20 23351 - - - - - - - - 325 25 23352 - - - - - - - - 335 35 23353 - - - - - - - - 340 40 23354 - - - - - - - - 345 45 23355 - - - - - - - - 350 50 23356 - - - - - - - - 355 55 23357 - - - - - - - - 365 65 23358 - - - - - - - - 370 70 23359 - - - - - - - - 375 75 23360 - - - - - - - - 380 80 23361 - - - - - - - - 385 85 23362 - - - - - - - - 395 95 23363} 23364do_execsql_test joinD-811 { 23365 SELECT t1.*, t2.*, t3.*, t4.* 23366 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 23367 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23368 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23369 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23370} { 23371 6 106 206 306 106 6 206 6 - - 23372 12 112 212 312 112 12 212 12 - - 23373 18 118 218 318 118 18 218 18 - - 23374 24 124 224 324 124 24 224 24 - - 23375 30 130 230 330 130 30 230 30 330 30 23376 36 136 236 336 136 36 236 36 - - 23377 42 142 242 342 142 42 242 42 - - 23378 48 148 248 348 148 48 248 48 - - 23379 54 154 254 354 154 54 254 54 - - 23380 60 160 260 360 160 60 260 60 360 60 23381 66 166 266 366 166 66 266 66 - - 23382 72 172 272 372 172 72 272 72 - - 23383 78 178 278 378 178 78 278 78 - - 23384 84 184 284 384 184 84 284 84 - - 23385 90 190 290 390 190 90 290 90 390 90 23386 - - - - - - 200 0 - - 23387 - - - - - - 203 3 - - 23388 - - - - - - 209 9 - - 23389 - - - - - - 215 15 - - 23390 - - - - - - 221 21 - - 23391 - - - - - - 227 27 - - 23392 - - - - - - 233 33 - - 23393 - - - - - - 239 39 - - 23394 - - - - - - 245 45 - - 23395 - - - - - - 251 51 - - 23396 - - - - - - 257 57 - - 23397 - - - - - - 263 63 - - 23398 - - - - - - 269 69 - - 23399 - - - - - - 275 75 - - 23400 - - - - - - 281 81 - - 23401 - - - - - - 287 87 - - 23402 - - - - - - 293 93 - - 23403 - - - - - - - - 300 0 23404 - - - - - - - - 305 5 23405 - - - - - - - - 310 10 23406 - - - - - - - - 315 15 23407 - - - - - - - - 320 20 23408 - - - - - - - - 325 25 23409 - - - - - - - - 335 35 23410 - - - - - - - - 340 40 23411 - - - - - - - - 345 45 23412 - - - - - - - - 350 50 23413 - - - - - - - - 355 55 23414 - - - - - - - - 365 65 23415 - - - - - - - - 370 70 23416 - - - - - - - - 375 75 23417 - - - - - - - - 380 80 23418 - - - - - - - - 385 85 23419 - - - - - - - - 395 95 23420} 23421do_execsql_test joinD-812 { 23422 SELECT t1.*, t2.*, t3.*, t4.* 23423 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 23424 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23425 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23426 WHERE t2.x>0 23427 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23428} { 23429 6 106 206 306 106 6 206 6 - - 23430 12 112 212 312 112 12 212 12 - - 23431 18 118 218 318 118 18 218 18 - - 23432 24 124 224 324 124 24 224 24 - - 23433 30 130 230 330 130 30 230 30 330 30 23434 36 136 236 336 136 36 236 36 - - 23435 42 142 242 342 142 42 242 42 - - 23436 48 148 248 348 148 48 248 48 - - 23437 54 154 254 354 154 54 254 54 - - 23438 60 160 260 360 160 60 260 60 360 60 23439 66 166 266 366 166 66 266 66 - - 23440 72 172 272 372 172 72 272 72 - - 23441 78 178 278 378 178 78 278 78 - - 23442 84 184 284 384 184 84 284 84 - - 23443 90 190 290 390 190 90 290 90 390 90 23444} 23445do_execsql_test joinD-813 { 23446 SELECT t1.*, t2.*, t3.*, t4.* 23447 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 23448 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23449 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23450 WHERE (t2.x>0 OR t2.x IS NULL) 23451 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23452} { 23453 6 106 206 306 106 6 206 6 - - 23454 12 112 212 312 112 12 212 12 - - 23455 18 118 218 318 118 18 218 18 - - 23456 24 124 224 324 124 24 224 24 - - 23457 30 130 230 330 130 30 230 30 330 30 23458 36 136 236 336 136 36 236 36 - - 23459 42 142 242 342 142 42 242 42 - - 23460 48 148 248 348 148 48 248 48 - - 23461 54 154 254 354 154 54 254 54 - - 23462 60 160 260 360 160 60 260 60 360 60 23463 66 166 266 366 166 66 266 66 - - 23464 72 172 272 372 172 72 272 72 - - 23465 78 178 278 378 178 78 278 78 - - 23466 84 184 284 384 184 84 284 84 - - 23467 90 190 290 390 190 90 290 90 390 90 23468 - - - - - - 200 0 - - 23469 - - - - - - 203 3 - - 23470 - - - - - - 209 9 - - 23471 - - - - - - 215 15 - - 23472 - - - - - - 221 21 - - 23473 - - - - - - 227 27 - - 23474 - - - - - - 233 33 - - 23475 - - - - - - 239 39 - - 23476 - - - - - - 245 45 - - 23477 - - - - - - 251 51 - - 23478 - - - - - - 257 57 - - 23479 - - - - - - 263 63 - - 23480 - - - - - - 269 69 - - 23481 - - - - - - 275 75 - - 23482 - - - - - - 281 81 - - 23483 - - - - - - 287 87 - - 23484 - - - - - - 293 93 - - 23485 - - - - - - - - 300 0 23486 - - - - - - - - 305 5 23487 - - - - - - - - 310 10 23488 - - - - - - - - 315 15 23489 - - - - - - - - 320 20 23490 - - - - - - - - 325 25 23491 - - - - - - - - 335 35 23492 - - - - - - - - 340 40 23493 - - - - - - - - 345 45 23494 - - - - - - - - 350 50 23495 - - - - - - - - 355 55 23496 - - - - - - - - 365 65 23497 - - - - - - - - 370 70 23498 - - - - - - - - 375 75 23499 - - - - - - - - 380 80 23500 - - - - - - - - 385 85 23501 - - - - - - - - 395 95 23502} 23503do_execsql_test joinD-814 { 23504 SELECT t1.*, t2.*, t3.*, t4.* 23505 FROM t1 RIGHT JOIN t2 ON true 23506 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23507 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23508 WHERE t1.b=t2.b AND t2.x>0 23509 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23510} { 23511 6 106 206 306 106 6 206 6 - - 23512 12 112 212 312 112 12 212 12 - - 23513 18 118 218 318 118 18 218 18 - - 23514 24 124 224 324 124 24 224 24 - - 23515 30 130 230 330 130 30 230 30 330 30 23516 36 136 236 336 136 36 236 36 - - 23517 42 142 242 342 142 42 242 42 - - 23518 48 148 248 348 148 48 248 48 - - 23519 54 154 254 354 154 54 254 54 - - 23520 60 160 260 360 160 60 260 60 360 60 23521 66 166 266 366 166 66 266 66 - - 23522 72 172 272 372 172 72 272 72 - - 23523 78 178 278 378 178 78 278 78 - - 23524 84 184 284 384 184 84 284 84 - - 23525 90 190 290 390 190 90 290 90 390 90 23526} 23527do_execsql_test joinD-815 { 23528 SELECT t1.*, t2.*, t3.*, t4.* 23529 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23530 RIGHT JOIN t3 ON t1.c=t3.c 23531 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23532 WHERE t3.y>0 23533 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23534} { 23535 6 106 206 306 106 6 206 6 - - 23536 12 112 212 312 112 12 212 12 - - 23537 18 118 218 318 118 18 218 18 - - 23538 24 124 224 324 124 24 224 24 - - 23539 30 130 230 330 130 30 230 30 330 30 23540 36 136 236 336 136 36 236 36 - - 23541 42 142 242 342 142 42 242 42 - - 23542 48 148 248 348 148 48 248 48 - - 23543 54 154 254 354 154 54 254 54 - - 23544 60 160 260 360 160 60 260 60 360 60 23545 66 166 266 366 166 66 266 66 - - 23546 72 172 272 372 172 72 272 72 - - 23547 78 178 278 378 178 78 278 78 - - 23548 84 184 284 384 184 84 284 84 - - 23549 90 190 290 390 190 90 290 90 390 90 23550 - - - - - - 203 3 - - 23551 - - - - - - 209 9 - - 23552 - - - - - - 215 15 - - 23553 - - - - - - 221 21 - - 23554 - - - - - - 227 27 - - 23555 - - - - - - 233 33 - - 23556 - - - - - - 239 39 - - 23557 - - - - - - 245 45 - - 23558 - - - - - - 251 51 - - 23559 - - - - - - 257 57 - - 23560 - - - - - - 263 63 - - 23561 - - - - - - 269 69 - - 23562 - - - - - - 275 75 - - 23563 - - - - - - 281 81 - - 23564 - - - - - - 287 87 - - 23565 - - - - - - 293 93 - - 23566} 23567do_execsql_test joinD-816 { 23568 SELECT t1.*, t2.*, t3.*, t4.* 23569 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23570 RIGHT JOIN t3 ON t1.c=t3.c 23571 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23572 WHERE t3.y>0 OR t3.y IS NULL 23573 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23574} { 23575 6 106 206 306 106 6 206 6 - - 23576 12 112 212 312 112 12 212 12 - - 23577 18 118 218 318 118 18 218 18 - - 23578 24 124 224 324 124 24 224 24 - - 23579 30 130 230 330 130 30 230 30 330 30 23580 36 136 236 336 136 36 236 36 - - 23581 42 142 242 342 142 42 242 42 - - 23582 48 148 248 348 148 48 248 48 - - 23583 54 154 254 354 154 54 254 54 - - 23584 60 160 260 360 160 60 260 60 360 60 23585 66 166 266 366 166 66 266 66 - - 23586 72 172 272 372 172 72 272 72 - - 23587 78 178 278 378 178 78 278 78 - - 23588 84 184 284 384 184 84 284 84 - - 23589 90 190 290 390 190 90 290 90 390 90 23590 - - - - - - 203 3 - - 23591 - - - - - - 209 9 - - 23592 - - - - - - 215 15 - - 23593 - - - - - - 221 21 - - 23594 - - - - - - 227 27 - - 23595 - - - - - - 233 33 - - 23596 - - - - - - 239 39 - - 23597 - - - - - - 245 45 - - 23598 - - - - - - 251 51 - - 23599 - - - - - - 257 57 - - 23600 - - - - - - 263 63 - - 23601 - - - - - - 269 69 - - 23602 - - - - - - 275 75 - - 23603 - - - - - - 281 81 - - 23604 - - - - - - 287 87 - - 23605 - - - - - - 293 93 - - 23606 - - - - - - - - 300 0 23607 - - - - - - - - 305 5 23608 - - - - - - - - 310 10 23609 - - - - - - - - 315 15 23610 - - - - - - - - 320 20 23611 - - - - - - - - 325 25 23612 - - - - - - - - 335 35 23613 - - - - - - - - 340 40 23614 - - - - - - - - 345 45 23615 - - - - - - - - 350 50 23616 - - - - - - - - 355 55 23617 - - - - - - - - 365 65 23618 - - - - - - - - 370 70 23619 - - - - - - - - 375 75 23620 - - - - - - - - 380 80 23621 - - - - - - - - 385 85 23622 - - - - - - - - 395 95 23623} 23624do_execsql_test joinD-817 { 23625 SELECT t1.*, t2.*, t3.*, t4.* 23626 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23627 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23628 FULL JOIN t4 ON t1.d=t4.d 23629 WHERE t4.z>0 23630 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23631} { 23632 30 130 230 330 130 30 230 30 330 30 23633 60 160 260 360 160 60 260 60 360 60 23634 90 190 290 390 190 90 290 90 390 90 23635 - - - - - - - - 305 5 23636 - - - - - - - - 310 10 23637 - - - - - - - - 315 15 23638 - - - - - - - - 320 20 23639 - - - - - - - - 325 25 23640 - - - - - - - - 335 35 23641 - - - - - - - - 340 40 23642 - - - - - - - - 345 45 23643 - - - - - - - - 350 50 23644 - - - - - - - - 355 55 23645 - - - - - - - - 365 65 23646 - - - - - - - - 370 70 23647 - - - - - - - - 375 75 23648 - - - - - - - - 380 80 23649 - - - - - - - - 385 85 23650 - - - - - - - - 395 95 23651} 23652do_execsql_test joinD-818 { 23653 SELECT t1.*, t2.*, t3.*, t4.* 23654 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23655 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23656 FULL JOIN t4 ON t1.d=t4.d 23657 WHERE t4.z IS NULL OR t4.z>0 23658 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23659} { 23660 6 106 206 306 106 6 206 6 - - 23661 12 112 212 312 112 12 212 12 - - 23662 18 118 218 318 118 18 218 18 - - 23663 24 124 224 324 124 24 224 24 - - 23664 30 130 230 330 130 30 230 30 330 30 23665 36 136 236 336 136 36 236 36 - - 23666 42 142 242 342 142 42 242 42 - - 23667 48 148 248 348 148 48 248 48 - - 23668 54 154 254 354 154 54 254 54 - - 23669 60 160 260 360 160 60 260 60 360 60 23670 66 166 266 366 166 66 266 66 - - 23671 72 172 272 372 172 72 272 72 - - 23672 78 178 278 378 178 78 278 78 - - 23673 84 184 284 384 184 84 284 84 - - 23674 90 190 290 390 190 90 290 90 390 90 23675 - - - - - - 200 0 - - 23676 - - - - - - 203 3 - - 23677 - - - - - - 209 9 - - 23678 - - - - - - 215 15 - - 23679 - - - - - - 221 21 - - 23680 - - - - - - 227 27 - - 23681 - - - - - - 233 33 - - 23682 - - - - - - 239 39 - - 23683 - - - - - - 245 45 - - 23684 - - - - - - 251 51 - - 23685 - - - - - - 257 57 - - 23686 - - - - - - 263 63 - - 23687 - - - - - - 269 69 - - 23688 - - - - - - 275 75 - - 23689 - - - - - - 281 81 - - 23690 - - - - - - 287 87 - - 23691 - - - - - - 293 93 - - 23692 - - - - - - - - 305 5 23693 - - - - - - - - 310 10 23694 - - - - - - - - 315 15 23695 - - - - - - - - 320 20 23696 - - - - - - - - 325 25 23697 - - - - - - - - 335 35 23698 - - - - - - - - 340 40 23699 - - - - - - - - 345 45 23700 - - - - - - - - 350 50 23701 - - - - - - - - 355 55 23702 - - - - - - - - 365 65 23703 - - - - - - - - 370 70 23704 - - - - - - - - 375 75 23705 - - - - - - - - 380 80 23706 - - - - - - - - 385 85 23707 - - - - - - - - 395 95 23708} 23709do_execsql_test joinD-819 { 23710 SELECT t1.*, t2.*, t3.*, t4.* 23711 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 23712 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23713 FULL JOIN t4 ON t1.d=t4.d 23714 WHERE t2.x>0 AND t4.z>0 23715 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23716} { 23717 30 130 230 330 130 30 230 30 330 30 23718 60 160 260 360 160 60 260 60 360 60 23719 90 190 290 390 190 90 290 90 390 90 23720} 23721do_execsql_test joinD-820 { 23722 SELECT t1.*, t2.*, t3.*, t4.* 23723 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23724 RIGHT JOIN t3 ON t1.c=t3.c 23725 FULL JOIN t4 ON t1.d=t4.d 23726 WHERE t4.z>0 AND t3.y>0 23727 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23728} { 23729 30 130 230 330 130 30 230 30 330 30 23730 60 160 260 360 160 60 260 60 360 60 23731 90 190 290 390 190 90 290 90 390 90 23732} 23733do_execsql_test joinD-821 { 23734 SELECT t1.*, t2.*, t3.*, t4.* 23735 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 23736 RIGHT JOIN t3 ON t1.c=t3.c 23737 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23738 WHERE t2.x>0 AND t3.y>0 23739 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23740} { 23741 6 106 206 306 106 6 206 6 - - 23742 12 112 212 312 112 12 212 12 - - 23743 18 118 218 318 118 18 218 18 - - 23744 24 124 224 324 124 24 224 24 - - 23745 30 130 230 330 130 30 230 30 330 30 23746 36 136 236 336 136 36 236 36 - - 23747 42 142 242 342 142 42 242 42 - - 23748 48 148 248 348 148 48 248 48 - - 23749 54 154 254 354 154 54 254 54 - - 23750 60 160 260 360 160 60 260 60 360 60 23751 66 166 266 366 166 66 266 66 - - 23752 72 172 272 372 172 72 272 72 - - 23753 78 178 278 378 178 78 278 78 - - 23754 84 184 284 384 184 84 284 84 - - 23755 90 190 290 390 190 90 290 90 390 90 23756} 23757do_execsql_test joinD-822 { 23758 SELECT t1.*, t2.*, t3.*, t4.* 23759 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 23760 RIGHT JOIN t3 ON t1.c=t3.c 23761 FULL JOIN t4 ON t1.d=t4.d 23762 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 23763 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23764} { 23765 30 130 230 330 130 30 230 30 330 30 23766 60 160 260 360 160 60 260 60 360 60 23767 90 190 290 390 190 90 290 90 390 90 23768} 23769do_execsql_test joinD-823 { 23770 SELECT t1.*, t2.*, t3.*, t4.* 23771 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 23772 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 23773 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 23774 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23775} { 23776 6 106 206 306 106 6 206 6 - - 23777 12 112 212 312 112 12 212 12 - - 23778 18 118 218 318 118 18 218 18 - - 23779 24 124 224 324 124 24 224 24 - - 23780 30 130 230 330 130 30 230 30 330 30 23781 36 136 236 336 136 36 236 36 - - 23782 42 142 242 342 142 42 242 42 - - 23783 48 148 248 348 148 48 248 48 - - 23784 54 154 254 354 154 54 254 54 - - 23785 60 160 260 360 160 60 260 60 360 60 23786 66 166 266 366 166 66 266 66 - - 23787 72 172 272 372 172 72 272 72 - - 23788 78 178 278 378 178 78 278 78 - - 23789 84 184 284 384 184 84 284 84 - - 23790 90 190 290 390 190 90 290 90 390 90 23791 - - - - - - 200 0 - - 23792 - - - - - - 203 3 - - 23793 - - - - - - 209 9 - - 23794 - - - - - - 215 15 - - 23795 - - - - - - 221 21 - - 23796 - - - - - - 227 27 - - 23797 - - - - - - 233 33 - - 23798 - - - - - - 239 39 - - 23799 - - - - - - 245 45 - - 23800 - - - - - - 251 51 - - 23801 - - - - - - 257 57 - - 23802 - - - - - - 263 63 - - 23803 - - - - - - 269 69 - - 23804 - - - - - - 275 75 - - 23805 - - - - - - 281 81 - - 23806 - - - - - - 287 87 - - 23807 - - - - - - 293 93 - - 23808 - - - - - - - - 300 0 23809 - - - - - - - - 305 5 23810 - - - - - - - - 310 10 23811 - - - - - - - - 315 15 23812 - - - - - - - - 320 20 23813 - - - - - - - - 325 25 23814 - - - - - - - - 335 35 23815 - - - - - - - - 340 40 23816 - - - - - - - - 345 45 23817 - - - - - - - - 350 50 23818 - - - - - - - - 355 55 23819 - - - - - - - - 365 65 23820 - - - - - - - - 370 70 23821 - - - - - - - - 375 75 23822 - - - - - - - - 380 80 23823 - - - - - - - - 385 85 23824 - - - - - - - - 395 95 23825} 23826do_execsql_test joinD-824 { 23827 SELECT t1.*, t2.*, t3.*, t4.* 23828 FROM t1 RIGHT JOIN t2 ON t2.x>0 23829 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 23830 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 23831 WHERE t1.b IS NOT DISTINCT FROM t2.b 23832 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23833} { 23834 6 106 206 306 106 6 206 6 - - 23835 12 112 212 312 112 12 212 12 - - 23836 18 118 218 318 118 18 218 18 - - 23837 24 124 224 324 124 24 224 24 - - 23838 30 130 230 330 130 30 230 30 330 30 23839 36 136 236 336 136 36 236 36 - - 23840 42 142 242 342 142 42 242 42 - - 23841 48 148 248 348 148 48 248 48 - - 23842 54 154 254 354 154 54 254 54 - - 23843 60 160 260 360 160 60 260 60 360 60 23844 66 166 266 366 166 66 266 66 - - 23845 72 172 272 372 172 72 272 72 - - 23846 78 178 278 378 178 78 278 78 - - 23847 84 184 284 384 184 84 284 84 - - 23848 90 190 290 390 190 90 290 90 390 90 23849 - - - - - - 200 0 - - 23850 - - - - - - - - 300 0 23851 - - - - - - - - 305 5 23852 - - - - - - - - 310 10 23853 - - - - - - - - 320 20 23854 - - - - - - - - 325 25 23855 - - - - - - - - 335 35 23856 - - - - - - - - 340 40 23857 - - - - - - - - 350 50 23858 - - - - - - - - 355 55 23859 - - - - - - - - 365 65 23860 - - - - - - - - 370 70 23861 - - - - - - - - 380 80 23862 - - - - - - - - 385 85 23863 - - - - - - - - 395 95 23864} 23865do_execsql_test joinD-825 { 23866 SELECT t1.*, t2.*, t3.*, t4.* 23867 FROM t1 RIGHT JOIN t2 ON t2.x>0 23868 RIGHT JOIN t3 ON t3.y>0 23869 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 23870 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 23871 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23872} { 23873 6 106 206 306 106 6 206 6 - - 23874 12 112 212 312 112 12 212 12 - - 23875 18 118 218 318 118 18 218 18 - - 23876 24 124 224 324 124 24 224 24 - - 23877 30 130 230 330 130 30 230 30 330 30 23878 36 136 236 336 136 36 236 36 - - 23879 42 142 242 342 142 42 242 42 - - 23880 48 148 248 348 148 48 248 48 - - 23881 54 154 254 354 154 54 254 54 - - 23882 60 160 260 360 160 60 260 60 360 60 23883 66 166 266 366 166 66 266 66 - - 23884 72 172 272 372 172 72 272 72 - - 23885 78 178 278 378 178 78 278 78 - - 23886 84 184 284 384 184 84 284 84 - - 23887 90 190 290 390 190 90 290 90 390 90 23888 - - - - - - - - 300 0 23889} 23890do_execsql_test joinD-826 { 23891 SELECT t1.*, t2.*, t3.*, t4.* 23892 FROM t1 RIGHT JOIN t2 ON t2.x>0 23893 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 23894 FULL JOIN t4 ON t4.z>0 23895 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 23896 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23897} { 23898 30 130 230 330 130 30 230 30 330 30 23899 60 160 260 360 160 60 260 60 360 60 23900 90 190 290 390 190 90 290 90 390 90 23901} 23902do_execsql_test joinD-827 { 23903 SELECT t1.*, t2.*, t3.*, t4.* 23904 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 23905 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23906 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23907 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23908} { 23909 6 106 206 306 106 6 206 6 - - 23910 12 112 212 312 112 12 212 12 - - 23911 18 118 218 318 118 18 218 18 - - 23912 24 124 224 324 124 24 224 24 - - 23913 30 130 230 330 130 30 230 30 330 30 23914 36 136 236 336 136 36 236 36 - - 23915 42 142 242 342 142 42 242 42 - - 23916 48 148 248 348 148 48 248 48 - - 23917 54 154 254 354 154 54 254 54 - - 23918 60 160 260 360 160 60 260 60 360 60 23919 66 166 266 366 166 66 266 66 - - 23920 72 172 272 372 172 72 272 72 - - 23921 78 178 278 378 178 78 278 78 - - 23922 84 184 284 384 184 84 284 84 - - 23923 90 190 290 390 190 90 290 90 390 90 23924 - - - - - - 200 0 - - 23925 - - - - - - 203 3 - - 23926 - - - - - - 209 9 - - 23927 - - - - - - 215 15 - - 23928 - - - - - - 221 21 - - 23929 - - - - - - 227 27 - - 23930 - - - - - - 233 33 - - 23931 - - - - - - 239 39 - - 23932 - - - - - - 245 45 - - 23933 - - - - - - 251 51 - - 23934 - - - - - - 257 57 - - 23935 - - - - - - 263 63 - - 23936 - - - - - - 269 69 - - 23937 - - - - - - 275 75 - - 23938 - - - - - - 281 81 - - 23939 - - - - - - 287 87 - - 23940 - - - - - - 293 93 - - 23941 - - - - - - - - 300 0 23942 - - - - - - - - 305 5 23943 - - - - - - - - 310 10 23944 - - - - - - - - 315 15 23945 - - - - - - - - 320 20 23946 - - - - - - - - 325 25 23947 - - - - - - - - 335 35 23948 - - - - - - - - 340 40 23949 - - - - - - - - 345 45 23950 - - - - - - - - 350 50 23951 - - - - - - - - 355 55 23952 - - - - - - - - 365 65 23953 - - - - - - - - 370 70 23954 - - - - - - - - 375 75 23955 - - - - - - - - 380 80 23956 - - - - - - - - 385 85 23957 - - - - - - - - 395 95 23958} 23959do_execsql_test joinD-828 { 23960 SELECT t1.*, t2.*, t3.*, t4.* 23961 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23962 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 23963 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23964 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23965} { 23966 6 106 206 306 106 6 206 6 - - 23967 12 112 212 312 112 12 212 12 - - 23968 18 118 218 318 118 18 218 18 - - 23969 24 124 224 324 124 24 224 24 - - 23970 30 130 230 330 130 30 230 30 330 30 23971 36 136 236 336 136 36 236 36 - - 23972 42 142 242 342 142 42 242 42 - - 23973 48 148 248 348 148 48 248 48 - - 23974 54 154 254 354 154 54 254 54 - - 23975 60 160 260 360 160 60 260 60 360 60 23976 66 166 266 366 166 66 266 66 - - 23977 72 172 272 372 172 72 272 72 - - 23978 78 178 278 378 178 78 278 78 - - 23979 84 184 284 384 184 84 284 84 - - 23980 90 190 290 390 190 90 290 90 390 90 23981 - - - - - - 200 0 - - 23982 - - - - - - 203 3 - - 23983 - - - - - - 209 9 - - 23984 - - - - - - 215 15 - - 23985 - - - - - - 221 21 - - 23986 - - - - - - 227 27 - - 23987 - - - - - - 233 33 - - 23988 - - - - - - 239 39 - - 23989 - - - - - - 245 45 - - 23990 - - - - - - 251 51 - - 23991 - - - - - - 257 57 - - 23992 - - - - - - 263 63 - - 23993 - - - - - - 269 69 - - 23994 - - - - - - 275 75 - - 23995 - - - - - - 281 81 - - 23996 - - - - - - 287 87 - - 23997 - - - - - - 293 93 - - 23998 - - - - - - - - 300 0 23999 - - - - - - - - 305 5 24000 - - - - - - - - 310 10 24001 - - - - - - - - 315 15 24002 - - - - - - - - 320 20 24003 - - - - - - - - 325 25 24004 - - - - - - - - 335 35 24005 - - - - - - - - 340 40 24006 - - - - - - - - 345 45 24007 - - - - - - - - 350 50 24008 - - - - - - - - 355 55 24009 - - - - - - - - 365 65 24010 - - - - - - - - 370 70 24011 - - - - - - - - 375 75 24012 - - - - - - - - 380 80 24013 - - - - - - - - 385 85 24014 - - - - - - - - 395 95 24015} 24016do_execsql_test joinD-829 { 24017 SELECT t1.*, t2.*, t3.*, t4.* 24018 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24019 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24020 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 24021 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24022} { 24023 10 110 210 310 110 10 - - 310 10 24024 20 120 220 320 120 20 - - 320 20 24025 30 130 230 330 130 30 230 30 330 30 24026 40 140 240 340 140 40 - - 340 40 24027 50 150 250 350 150 50 - - 350 50 24028 60 160 260 360 160 60 260 60 360 60 24029 70 170 270 370 170 70 - - 370 70 24030 80 180 280 380 180 80 - - 380 80 24031 90 190 290 390 190 90 290 90 390 90 24032} 24033do_execsql_test joinD-830 { 24034 SELECT t1.*, t2.*, t3.*, t4.* 24035 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 24036 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24037 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 24038 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24039} { 24040 10 110 210 310 110 10 - - 310 10 24041 20 120 220 320 120 20 - - 320 20 24042 30 130 230 330 130 30 230 30 330 30 24043 40 140 240 340 140 40 - - 340 40 24044 50 150 250 350 150 50 - - 350 50 24045 60 160 260 360 160 60 260 60 360 60 24046 70 170 270 370 170 70 - - 370 70 24047 80 180 280 380 180 80 - - 380 80 24048 90 190 290 390 190 90 290 90 390 90 24049} 24050do_execsql_test joinD-831 { 24051 SELECT t1.*, t2.*, t3.*, t4.* 24052 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24053 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24054 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 24055 WHERE t2.x>0 24056 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24057} { 24058 10 110 210 310 110 10 - - 310 10 24059 20 120 220 320 120 20 - - 320 20 24060 30 130 230 330 130 30 230 30 330 30 24061 40 140 240 340 140 40 - - 340 40 24062 50 150 250 350 150 50 - - 350 50 24063 60 160 260 360 160 60 260 60 360 60 24064 70 170 270 370 170 70 - - 370 70 24065 80 180 280 380 180 80 - - 380 80 24066 90 190 290 390 190 90 290 90 390 90 24067} 24068do_execsql_test joinD-832 { 24069 SELECT t1.*, t2.*, t3.*, t4.* 24070 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24071 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24072 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 24073 WHERE (t2.x>0 OR t2.x IS NULL) 24074 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24075} { 24076 10 110 210 310 110 10 - - 310 10 24077 20 120 220 320 120 20 - - 320 20 24078 30 130 230 330 130 30 230 30 330 30 24079 40 140 240 340 140 40 - - 340 40 24080 50 150 250 350 150 50 - - 350 50 24081 60 160 260 360 160 60 260 60 360 60 24082 70 170 270 370 170 70 - - 370 70 24083 80 180 280 380 180 80 - - 380 80 24084 90 190 290 390 190 90 290 90 390 90 24085} 24086do_execsql_test joinD-833 { 24087 SELECT t1.*, t2.*, t3.*, t4.* 24088 FROM t1 RIGHT JOIN t2 ON true 24089 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24090 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 24091 WHERE t1.b=t2.b AND t2.x>0 24092 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24093} { 24094 10 110 210 310 110 10 - - 310 10 24095 20 120 220 320 120 20 - - 320 20 24096 30 130 230 330 130 30 230 30 330 30 24097 40 140 240 340 140 40 - - 340 40 24098 50 150 250 350 150 50 - - 350 50 24099 60 160 260 360 160 60 260 60 360 60 24100 70 170 270 370 170 70 - - 370 70 24101 80 180 280 380 180 80 - - 380 80 24102 90 190 290 390 190 90 290 90 390 90 24103} 24104do_execsql_test joinD-834 { 24105 SELECT t1.*, t2.*, t3.*, t4.* 24106 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24107 FULL JOIN t3 ON t1.c=t3.c 24108 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 24109 WHERE t3.y>0 24110 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24111} { 24112 30 130 230 330 130 30 230 30 330 30 24113 60 160 260 360 160 60 260 60 360 60 24114 90 190 290 390 190 90 290 90 390 90 24115} 24116do_execsql_test joinD-835 { 24117 SELECT t1.*, t2.*, t3.*, t4.* 24118 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24119 FULL JOIN t3 ON t1.c=t3.c 24120 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 24121 WHERE t3.y>0 OR t3.y IS NULL 24122 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24123} { 24124 10 110 210 310 110 10 - - 310 10 24125 20 120 220 320 120 20 - - 320 20 24126 30 130 230 330 130 30 230 30 330 30 24127 40 140 240 340 140 40 - - 340 40 24128 50 150 250 350 150 50 - - 350 50 24129 60 160 260 360 160 60 260 60 360 60 24130 70 170 270 370 170 70 - - 370 70 24131 80 180 280 380 180 80 - - 380 80 24132 90 190 290 390 190 90 290 90 390 90 24133} 24134do_execsql_test joinD-836 { 24135 SELECT t1.*, t2.*, t3.*, t4.* 24136 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24137 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24138 INNER JOIN t4 ON t1.d=t4.d 24139 WHERE t4.z>0 24140 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24141} { 24142 10 110 210 310 110 10 - - 310 10 24143 20 120 220 320 120 20 - - 320 20 24144 30 130 230 330 130 30 230 30 330 30 24145 40 140 240 340 140 40 - - 340 40 24146 50 150 250 350 150 50 - - 350 50 24147 60 160 260 360 160 60 260 60 360 60 24148 70 170 270 370 170 70 - - 370 70 24149 80 180 280 380 180 80 - - 380 80 24150 90 190 290 390 190 90 290 90 390 90 24151} 24152do_execsql_test joinD-837 { 24153 SELECT t1.*, t2.*, t3.*, t4.* 24154 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24155 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24156 INNER JOIN t4 ON t1.d=t4.d 24157 WHERE t4.z IS NULL OR t4.z>0 24158 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24159} { 24160 10 110 210 310 110 10 - - 310 10 24161 20 120 220 320 120 20 - - 320 20 24162 30 130 230 330 130 30 230 30 330 30 24163 40 140 240 340 140 40 - - 340 40 24164 50 150 250 350 150 50 - - 350 50 24165 60 160 260 360 160 60 260 60 360 60 24166 70 170 270 370 170 70 - - 370 70 24167 80 180 280 380 180 80 - - 380 80 24168 90 190 290 390 190 90 290 90 390 90 24169} 24170do_execsql_test joinD-838 { 24171 SELECT t1.*, t2.*, t3.*, t4.* 24172 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24173 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24174 INNER JOIN t4 ON t1.d=t4.d 24175 WHERE t2.x>0 AND t4.z>0 24176 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24177} { 24178 10 110 210 310 110 10 - - 310 10 24179 20 120 220 320 120 20 - - 320 20 24180 30 130 230 330 130 30 230 30 330 30 24181 40 140 240 340 140 40 - - 340 40 24182 50 150 250 350 150 50 - - 350 50 24183 60 160 260 360 160 60 260 60 360 60 24184 70 170 270 370 170 70 - - 370 70 24185 80 180 280 380 180 80 - - 380 80 24186 90 190 290 390 190 90 290 90 390 90 24187} 24188do_execsql_test joinD-839 { 24189 SELECT t1.*, t2.*, t3.*, t4.* 24190 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24191 FULL JOIN t3 ON t1.c=t3.c 24192 INNER JOIN t4 ON t1.d=t4.d 24193 WHERE t4.z>0 AND t3.y>0 24194 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24195} { 24196 30 130 230 330 130 30 230 30 330 30 24197 60 160 260 360 160 60 260 60 360 60 24198 90 190 290 390 190 90 290 90 390 90 24199} 24200do_execsql_test joinD-840 { 24201 SELECT t1.*, t2.*, t3.*, t4.* 24202 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24203 FULL JOIN t3 ON t1.c=t3.c 24204 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 24205 WHERE t2.x>0 AND t3.y>0 24206 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24207} { 24208 30 130 230 330 130 30 230 30 330 30 24209 60 160 260 360 160 60 260 60 360 60 24210 90 190 290 390 190 90 290 90 390 90 24211} 24212do_execsql_test joinD-841 { 24213 SELECT t1.*, t2.*, t3.*, t4.* 24214 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24215 FULL JOIN t3 ON t1.c=t3.c 24216 INNER JOIN t4 ON t1.d=t4.d 24217 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 24218 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24219} { 24220 30 130 230 330 130 30 230 30 330 30 24221 60 160 260 360 160 60 260 60 360 60 24222 90 190 290 390 190 90 290 90 390 90 24223} 24224do_execsql_test joinD-842 { 24225 SELECT t1.*, t2.*, t3.*, t4.* 24226 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 24227 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 24228 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 24229 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24230} { 24231 10 110 210 310 110 10 - - 310 10 24232 20 120 220 320 120 20 - - 320 20 24233 30 130 230 330 130 30 230 30 330 30 24234 40 140 240 340 140 40 - - 340 40 24235 50 150 250 350 150 50 - - 350 50 24236 60 160 260 360 160 60 260 60 360 60 24237 70 170 270 370 170 70 - - 370 70 24238 80 180 280 380 180 80 - - 380 80 24239 90 190 290 390 190 90 290 90 390 90 24240} 24241do_execsql_test joinD-843 { 24242 SELECT t1.*, t2.*, t3.*, t4.* 24243 FROM t1 RIGHT JOIN t2 ON t2.x>0 24244 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 24245 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 24246 WHERE t1.b IS NOT DISTINCT FROM t2.b 24247 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24248} { 24249 10 110 210 310 110 10 - - 310 10 24250 20 120 220 320 120 20 - - 320 20 24251 30 130 230 330 130 30 230 30 330 30 24252 40 140 240 340 140 40 - - 340 40 24253 50 150 250 350 150 50 - - 350 50 24254 60 160 260 360 160 60 260 60 360 60 24255 70 170 270 370 170 70 - - 370 70 24256 80 180 280 380 180 80 - - 380 80 24257 90 190 290 390 190 90 290 90 390 90 24258} 24259do_execsql_test joinD-844 { 24260 SELECT t1.*, t2.*, t3.*, t4.* 24261 FROM t1 RIGHT JOIN t2 ON t2.x>0 24262 FULL JOIN t3 ON t3.y>0 24263 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 24264 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 24265 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24266} { 24267 30 130 230 330 130 30 230 30 330 30 24268 60 160 260 360 160 60 260 60 360 60 24269 90 190 290 390 190 90 290 90 390 90 24270} 24271do_execsql_test joinD-845 { 24272 SELECT t1.*, t2.*, t3.*, t4.* 24273 FROM t1 RIGHT JOIN t2 ON t2.x>0 24274 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 24275 INNER JOIN t4 ON t4.z>0 24276 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 24277 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24278} { 24279 10 110 210 310 110 10 - - 310 10 24280 20 120 220 320 120 20 - - 320 20 24281 30 130 230 330 130 30 230 30 330 30 24282 40 140 240 340 140 40 - - 340 40 24283 50 150 250 350 150 50 - - 350 50 24284 60 160 260 360 160 60 260 60 360 60 24285 70 170 270 370 170 70 - - 370 70 24286 80 180 280 380 180 80 - - 380 80 24287 90 190 290 390 190 90 290 90 390 90 24288} 24289do_execsql_test joinD-846 { 24290 SELECT t1.*, t2.*, t3.*, t4.* 24291 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 24292 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24293 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 24294 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24295} { 24296 10 110 210 310 110 10 - - 310 10 24297 20 120 220 320 120 20 - - 320 20 24298 30 130 230 330 130 30 230 30 330 30 24299 40 140 240 340 140 40 - - 340 40 24300 50 150 250 350 150 50 - - 350 50 24301 60 160 260 360 160 60 260 60 360 60 24302 70 170 270 370 170 70 - - 370 70 24303 80 180 280 380 180 80 - - 380 80 24304 90 190 290 390 190 90 290 90 390 90 24305} 24306do_execsql_test joinD-847 { 24307 SELECT t1.*, t2.*, t3.*, t4.* 24308 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24309 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24310 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 24311 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24312} { 24313 2 102 202 302 102 2 - - - - 24314 4 104 204 304 104 4 - - - - 24315 6 106 206 306 106 6 206 6 - - 24316 8 108 208 308 108 8 - - - - 24317 10 110 210 310 110 10 - - 310 10 24318 12 112 212 312 112 12 212 12 - - 24319 14 114 214 314 114 14 - - - - 24320 16 116 216 316 116 16 - - - - 24321 18 118 218 318 118 18 218 18 - - 24322 20 120 220 320 120 20 - - 320 20 24323 22 122 222 322 122 22 - - - - 24324 24 124 224 324 124 24 224 24 - - 24325 26 126 226 326 126 26 - - - - 24326 28 128 228 328 128 28 - - - - 24327 30 130 230 330 130 30 230 30 330 30 24328 32 132 232 332 132 32 - - - - 24329 34 134 234 334 134 34 - - - - 24330 36 136 236 336 136 36 236 36 - - 24331 38 138 238 338 138 38 - - - - 24332 40 140 240 340 140 40 - - 340 40 24333 42 142 242 342 142 42 242 42 - - 24334 44 144 244 344 144 44 - - - - 24335 46 146 246 346 146 46 - - - - 24336 48 148 248 348 148 48 248 48 - - 24337 50 150 250 350 150 50 - - 350 50 24338 52 152 252 352 152 52 - - - - 24339 54 154 254 354 154 54 254 54 - - 24340 56 156 256 356 156 56 - - - - 24341 58 158 258 358 158 58 - - - - 24342 60 160 260 360 160 60 260 60 360 60 24343 62 162 262 362 162 62 - - - - 24344 64 164 264 364 164 64 - - - - 24345 66 166 266 366 166 66 266 66 - - 24346 68 168 268 368 168 68 - - - - 24347 70 170 270 370 170 70 - - 370 70 24348 72 172 272 372 172 72 272 72 - - 24349 74 174 274 374 174 74 - - - - 24350 76 176 276 376 176 76 - - - - 24351 78 178 278 378 178 78 278 78 - - 24352 80 180 280 380 180 80 - - 380 80 24353 82 182 282 382 182 82 - - - - 24354 84 184 284 384 184 84 284 84 - - 24355 86 186 286 386 186 86 - - - - 24356 88 188 288 388 188 88 - - - - 24357 90 190 290 390 190 90 290 90 390 90 24358 92 192 292 392 192 92 - - - - 24359 94 194 294 394 194 94 - - - - 24360 - - - - 100 0 - - - - 24361 - - - - - - 200 0 - - 24362 - - - - - - 203 3 - - 24363 - - - - - - 209 9 - - 24364 - - - - - - 215 15 - - 24365 - - - - - - 221 21 - - 24366 - - - - - - 227 27 - - 24367 - - - - - - 233 33 - - 24368 - - - - - - 239 39 - - 24369 - - - - - - 245 45 - - 24370 - - - - - - 251 51 - - 24371 - - - - - - 257 57 - - 24372 - - - - - - 263 63 - - 24373 - - - - - - 269 69 - - 24374 - - - - - - 275 75 - - 24375 - - - - - - 281 81 - - 24376 - - - - - - 287 87 - - 24377 - - - - - - 293 93 - - 24378} 24379do_execsql_test joinD-848 { 24380 SELECT t1.*, t2.*, t3.*, t4.* 24381 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 24382 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24383 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 24384 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24385} { 24386 2 102 202 302 102 2 - - - - 24387 4 104 204 304 104 4 - - - - 24388 6 106 206 306 106 6 206 6 - - 24389 8 108 208 308 108 8 - - - - 24390 10 110 210 310 110 10 - - 310 10 24391 12 112 212 312 112 12 212 12 - - 24392 14 114 214 314 114 14 - - - - 24393 16 116 216 316 116 16 - - - - 24394 18 118 218 318 118 18 218 18 - - 24395 20 120 220 320 120 20 - - 320 20 24396 22 122 222 322 122 22 - - - - 24397 24 124 224 324 124 24 224 24 - - 24398 26 126 226 326 126 26 - - - - 24399 28 128 228 328 128 28 - - - - 24400 30 130 230 330 130 30 230 30 330 30 24401 32 132 232 332 132 32 - - - - 24402 34 134 234 334 134 34 - - - - 24403 36 136 236 336 136 36 236 36 - - 24404 38 138 238 338 138 38 - - - - 24405 40 140 240 340 140 40 - - 340 40 24406 42 142 242 342 142 42 242 42 - - 24407 44 144 244 344 144 44 - - - - 24408 46 146 246 346 146 46 - - - - 24409 48 148 248 348 148 48 248 48 - - 24410 50 150 250 350 150 50 - - 350 50 24411 52 152 252 352 152 52 - - - - 24412 54 154 254 354 154 54 254 54 - - 24413 56 156 256 356 156 56 - - - - 24414 58 158 258 358 158 58 - - - - 24415 60 160 260 360 160 60 260 60 360 60 24416 62 162 262 362 162 62 - - - - 24417 64 164 264 364 164 64 - - - - 24418 66 166 266 366 166 66 266 66 - - 24419 68 168 268 368 168 68 - - - - 24420 70 170 270 370 170 70 - - 370 70 24421 72 172 272 372 172 72 272 72 - - 24422 74 174 274 374 174 74 - - - - 24423 76 176 276 376 176 76 - - - - 24424 78 178 278 378 178 78 278 78 - - 24425 80 180 280 380 180 80 - - 380 80 24426 82 182 282 382 182 82 - - - - 24427 84 184 284 384 184 84 284 84 - - 24428 86 186 286 386 186 86 - - - - 24429 88 188 288 388 188 88 - - - - 24430 90 190 290 390 190 90 290 90 390 90 24431 92 192 292 392 192 92 - - - - 24432 94 194 294 394 194 94 - - - - 24433 - - - - 100 0 - - - - 24434 - - - - - - 200 0 - - 24435 - - - - - - 203 3 - - 24436 - - - - - - 209 9 - - 24437 - - - - - - 215 15 - - 24438 - - - - - - 221 21 - - 24439 - - - - - - 227 27 - - 24440 - - - - - - 233 33 - - 24441 - - - - - - 239 39 - - 24442 - - - - - - 245 45 - - 24443 - - - - - - 251 51 - - 24444 - - - - - - 257 57 - - 24445 - - - - - - 263 63 - - 24446 - - - - - - 269 69 - - 24447 - - - - - - 275 75 - - 24448 - - - - - - 281 81 - - 24449 - - - - - - 287 87 - - 24450 - - - - - - 293 93 - - 24451} 24452do_execsql_test joinD-849 { 24453 SELECT t1.*, t2.*, t3.*, t4.* 24454 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24455 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24456 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 24457 WHERE t2.x>0 24458 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24459} { 24460 2 102 202 302 102 2 - - - - 24461 4 104 204 304 104 4 - - - - 24462 6 106 206 306 106 6 206 6 - - 24463 8 108 208 308 108 8 - - - - 24464 10 110 210 310 110 10 - - 310 10 24465 12 112 212 312 112 12 212 12 - - 24466 14 114 214 314 114 14 - - - - 24467 16 116 216 316 116 16 - - - - 24468 18 118 218 318 118 18 218 18 - - 24469 20 120 220 320 120 20 - - 320 20 24470 22 122 222 322 122 22 - - - - 24471 24 124 224 324 124 24 224 24 - - 24472 26 126 226 326 126 26 - - - - 24473 28 128 228 328 128 28 - - - - 24474 30 130 230 330 130 30 230 30 330 30 24475 32 132 232 332 132 32 - - - - 24476 34 134 234 334 134 34 - - - - 24477 36 136 236 336 136 36 236 36 - - 24478 38 138 238 338 138 38 - - - - 24479 40 140 240 340 140 40 - - 340 40 24480 42 142 242 342 142 42 242 42 - - 24481 44 144 244 344 144 44 - - - - 24482 46 146 246 346 146 46 - - - - 24483 48 148 248 348 148 48 248 48 - - 24484 50 150 250 350 150 50 - - 350 50 24485 52 152 252 352 152 52 - - - - 24486 54 154 254 354 154 54 254 54 - - 24487 56 156 256 356 156 56 - - - - 24488 58 158 258 358 158 58 - - - - 24489 60 160 260 360 160 60 260 60 360 60 24490 62 162 262 362 162 62 - - - - 24491 64 164 264 364 164 64 - - - - 24492 66 166 266 366 166 66 266 66 - - 24493 68 168 268 368 168 68 - - - - 24494 70 170 270 370 170 70 - - 370 70 24495 72 172 272 372 172 72 272 72 - - 24496 74 174 274 374 174 74 - - - - 24497 76 176 276 376 176 76 - - - - 24498 78 178 278 378 178 78 278 78 - - 24499 80 180 280 380 180 80 - - 380 80 24500 82 182 282 382 182 82 - - - - 24501 84 184 284 384 184 84 284 84 - - 24502 86 186 286 386 186 86 - - - - 24503 88 188 288 388 188 88 - - - - 24504 90 190 290 390 190 90 290 90 390 90 24505 92 192 292 392 192 92 - - - - 24506 94 194 294 394 194 94 - - - - 24507} 24508do_execsql_test joinD-850 { 24509 SELECT t1.*, t2.*, t3.*, t4.* 24510 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24511 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24512 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 24513 WHERE (t2.x>0 OR t2.x IS NULL) 24514 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24515} { 24516 2 102 202 302 102 2 - - - - 24517 4 104 204 304 104 4 - - - - 24518 6 106 206 306 106 6 206 6 - - 24519 8 108 208 308 108 8 - - - - 24520 10 110 210 310 110 10 - - 310 10 24521 12 112 212 312 112 12 212 12 - - 24522 14 114 214 314 114 14 - - - - 24523 16 116 216 316 116 16 - - - - 24524 18 118 218 318 118 18 218 18 - - 24525 20 120 220 320 120 20 - - 320 20 24526 22 122 222 322 122 22 - - - - 24527 24 124 224 324 124 24 224 24 - - 24528 26 126 226 326 126 26 - - - - 24529 28 128 228 328 128 28 - - - - 24530 30 130 230 330 130 30 230 30 330 30 24531 32 132 232 332 132 32 - - - - 24532 34 134 234 334 134 34 - - - - 24533 36 136 236 336 136 36 236 36 - - 24534 38 138 238 338 138 38 - - - - 24535 40 140 240 340 140 40 - - 340 40 24536 42 142 242 342 142 42 242 42 - - 24537 44 144 244 344 144 44 - - - - 24538 46 146 246 346 146 46 - - - - 24539 48 148 248 348 148 48 248 48 - - 24540 50 150 250 350 150 50 - - 350 50 24541 52 152 252 352 152 52 - - - - 24542 54 154 254 354 154 54 254 54 - - 24543 56 156 256 356 156 56 - - - - 24544 58 158 258 358 158 58 - - - - 24545 60 160 260 360 160 60 260 60 360 60 24546 62 162 262 362 162 62 - - - - 24547 64 164 264 364 164 64 - - - - 24548 66 166 266 366 166 66 266 66 - - 24549 68 168 268 368 168 68 - - - - 24550 70 170 270 370 170 70 - - 370 70 24551 72 172 272 372 172 72 272 72 - - 24552 74 174 274 374 174 74 - - - - 24553 76 176 276 376 176 76 - - - - 24554 78 178 278 378 178 78 278 78 - - 24555 80 180 280 380 180 80 - - 380 80 24556 82 182 282 382 182 82 - - - - 24557 84 184 284 384 184 84 284 84 - - 24558 86 186 286 386 186 86 - - - - 24559 88 188 288 388 188 88 - - - - 24560 90 190 290 390 190 90 290 90 390 90 24561 92 192 292 392 192 92 - - - - 24562 94 194 294 394 194 94 - - - - 24563 - - - - - - 200 0 - - 24564 - - - - - - 203 3 - - 24565 - - - - - - 209 9 - - 24566 - - - - - - 215 15 - - 24567 - - - - - - 221 21 - - 24568 - - - - - - 227 27 - - 24569 - - - - - - 233 33 - - 24570 - - - - - - 239 39 - - 24571 - - - - - - 245 45 - - 24572 - - - - - - 251 51 - - 24573 - - - - - - 257 57 - - 24574 - - - - - - 263 63 - - 24575 - - - - - - 269 69 - - 24576 - - - - - - 275 75 - - 24577 - - - - - - 281 81 - - 24578 - - - - - - 287 87 - - 24579 - - - - - - 293 93 - - 24580} 24581do_execsql_test joinD-851 { 24582 SELECT t1.*, t2.*, t3.*, t4.* 24583 FROM t1 RIGHT JOIN t2 ON true 24584 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24585 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 24586 WHERE t1.b=t2.b AND t2.x>0 24587 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24588} { 24589 2 102 202 302 102 2 - - - - 24590 4 104 204 304 104 4 - - - - 24591 6 106 206 306 106 6 206 6 - - 24592 8 108 208 308 108 8 - - - - 24593 10 110 210 310 110 10 - - 310 10 24594 12 112 212 312 112 12 212 12 - - 24595 14 114 214 314 114 14 - - - - 24596 16 116 216 316 116 16 - - - - 24597 18 118 218 318 118 18 218 18 - - 24598 20 120 220 320 120 20 - - 320 20 24599 22 122 222 322 122 22 - - - - 24600 24 124 224 324 124 24 224 24 - - 24601 26 126 226 326 126 26 - - - - 24602 28 128 228 328 128 28 - - - - 24603 30 130 230 330 130 30 230 30 330 30 24604 32 132 232 332 132 32 - - - - 24605 34 134 234 334 134 34 - - - - 24606 36 136 236 336 136 36 236 36 - - 24607 38 138 238 338 138 38 - - - - 24608 40 140 240 340 140 40 - - 340 40 24609 42 142 242 342 142 42 242 42 - - 24610 44 144 244 344 144 44 - - - - 24611 46 146 246 346 146 46 - - - - 24612 48 148 248 348 148 48 248 48 - - 24613 50 150 250 350 150 50 - - 350 50 24614 52 152 252 352 152 52 - - - - 24615 54 154 254 354 154 54 254 54 - - 24616 56 156 256 356 156 56 - - - - 24617 58 158 258 358 158 58 - - - - 24618 60 160 260 360 160 60 260 60 360 60 24619 62 162 262 362 162 62 - - - - 24620 64 164 264 364 164 64 - - - - 24621 66 166 266 366 166 66 266 66 - - 24622 68 168 268 368 168 68 - - - - 24623 70 170 270 370 170 70 - - 370 70 24624 72 172 272 372 172 72 272 72 - - 24625 74 174 274 374 174 74 - - - - 24626 76 176 276 376 176 76 - - - - 24627 78 178 278 378 178 78 278 78 - - 24628 80 180 280 380 180 80 - - 380 80 24629 82 182 282 382 182 82 - - - - 24630 84 184 284 384 184 84 284 84 - - 24631 86 186 286 386 186 86 - - - - 24632 88 188 288 388 188 88 - - - - 24633 90 190 290 390 190 90 290 90 390 90 24634 92 192 292 392 192 92 - - - - 24635 94 194 294 394 194 94 - - - - 24636} 24637do_execsql_test joinD-852 { 24638 SELECT t1.*, t2.*, t3.*, t4.* 24639 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24640 FULL JOIN t3 ON t1.c=t3.c 24641 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 24642 WHERE t3.y>0 24643 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24644} { 24645 6 106 206 306 106 6 206 6 - - 24646 12 112 212 312 112 12 212 12 - - 24647 18 118 218 318 118 18 218 18 - - 24648 24 124 224 324 124 24 224 24 - - 24649 30 130 230 330 130 30 230 30 330 30 24650 36 136 236 336 136 36 236 36 - - 24651 42 142 242 342 142 42 242 42 - - 24652 48 148 248 348 148 48 248 48 - - 24653 54 154 254 354 154 54 254 54 - - 24654 60 160 260 360 160 60 260 60 360 60 24655 66 166 266 366 166 66 266 66 - - 24656 72 172 272 372 172 72 272 72 - - 24657 78 178 278 378 178 78 278 78 - - 24658 84 184 284 384 184 84 284 84 - - 24659 90 190 290 390 190 90 290 90 390 90 24660 - - - - - - 203 3 - - 24661 - - - - - - 209 9 - - 24662 - - - - - - 215 15 - - 24663 - - - - - - 221 21 - - 24664 - - - - - - 227 27 - - 24665 - - - - - - 233 33 - - 24666 - - - - - - 239 39 - - 24667 - - - - - - 245 45 - - 24668 - - - - - - 251 51 - - 24669 - - - - - - 257 57 - - 24670 - - - - - - 263 63 - - 24671 - - - - - - 269 69 - - 24672 - - - - - - 275 75 - - 24673 - - - - - - 281 81 - - 24674 - - - - - - 287 87 - - 24675 - - - - - - 293 93 - - 24676} 24677do_execsql_test joinD-853 { 24678 SELECT t1.*, t2.*, t3.*, t4.* 24679 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24680 FULL JOIN t3 ON t1.c=t3.c 24681 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 24682 WHERE t3.y>0 OR t3.y IS NULL 24683 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24684} { 24685 2 102 202 302 102 2 - - - - 24686 4 104 204 304 104 4 - - - - 24687 6 106 206 306 106 6 206 6 - - 24688 8 108 208 308 108 8 - - - - 24689 10 110 210 310 110 10 - - 310 10 24690 12 112 212 312 112 12 212 12 - - 24691 14 114 214 314 114 14 - - - - 24692 16 116 216 316 116 16 - - - - 24693 18 118 218 318 118 18 218 18 - - 24694 20 120 220 320 120 20 - - 320 20 24695 22 122 222 322 122 22 - - - - 24696 24 124 224 324 124 24 224 24 - - 24697 26 126 226 326 126 26 - - - - 24698 28 128 228 328 128 28 - - - - 24699 30 130 230 330 130 30 230 30 330 30 24700 32 132 232 332 132 32 - - - - 24701 34 134 234 334 134 34 - - - - 24702 36 136 236 336 136 36 236 36 - - 24703 38 138 238 338 138 38 - - - - 24704 40 140 240 340 140 40 - - 340 40 24705 42 142 242 342 142 42 242 42 - - 24706 44 144 244 344 144 44 - - - - 24707 46 146 246 346 146 46 - - - - 24708 48 148 248 348 148 48 248 48 - - 24709 50 150 250 350 150 50 - - 350 50 24710 52 152 252 352 152 52 - - - - 24711 54 154 254 354 154 54 254 54 - - 24712 56 156 256 356 156 56 - - - - 24713 58 158 258 358 158 58 - - - - 24714 60 160 260 360 160 60 260 60 360 60 24715 62 162 262 362 162 62 - - - - 24716 64 164 264 364 164 64 - - - - 24717 66 166 266 366 166 66 266 66 - - 24718 68 168 268 368 168 68 - - - - 24719 70 170 270 370 170 70 - - 370 70 24720 72 172 272 372 172 72 272 72 - - 24721 74 174 274 374 174 74 - - - - 24722 76 176 276 376 176 76 - - - - 24723 78 178 278 378 178 78 278 78 - - 24724 80 180 280 380 180 80 - - 380 80 24725 82 182 282 382 182 82 - - - - 24726 84 184 284 384 184 84 284 84 - - 24727 86 186 286 386 186 86 - - - - 24728 88 188 288 388 188 88 - - - - 24729 90 190 290 390 190 90 290 90 390 90 24730 92 192 292 392 192 92 - - - - 24731 94 194 294 394 194 94 - - - - 24732 - - - - 100 0 - - - - 24733 - - - - - - 203 3 - - 24734 - - - - - - 209 9 - - 24735 - - - - - - 215 15 - - 24736 - - - - - - 221 21 - - 24737 - - - - - - 227 27 - - 24738 - - - - - - 233 33 - - 24739 - - - - - - 239 39 - - 24740 - - - - - - 245 45 - - 24741 - - - - - - 251 51 - - 24742 - - - - - - 257 57 - - 24743 - - - - - - 263 63 - - 24744 - - - - - - 269 69 - - 24745 - - - - - - 275 75 - - 24746 - - - - - - 281 81 - - 24747 - - - - - - 287 87 - - 24748 - - - - - - 293 93 - - 24749} 24750do_execsql_test joinD-854 { 24751 SELECT t1.*, t2.*, t3.*, t4.* 24752 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24753 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24754 LEFT JOIN t4 ON t1.d=t4.d 24755 WHERE t4.z>0 24756 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24757} { 24758 10 110 210 310 110 10 - - 310 10 24759 20 120 220 320 120 20 - - 320 20 24760 30 130 230 330 130 30 230 30 330 30 24761 40 140 240 340 140 40 - - 340 40 24762 50 150 250 350 150 50 - - 350 50 24763 60 160 260 360 160 60 260 60 360 60 24764 70 170 270 370 170 70 - - 370 70 24765 80 180 280 380 180 80 - - 380 80 24766 90 190 290 390 190 90 290 90 390 90 24767} 24768do_execsql_test joinD-855 { 24769 SELECT t1.*, t2.*, t3.*, t4.* 24770 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24771 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24772 LEFT JOIN t4 ON t1.d=t4.d 24773 WHERE t4.z IS NULL OR t4.z>0 24774 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24775} { 24776 2 102 202 302 102 2 - - - - 24777 4 104 204 304 104 4 - - - - 24778 6 106 206 306 106 6 206 6 - - 24779 8 108 208 308 108 8 - - - - 24780 10 110 210 310 110 10 - - 310 10 24781 12 112 212 312 112 12 212 12 - - 24782 14 114 214 314 114 14 - - - - 24783 16 116 216 316 116 16 - - - - 24784 18 118 218 318 118 18 218 18 - - 24785 20 120 220 320 120 20 - - 320 20 24786 22 122 222 322 122 22 - - - - 24787 24 124 224 324 124 24 224 24 - - 24788 26 126 226 326 126 26 - - - - 24789 28 128 228 328 128 28 - - - - 24790 30 130 230 330 130 30 230 30 330 30 24791 32 132 232 332 132 32 - - - - 24792 34 134 234 334 134 34 - - - - 24793 36 136 236 336 136 36 236 36 - - 24794 38 138 238 338 138 38 - - - - 24795 40 140 240 340 140 40 - - 340 40 24796 42 142 242 342 142 42 242 42 - - 24797 44 144 244 344 144 44 - - - - 24798 46 146 246 346 146 46 - - - - 24799 48 148 248 348 148 48 248 48 - - 24800 50 150 250 350 150 50 - - 350 50 24801 52 152 252 352 152 52 - - - - 24802 54 154 254 354 154 54 254 54 - - 24803 56 156 256 356 156 56 - - - - 24804 58 158 258 358 158 58 - - - - 24805 60 160 260 360 160 60 260 60 360 60 24806 62 162 262 362 162 62 - - - - 24807 64 164 264 364 164 64 - - - - 24808 66 166 266 366 166 66 266 66 - - 24809 68 168 268 368 168 68 - - - - 24810 70 170 270 370 170 70 - - 370 70 24811 72 172 272 372 172 72 272 72 - - 24812 74 174 274 374 174 74 - - - - 24813 76 176 276 376 176 76 - - - - 24814 78 178 278 378 178 78 278 78 - - 24815 80 180 280 380 180 80 - - 380 80 24816 82 182 282 382 182 82 - - - - 24817 84 184 284 384 184 84 284 84 - - 24818 86 186 286 386 186 86 - - - - 24819 88 188 288 388 188 88 - - - - 24820 90 190 290 390 190 90 290 90 390 90 24821 92 192 292 392 192 92 - - - - 24822 94 194 294 394 194 94 - - - - 24823 - - - - 100 0 - - - - 24824 - - - - - - 200 0 - - 24825 - - - - - - 203 3 - - 24826 - - - - - - 209 9 - - 24827 - - - - - - 215 15 - - 24828 - - - - - - 221 21 - - 24829 - - - - - - 227 27 - - 24830 - - - - - - 233 33 - - 24831 - - - - - - 239 39 - - 24832 - - - - - - 245 45 - - 24833 - - - - - - 251 51 - - 24834 - - - - - - 257 57 - - 24835 - - - - - - 263 63 - - 24836 - - - - - - 269 69 - - 24837 - - - - - - 275 75 - - 24838 - - - - - - 281 81 - - 24839 - - - - - - 287 87 - - 24840 - - - - - - 293 93 - - 24841} 24842do_execsql_test joinD-856 { 24843 SELECT t1.*, t2.*, t3.*, t4.* 24844 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24845 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24846 LEFT JOIN t4 ON t1.d=t4.d 24847 WHERE t2.x>0 AND t4.z>0 24848 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24849} { 24850 10 110 210 310 110 10 - - 310 10 24851 20 120 220 320 120 20 - - 320 20 24852 30 130 230 330 130 30 230 30 330 30 24853 40 140 240 340 140 40 - - 340 40 24854 50 150 250 350 150 50 - - 350 50 24855 60 160 260 360 160 60 260 60 360 60 24856 70 170 270 370 170 70 - - 370 70 24857 80 180 280 380 180 80 - - 380 80 24858 90 190 290 390 190 90 290 90 390 90 24859} 24860do_execsql_test joinD-857 { 24861 SELECT t1.*, t2.*, t3.*, t4.* 24862 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24863 FULL JOIN t3 ON t1.c=t3.c 24864 LEFT JOIN t4 ON t1.d=t4.d 24865 WHERE t4.z>0 AND t3.y>0 24866 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24867} { 24868 30 130 230 330 130 30 230 30 330 30 24869 60 160 260 360 160 60 260 60 360 60 24870 90 190 290 390 190 90 290 90 390 90 24871} 24872do_execsql_test joinD-858 { 24873 SELECT t1.*, t2.*, t3.*, t4.* 24874 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24875 FULL JOIN t3 ON t1.c=t3.c 24876 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 24877 WHERE t2.x>0 AND t3.y>0 24878 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24879} { 24880 6 106 206 306 106 6 206 6 - - 24881 12 112 212 312 112 12 212 12 - - 24882 18 118 218 318 118 18 218 18 - - 24883 24 124 224 324 124 24 224 24 - - 24884 30 130 230 330 130 30 230 30 330 30 24885 36 136 236 336 136 36 236 36 - - 24886 42 142 242 342 142 42 242 42 - - 24887 48 148 248 348 148 48 248 48 - - 24888 54 154 254 354 154 54 254 54 - - 24889 60 160 260 360 160 60 260 60 360 60 24890 66 166 266 366 166 66 266 66 - - 24891 72 172 272 372 172 72 272 72 - - 24892 78 178 278 378 178 78 278 78 - - 24893 84 184 284 384 184 84 284 84 - - 24894 90 190 290 390 190 90 290 90 390 90 24895} 24896do_execsql_test joinD-859 { 24897 SELECT t1.*, t2.*, t3.*, t4.* 24898 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24899 FULL JOIN t3 ON t1.c=t3.c 24900 LEFT JOIN t4 ON t1.d=t4.d 24901 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 24902 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24903} { 24904 30 130 230 330 130 30 230 30 330 30 24905 60 160 260 360 160 60 260 60 360 60 24906 90 190 290 390 190 90 290 90 390 90 24907} 24908do_execsql_test joinD-860 { 24909 SELECT t1.*, t2.*, t3.*, t4.* 24910 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 24911 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 24912 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 24913 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24914} { 24915 2 102 202 302 102 2 - - - - 24916 4 104 204 304 104 4 - - - - 24917 6 106 206 306 106 6 206 6 - - 24918 8 108 208 308 108 8 - - - - 24919 10 110 210 310 110 10 - - 310 10 24920 12 112 212 312 112 12 212 12 - - 24921 14 114 214 314 114 14 - - - - 24922 16 116 216 316 116 16 - - - - 24923 18 118 218 318 118 18 218 18 - - 24924 20 120 220 320 120 20 - - 320 20 24925 22 122 222 322 122 22 - - - - 24926 24 124 224 324 124 24 224 24 - - 24927 26 126 226 326 126 26 - - - - 24928 28 128 228 328 128 28 - - - - 24929 30 130 230 330 130 30 230 30 330 30 24930 32 132 232 332 132 32 - - - - 24931 34 134 234 334 134 34 - - - - 24932 36 136 236 336 136 36 236 36 - - 24933 38 138 238 338 138 38 - - - - 24934 40 140 240 340 140 40 - - 340 40 24935 42 142 242 342 142 42 242 42 - - 24936 44 144 244 344 144 44 - - - - 24937 46 146 246 346 146 46 - - - - 24938 48 148 248 348 148 48 248 48 - - 24939 50 150 250 350 150 50 - - 350 50 24940 52 152 252 352 152 52 - - - - 24941 54 154 254 354 154 54 254 54 - - 24942 56 156 256 356 156 56 - - - - 24943 58 158 258 358 158 58 - - - - 24944 60 160 260 360 160 60 260 60 360 60 24945 62 162 262 362 162 62 - - - - 24946 64 164 264 364 164 64 - - - - 24947 66 166 266 366 166 66 266 66 - - 24948 68 168 268 368 168 68 - - - - 24949 70 170 270 370 170 70 - - 370 70 24950 72 172 272 372 172 72 272 72 - - 24951 74 174 274 374 174 74 - - - - 24952 76 176 276 376 176 76 - - - - 24953 78 178 278 378 178 78 278 78 - - 24954 80 180 280 380 180 80 - - 380 80 24955 82 182 282 382 182 82 - - - - 24956 84 184 284 384 184 84 284 84 - - 24957 86 186 286 386 186 86 - - - - 24958 88 188 288 388 188 88 - - - - 24959 90 190 290 390 190 90 290 90 390 90 24960 92 192 292 392 192 92 - - - - 24961 94 194 294 394 194 94 - - - - 24962 - - - - 100 0 - - - - 24963 - - - - - - 200 0 - - 24964 - - - - - - 203 3 - - 24965 - - - - - - 209 9 - - 24966 - - - - - - 215 15 - - 24967 - - - - - - 221 21 - - 24968 - - - - - - 227 27 - - 24969 - - - - - - 233 33 - - 24970 - - - - - - 239 39 - - 24971 - - - - - - 245 45 - - 24972 - - - - - - 251 51 - - 24973 - - - - - - 257 57 - - 24974 - - - - - - 263 63 - - 24975 - - - - - - 269 69 - - 24976 - - - - - - 275 75 - - 24977 - - - - - - 281 81 - - 24978 - - - - - - 287 87 - - 24979 - - - - - - 293 93 - - 24980} 24981do_execsql_test joinD-861 { 24982 SELECT t1.*, t2.*, t3.*, t4.* 24983 FROM t1 RIGHT JOIN t2 ON t2.x>0 24984 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 24985 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 24986 WHERE t1.b IS NOT DISTINCT FROM t2.b 24987 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24988} { 24989 2 102 202 302 102 2 - - - - 24990 4 104 204 304 104 4 - - - - 24991 6 106 206 306 106 6 206 6 - - 24992 8 108 208 308 108 8 - - - - 24993 10 110 210 310 110 10 - - 310 10 24994 12 112 212 312 112 12 212 12 - - 24995 14 114 214 314 114 14 - - - - 24996 16 116 216 316 116 16 - - - - 24997 18 118 218 318 118 18 218 18 - - 24998 20 120 220 320 120 20 - - 320 20 24999 22 122 222 322 122 22 - - - - 25000 24 124 224 324 124 24 224 24 - - 25001 26 126 226 326 126 26 - - - - 25002 28 128 228 328 128 28 - - - - 25003 30 130 230 330 130 30 230 30 330 30 25004 32 132 232 332 132 32 - - - - 25005 34 134 234 334 134 34 - - - - 25006 36 136 236 336 136 36 236 36 - - 25007 38 138 238 338 138 38 - - - - 25008 40 140 240 340 140 40 - - 340 40 25009 42 142 242 342 142 42 242 42 - - 25010 44 144 244 344 144 44 - - - - 25011 46 146 246 346 146 46 - - - - 25012 48 148 248 348 148 48 248 48 - - 25013 50 150 250 350 150 50 - - 350 50 25014 52 152 252 352 152 52 - - - - 25015 54 154 254 354 154 54 254 54 - - 25016 56 156 256 356 156 56 - - - - 25017 58 158 258 358 158 58 - - - - 25018 60 160 260 360 160 60 260 60 360 60 25019 62 162 262 362 162 62 - - - - 25020 64 164 264 364 164 64 - - - - 25021 66 166 266 366 166 66 266 66 - - 25022 68 168 268 368 168 68 - - - - 25023 70 170 270 370 170 70 - - 370 70 25024 72 172 272 372 172 72 272 72 - - 25025 74 174 274 374 174 74 - - - - 25026 76 176 276 376 176 76 - - - - 25027 78 178 278 378 178 78 278 78 - - 25028 80 180 280 380 180 80 - - 380 80 25029 82 182 282 382 182 82 - - - - 25030 84 184 284 384 184 84 284 84 - - 25031 86 186 286 386 186 86 - - - - 25032 88 188 288 388 188 88 - - - - 25033 90 190 290 390 190 90 290 90 390 90 25034 92 192 292 392 192 92 - - - - 25035 94 194 294 394 194 94 - - - - 25036 - - - - - - 200 0 - - 25037} 25038do_execsql_test joinD-862 { 25039 SELECT t1.*, t2.*, t3.*, t4.* 25040 FROM t1 RIGHT JOIN t2 ON t2.x>0 25041 FULL JOIN t3 ON t3.y>0 25042 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 25043 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 25044 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25045} { 25046 6 106 206 306 106 6 206 6 - - 25047 12 112 212 312 112 12 212 12 - - 25048 18 118 218 318 118 18 218 18 - - 25049 24 124 224 324 124 24 224 24 - - 25050 30 130 230 330 130 30 230 30 330 30 25051 36 136 236 336 136 36 236 36 - - 25052 42 142 242 342 142 42 242 42 - - 25053 48 148 248 348 148 48 248 48 - - 25054 54 154 254 354 154 54 254 54 - - 25055 60 160 260 360 160 60 260 60 360 60 25056 66 166 266 366 166 66 266 66 - - 25057 72 172 272 372 172 72 272 72 - - 25058 78 178 278 378 178 78 278 78 - - 25059 84 184 284 384 184 84 284 84 - - 25060 90 190 290 390 190 90 290 90 390 90 25061} 25062do_execsql_test joinD-863 { 25063 SELECT t1.*, t2.*, t3.*, t4.* 25064 FROM t1 RIGHT JOIN t2 ON t2.x>0 25065 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 25066 LEFT JOIN t4 ON t4.z>0 25067 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 25068 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25069} { 25070 10 110 210 310 110 10 - - 310 10 25071 20 120 220 320 120 20 - - 320 20 25072 30 130 230 330 130 30 230 30 330 30 25073 40 140 240 340 140 40 - - 340 40 25074 50 150 250 350 150 50 - - 350 50 25075 60 160 260 360 160 60 260 60 360 60 25076 70 170 270 370 170 70 - - 370 70 25077 80 180 280 380 180 80 - - 380 80 25078 90 190 290 390 190 90 290 90 390 90 25079} 25080do_execsql_test joinD-864 { 25081 SELECT t1.*, t2.*, t3.*, t4.* 25082 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 25083 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25084 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 25085 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25086} { 25087 2 102 202 302 102 2 - - - - 25088 4 104 204 304 104 4 - - - - 25089 6 106 206 306 106 6 206 6 - - 25090 8 108 208 308 108 8 - - - - 25091 10 110 210 310 110 10 - - 310 10 25092 12 112 212 312 112 12 212 12 - - 25093 14 114 214 314 114 14 - - - - 25094 16 116 216 316 116 16 - - - - 25095 18 118 218 318 118 18 218 18 - - 25096 20 120 220 320 120 20 - - 320 20 25097 22 122 222 322 122 22 - - - - 25098 24 124 224 324 124 24 224 24 - - 25099 26 126 226 326 126 26 - - - - 25100 28 128 228 328 128 28 - - - - 25101 30 130 230 330 130 30 230 30 330 30 25102 32 132 232 332 132 32 - - - - 25103 34 134 234 334 134 34 - - - - 25104 36 136 236 336 136 36 236 36 - - 25105 38 138 238 338 138 38 - - - - 25106 40 140 240 340 140 40 - - 340 40 25107 42 142 242 342 142 42 242 42 - - 25108 44 144 244 344 144 44 - - - - 25109 46 146 246 346 146 46 - - - - 25110 48 148 248 348 148 48 248 48 - - 25111 50 150 250 350 150 50 - - 350 50 25112 52 152 252 352 152 52 - - - - 25113 54 154 254 354 154 54 254 54 - - 25114 56 156 256 356 156 56 - - - - 25115 58 158 258 358 158 58 - - - - 25116 60 160 260 360 160 60 260 60 360 60 25117 62 162 262 362 162 62 - - - - 25118 64 164 264 364 164 64 - - - - 25119 66 166 266 366 166 66 266 66 - - 25120 68 168 268 368 168 68 - - - - 25121 70 170 270 370 170 70 - - 370 70 25122 72 172 272 372 172 72 272 72 - - 25123 74 174 274 374 174 74 - - - - 25124 76 176 276 376 176 76 - - - - 25125 78 178 278 378 178 78 278 78 - - 25126 80 180 280 380 180 80 - - 380 80 25127 82 182 282 382 182 82 - - - - 25128 84 184 284 384 184 84 284 84 - - 25129 86 186 286 386 186 86 - - - - 25130 88 188 288 388 188 88 - - - - 25131 90 190 290 390 190 90 290 90 390 90 25132 92 192 292 392 192 92 - - - - 25133 94 194 294 394 194 94 - - - - 25134 - - - - 100 0 - - - - 25135 - - - - - - 200 0 - - 25136 - - - - - - 203 3 - - 25137 - - - - - - 209 9 - - 25138 - - - - - - 215 15 - - 25139 - - - - - - 221 21 - - 25140 - - - - - - 227 27 - - 25141 - - - - - - 233 33 - - 25142 - - - - - - 239 39 - - 25143 - - - - - - 245 45 - - 25144 - - - - - - 251 51 - - 25145 - - - - - - 257 57 - - 25146 - - - - - - 263 63 - - 25147 - - - - - - 269 69 - - 25148 - - - - - - 275 75 - - 25149 - - - - - - 281 81 - - 25150 - - - - - - 287 87 - - 25151 - - - - - - 293 93 - - 25152} 25153do_execsql_test joinD-865 { 25154 SELECT t1.*, t2.*, t3.*, t4.* 25155 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 25156 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25157 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 25158 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25159} { 25160 10 110 210 310 110 10 - - 310 10 25161 20 120 220 320 120 20 - - 320 20 25162 30 130 230 330 130 30 230 30 330 30 25163 40 140 240 340 140 40 - - 340 40 25164 50 150 250 350 150 50 - - 350 50 25165 60 160 260 360 160 60 260 60 360 60 25166 70 170 270 370 170 70 - - 370 70 25167 80 180 280 380 180 80 - - 380 80 25168 90 190 290 390 190 90 290 90 390 90 25169 - - - - - - - - 300 0 25170 - - - - - - - - 305 5 25171 - - - - - - - - 315 15 25172 - - - - - - - - 325 25 25173 - - - - - - - - 335 35 25174 - - - - - - - - 345 45 25175 - - - - - - - - 355 55 25176 - - - - - - - - 365 65 25177 - - - - - - - - 375 75 25178 - - - - - - - - 385 85 25179 - - - - - - - - 395 95 25180} 25181do_execsql_test joinD-866 { 25182 SELECT t1.*, t2.*, t3.*, t4.* 25183 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 25184 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25185 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 25186 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25187} { 25188 10 110 210 310 110 10 - - 310 10 25189 20 120 220 320 120 20 - - 320 20 25190 30 130 230 330 130 30 230 30 330 30 25191 40 140 240 340 140 40 - - 340 40 25192 50 150 250 350 150 50 - - 350 50 25193 60 160 260 360 160 60 260 60 360 60 25194 70 170 270 370 170 70 - - 370 70 25195 80 180 280 380 180 80 - - 380 80 25196 90 190 290 390 190 90 290 90 390 90 25197 - - - - - - - - 300 0 25198 - - - - - - - - 305 5 25199 - - - - - - - - 315 15 25200 - - - - - - - - 325 25 25201 - - - - - - - - 335 35 25202 - - - - - - - - 345 45 25203 - - - - - - - - 355 55 25204 - - - - - - - - 365 65 25205 - - - - - - - - 375 75 25206 - - - - - - - - 385 85 25207 - - - - - - - - 395 95 25208} 25209do_execsql_test joinD-867 { 25210 SELECT t1.*, t2.*, t3.*, t4.* 25211 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 25212 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25213 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 25214 WHERE t2.x>0 25215 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25216} { 25217 10 110 210 310 110 10 - - 310 10 25218 20 120 220 320 120 20 - - 320 20 25219 30 130 230 330 130 30 230 30 330 30 25220 40 140 240 340 140 40 - - 340 40 25221 50 150 250 350 150 50 - - 350 50 25222 60 160 260 360 160 60 260 60 360 60 25223 70 170 270 370 170 70 - - 370 70 25224 80 180 280 380 180 80 - - 380 80 25225 90 190 290 390 190 90 290 90 390 90 25226} 25227do_execsql_test joinD-868 { 25228 SELECT t1.*, t2.*, t3.*, t4.* 25229 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 25230 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25231 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 25232 WHERE (t2.x>0 OR t2.x IS NULL) 25233 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25234} { 25235 10 110 210 310 110 10 - - 310 10 25236 20 120 220 320 120 20 - - 320 20 25237 30 130 230 330 130 30 230 30 330 30 25238 40 140 240 340 140 40 - - 340 40 25239 50 150 250 350 150 50 - - 350 50 25240 60 160 260 360 160 60 260 60 360 60 25241 70 170 270 370 170 70 - - 370 70 25242 80 180 280 380 180 80 - - 380 80 25243 90 190 290 390 190 90 290 90 390 90 25244 - - - - - - - - 300 0 25245 - - - - - - - - 305 5 25246 - - - - - - - - 315 15 25247 - - - - - - - - 325 25 25248 - - - - - - - - 335 35 25249 - - - - - - - - 345 45 25250 - - - - - - - - 355 55 25251 - - - - - - - - 365 65 25252 - - - - - - - - 375 75 25253 - - - - - - - - 385 85 25254 - - - - - - - - 395 95 25255} 25256do_execsql_test joinD-869 { 25257 SELECT t1.*, t2.*, t3.*, t4.* 25258 FROM t1 RIGHT JOIN t2 ON true 25259 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25260 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 25261 WHERE t1.b=t2.b AND t2.x>0 25262 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25263} { 25264 10 110 210 310 110 10 - - 310 10 25265 20 120 220 320 120 20 - - 320 20 25266 30 130 230 330 130 30 230 30 330 30 25267 40 140 240 340 140 40 - - 340 40 25268 50 150 250 350 150 50 - - 350 50 25269 60 160 260 360 160 60 260 60 360 60 25270 70 170 270 370 170 70 - - 370 70 25271 80 180 280 380 180 80 - - 380 80 25272 90 190 290 390 190 90 290 90 390 90 25273} 25274do_execsql_test joinD-870 { 25275 SELECT t1.*, t2.*, t3.*, t4.* 25276 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 25277 FULL JOIN t3 ON t1.c=t3.c 25278 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 25279 WHERE t3.y>0 25280 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25281} { 25282 30 130 230 330 130 30 230 30 330 30 25283 60 160 260 360 160 60 260 60 360 60 25284 90 190 290 390 190 90 290 90 390 90 25285} 25286do_execsql_test joinD-871 { 25287 SELECT t1.*, t2.*, t3.*, t4.* 25288 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 25289 FULL JOIN t3 ON t1.c=t3.c 25290 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 25291 WHERE t3.y>0 OR t3.y IS NULL 25292 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25293} { 25294 10 110 210 310 110 10 - - 310 10 25295 20 120 220 320 120 20 - - 320 20 25296 30 130 230 330 130 30 230 30 330 30 25297 40 140 240 340 140 40 - - 340 40 25298 50 150 250 350 150 50 - - 350 50 25299 60 160 260 360 160 60 260 60 360 60 25300 70 170 270 370 170 70 - - 370 70 25301 80 180 280 380 180 80 - - 380 80 25302 90 190 290 390 190 90 290 90 390 90 25303 - - - - - - - - 300 0 25304 - - - - - - - - 305 5 25305 - - - - - - - - 315 15 25306 - - - - - - - - 325 25 25307 - - - - - - - - 335 35 25308 - - - - - - - - 345 45 25309 - - - - - - - - 355 55 25310 - - - - - - - - 365 65 25311 - - - - - - - - 375 75 25312 - - - - - - - - 385 85 25313 - - - - - - - - 395 95 25314} 25315do_execsql_test joinD-872 { 25316 SELECT t1.*, t2.*, t3.*, t4.* 25317 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 25318 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25319 RIGHT JOIN t4 ON t1.d=t4.d 25320 WHERE t4.z>0 25321 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25322} { 25323 10 110 210 310 110 10 - - 310 10 25324 20 120 220 320 120 20 - - 320 20 25325 30 130 230 330 130 30 230 30 330 30 25326 40 140 240 340 140 40 - - 340 40 25327 50 150 250 350 150 50 - - 350 50 25328 60 160 260 360 160 60 260 60 360 60 25329 70 170 270 370 170 70 - - 370 70 25330 80 180 280 380 180 80 - - 380 80 25331 90 190 290 390 190 90 290 90 390 90 25332 - - - - - - - - 305 5 25333 - - - - - - - - 315 15 25334 - - - - - - - - 325 25 25335 - - - - - - - - 335 35 25336 - - - - - - - - 345 45 25337 - - - - - - - - 355 55 25338 - - - - - - - - 365 65 25339 - - - - - - - - 375 75 25340 - - - - - - - - 385 85 25341 - - - - - - - - 395 95 25342} 25343do_execsql_test joinD-873 { 25344 SELECT t1.*, t2.*, t3.*, t4.* 25345 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 25346 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25347 RIGHT JOIN t4 ON t1.d=t4.d 25348 WHERE t4.z IS NULL OR t4.z>0 25349 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25350} { 25351 10 110 210 310 110 10 - - 310 10 25352 20 120 220 320 120 20 - - 320 20 25353 30 130 230 330 130 30 230 30 330 30 25354 40 140 240 340 140 40 - - 340 40 25355 50 150 250 350 150 50 - - 350 50 25356 60 160 260 360 160 60 260 60 360 60 25357 70 170 270 370 170 70 - - 370 70 25358 80 180 280 380 180 80 - - 380 80 25359 90 190 290 390 190 90 290 90 390 90 25360 - - - - - - - - 305 5 25361 - - - - - - - - 315 15 25362 - - - - - - - - 325 25 25363 - - - - - - - - 335 35 25364 - - - - - - - - 345 45 25365 - - - - - - - - 355 55 25366 - - - - - - - - 365 65 25367 - - - - - - - - 375 75 25368 - - - - - - - - 385 85 25369 - - - - - - - - 395 95 25370} 25371do_execsql_test joinD-874 { 25372 SELECT t1.*, t2.*, t3.*, t4.* 25373 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 25374 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25375 RIGHT JOIN t4 ON t1.d=t4.d 25376 WHERE t2.x>0 AND t4.z>0 25377 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25378} { 25379 10 110 210 310 110 10 - - 310 10 25380 20 120 220 320 120 20 - - 320 20 25381 30 130 230 330 130 30 230 30 330 30 25382 40 140 240 340 140 40 - - 340 40 25383 50 150 250 350 150 50 - - 350 50 25384 60 160 260 360 160 60 260 60 360 60 25385 70 170 270 370 170 70 - - 370 70 25386 80 180 280 380 180 80 - - 380 80 25387 90 190 290 390 190 90 290 90 390 90 25388} 25389do_execsql_test joinD-875 { 25390 SELECT t1.*, t2.*, t3.*, t4.* 25391 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 25392 FULL JOIN t3 ON t1.c=t3.c 25393 RIGHT JOIN t4 ON t1.d=t4.d 25394 WHERE t4.z>0 AND t3.y>0 25395 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25396} { 25397 30 130 230 330 130 30 230 30 330 30 25398 60 160 260 360 160 60 260 60 360 60 25399 90 190 290 390 190 90 290 90 390 90 25400} 25401do_execsql_test joinD-876 { 25402 SELECT t1.*, t2.*, t3.*, t4.* 25403 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 25404 FULL JOIN t3 ON t1.c=t3.c 25405 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 25406 WHERE t2.x>0 AND t3.y>0 25407 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25408} { 25409 30 130 230 330 130 30 230 30 330 30 25410 60 160 260 360 160 60 260 60 360 60 25411 90 190 290 390 190 90 290 90 390 90 25412} 25413do_execsql_test joinD-877 { 25414 SELECT t1.*, t2.*, t3.*, t4.* 25415 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 25416 FULL JOIN t3 ON t1.c=t3.c 25417 RIGHT JOIN t4 ON t1.d=t4.d 25418 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 25419 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25420} { 25421 30 130 230 330 130 30 230 30 330 30 25422 60 160 260 360 160 60 260 60 360 60 25423 90 190 290 390 190 90 290 90 390 90 25424} 25425do_execsql_test joinD-878 { 25426 SELECT t1.*, t2.*, t3.*, t4.* 25427 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 25428 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 25429 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 25430 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25431} { 25432 10 110 210 310 110 10 - - 310 10 25433 20 120 220 320 120 20 - - 320 20 25434 30 130 230 330 130 30 230 30 330 30 25435 40 140 240 340 140 40 - - 340 40 25436 50 150 250 350 150 50 - - 350 50 25437 60 160 260 360 160 60 260 60 360 60 25438 70 170 270 370 170 70 - - 370 70 25439 80 180 280 380 180 80 - - 380 80 25440 90 190 290 390 190 90 290 90 390 90 25441 - - - - - - - - 300 0 25442 - - - - - - - - 305 5 25443 - - - - - - - - 315 15 25444 - - - - - - - - 325 25 25445 - - - - - - - - 335 35 25446 - - - - - - - - 345 45 25447 - - - - - - - - 355 55 25448 - - - - - - - - 365 65 25449 - - - - - - - - 375 75 25450 - - - - - - - - 385 85 25451 - - - - - - - - 395 95 25452} 25453do_execsql_test joinD-879 { 25454 SELECT t1.*, t2.*, t3.*, t4.* 25455 FROM t1 RIGHT JOIN t2 ON t2.x>0 25456 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 25457 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 25458 WHERE t1.b IS NOT DISTINCT FROM t2.b 25459 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25460} { 25461 10 110 210 310 110 10 - - 310 10 25462 20 120 220 320 120 20 - - 320 20 25463 30 130 230 330 130 30 230 30 330 30 25464 40 140 240 340 140 40 - - 340 40 25465 50 150 250 350 150 50 - - 350 50 25466 60 160 260 360 160 60 260 60 360 60 25467 70 170 270 370 170 70 - - 370 70 25468 80 180 280 380 180 80 - - 380 80 25469 90 190 290 390 190 90 290 90 390 90 25470 - - - - - - - - 300 0 25471} 25472do_execsql_test joinD-880 { 25473 SELECT t1.*, t2.*, t3.*, t4.* 25474 FROM t1 RIGHT JOIN t2 ON t2.x>0 25475 FULL JOIN t3 ON t3.y>0 25476 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 25477 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 25478 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25479} { 25480 30 130 230 330 130 30 230 30 330 30 25481 60 160 260 360 160 60 260 60 360 60 25482 90 190 290 390 190 90 290 90 390 90 25483} 25484do_execsql_test joinD-881 { 25485 SELECT t1.*, t2.*, t3.*, t4.* 25486 FROM t1 RIGHT JOIN t2 ON t2.x>0 25487 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 25488 RIGHT JOIN t4 ON t4.z>0 25489 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 25490 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25491} { 25492 10 110 210 310 110 10 - - 310 10 25493 20 120 220 320 120 20 - - 320 20 25494 30 130 230 330 130 30 230 30 330 30 25495 40 140 240 340 140 40 - - 340 40 25496 50 150 250 350 150 50 - - 350 50 25497 60 160 260 360 160 60 260 60 360 60 25498 70 170 270 370 170 70 - - 370 70 25499 80 180 280 380 180 80 - - 380 80 25500 90 190 290 390 190 90 290 90 390 90 25501} 25502do_execsql_test joinD-882 { 25503 SELECT t1.*, t2.*, t3.*, t4.* 25504 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 25505 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25506 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 25507 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25508} { 25509 10 110 210 310 110 10 - - 310 10 25510 20 120 220 320 120 20 - - 320 20 25511 30 130 230 330 130 30 230 30 330 30 25512 40 140 240 340 140 40 - - 340 40 25513 50 150 250 350 150 50 - - 350 50 25514 60 160 260 360 160 60 260 60 360 60 25515 70 170 270 370 170 70 - - 370 70 25516 80 180 280 380 180 80 - - 380 80 25517 90 190 290 390 190 90 290 90 390 90 25518 - - - - - - - - 300 0 25519 - - - - - - - - 305 5 25520 - - - - - - - - 315 15 25521 - - - - - - - - 325 25 25522 - - - - - - - - 335 35 25523 - - - - - - - - 345 45 25524 - - - - - - - - 355 55 25525 - - - - - - - - 365 65 25526 - - - - - - - - 375 75 25527 - - - - - - - - 385 85 25528 - - - - - - - - 395 95 25529} 25530do_execsql_test joinD-883 { 25531 SELECT t1.*, t2.*, t3.*, t4.* 25532 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 25533 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25534 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 25535 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25536} { 25537 2 102 202 302 102 2 - - - - 25538 4 104 204 304 104 4 - - - - 25539 6 106 206 306 106 6 206 6 - - 25540 8 108 208 308 108 8 - - - - 25541 10 110 210 310 110 10 - - 310 10 25542 12 112 212 312 112 12 212 12 - - 25543 14 114 214 314 114 14 - - - - 25544 16 116 216 316 116 16 - - - - 25545 18 118 218 318 118 18 218 18 - - 25546 20 120 220 320 120 20 - - 320 20 25547 22 122 222 322 122 22 - - - - 25548 24 124 224 324 124 24 224 24 - - 25549 26 126 226 326 126 26 - - - - 25550 28 128 228 328 128 28 - - - - 25551 30 130 230 330 130 30 230 30 330 30 25552 32 132 232 332 132 32 - - - - 25553 34 134 234 334 134 34 - - - - 25554 36 136 236 336 136 36 236 36 - - 25555 38 138 238 338 138 38 - - - - 25556 40 140 240 340 140 40 - - 340 40 25557 42 142 242 342 142 42 242 42 - - 25558 44 144 244 344 144 44 - - - - 25559 46 146 246 346 146 46 - - - - 25560 48 148 248 348 148 48 248 48 - - 25561 50 150 250 350 150 50 - - 350 50 25562 52 152 252 352 152 52 - - - - 25563 54 154 254 354 154 54 254 54 - - 25564 56 156 256 356 156 56 - - - - 25565 58 158 258 358 158 58 - - - - 25566 60 160 260 360 160 60 260 60 360 60 25567 62 162 262 362 162 62 - - - - 25568 64 164 264 364 164 64 - - - - 25569 66 166 266 366 166 66 266 66 - - 25570 68 168 268 368 168 68 - - - - 25571 70 170 270 370 170 70 - - 370 70 25572 72 172 272 372 172 72 272 72 - - 25573 74 174 274 374 174 74 - - - - 25574 76 176 276 376 176 76 - - - - 25575 78 178 278 378 178 78 278 78 - - 25576 80 180 280 380 180 80 - - 380 80 25577 82 182 282 382 182 82 - - - - 25578 84 184 284 384 184 84 284 84 - - 25579 86 186 286 386 186 86 - - - - 25580 88 188 288 388 188 88 - - - - 25581 90 190 290 390 190 90 290 90 390 90 25582 92 192 292 392 192 92 - - - - 25583 94 194 294 394 194 94 - - - - 25584 - - - - 100 0 - - - - 25585 - - - - - - 200 0 - - 25586 - - - - - - 203 3 - - 25587 - - - - - - 209 9 - - 25588 - - - - - - 215 15 - - 25589 - - - - - - 221 21 - - 25590 - - - - - - 227 27 - - 25591 - - - - - - 233 33 - - 25592 - - - - - - 239 39 - - 25593 - - - - - - 245 45 - - 25594 - - - - - - 251 51 - - 25595 - - - - - - 257 57 - - 25596 - - - - - - 263 63 - - 25597 - - - - - - 269 69 - - 25598 - - - - - - 275 75 - - 25599 - - - - - - 281 81 - - 25600 - - - - - - 287 87 - - 25601 - - - - - - 293 93 - - 25602 - - - - - - - - 300 0 25603 - - - - - - - - 305 5 25604 - - - - - - - - 315 15 25605 - - - - - - - - 325 25 25606 - - - - - - - - 335 35 25607 - - - - - - - - 345 45 25608 - - - - - - - - 355 55 25609 - - - - - - - - 365 65 25610 - - - - - - - - 375 75 25611 - - - - - - - - 385 85 25612 - - - - - - - - 395 95 25613} 25614do_execsql_test joinD-884 { 25615 SELECT t1.*, t2.*, t3.*, t4.* 25616 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 25617 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25618 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 25619 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25620} { 25621 2 102 202 302 102 2 - - - - 25622 4 104 204 304 104 4 - - - - 25623 6 106 206 306 106 6 206 6 - - 25624 8 108 208 308 108 8 - - - - 25625 10 110 210 310 110 10 - - 310 10 25626 12 112 212 312 112 12 212 12 - - 25627 14 114 214 314 114 14 - - - - 25628 16 116 216 316 116 16 - - - - 25629 18 118 218 318 118 18 218 18 - - 25630 20 120 220 320 120 20 - - 320 20 25631 22 122 222 322 122 22 - - - - 25632 24 124 224 324 124 24 224 24 - - 25633 26 126 226 326 126 26 - - - - 25634 28 128 228 328 128 28 - - - - 25635 30 130 230 330 130 30 230 30 330 30 25636 32 132 232 332 132 32 - - - - 25637 34 134 234 334 134 34 - - - - 25638 36 136 236 336 136 36 236 36 - - 25639 38 138 238 338 138 38 - - - - 25640 40 140 240 340 140 40 - - 340 40 25641 42 142 242 342 142 42 242 42 - - 25642 44 144 244 344 144 44 - - - - 25643 46 146 246 346 146 46 - - - - 25644 48 148 248 348 148 48 248 48 - - 25645 50 150 250 350 150 50 - - 350 50 25646 52 152 252 352 152 52 - - - - 25647 54 154 254 354 154 54 254 54 - - 25648 56 156 256 356 156 56 - - - - 25649 58 158 258 358 158 58 - - - - 25650 60 160 260 360 160 60 260 60 360 60 25651 62 162 262 362 162 62 - - - - 25652 64 164 264 364 164 64 - - - - 25653 66 166 266 366 166 66 266 66 - - 25654 68 168 268 368 168 68 - - - - 25655 70 170 270 370 170 70 - - 370 70 25656 72 172 272 372 172 72 272 72 - - 25657 74 174 274 374 174 74 - - - - 25658 76 176 276 376 176 76 - - - - 25659 78 178 278 378 178 78 278 78 - - 25660 80 180 280 380 180 80 - - 380 80 25661 82 182 282 382 182 82 - - - - 25662 84 184 284 384 184 84 284 84 - - 25663 86 186 286 386 186 86 - - - - 25664 88 188 288 388 188 88 - - - - 25665 90 190 290 390 190 90 290 90 390 90 25666 92 192 292 392 192 92 - - - - 25667 94 194 294 394 194 94 - - - - 25668 - - - - 100 0 - - - - 25669 - - - - - - 200 0 - - 25670 - - - - - - 203 3 - - 25671 - - - - - - 209 9 - - 25672 - - - - - - 215 15 - - 25673 - - - - - - 221 21 - - 25674 - - - - - - 227 27 - - 25675 - - - - - - 233 33 - - 25676 - - - - - - 239 39 - - 25677 - - - - - - 245 45 - - 25678 - - - - - - 251 51 - - 25679 - - - - - - 257 57 - - 25680 - - - - - - 263 63 - - 25681 - - - - - - 269 69 - - 25682 - - - - - - 275 75 - - 25683 - - - - - - 281 81 - - 25684 - - - - - - 287 87 - - 25685 - - - - - - 293 93 - - 25686 - - - - - - - - 300 0 25687 - - - - - - - - 305 5 25688 - - - - - - - - 315 15 25689 - - - - - - - - 325 25 25690 - - - - - - - - 335 35 25691 - - - - - - - - 345 45 25692 - - - - - - - - 355 55 25693 - - - - - - - - 365 65 25694 - - - - - - - - 375 75 25695 - - - - - - - - 385 85 25696 - - - - - - - - 395 95 25697} 25698do_execsql_test joinD-885 { 25699 SELECT t1.*, t2.*, t3.*, t4.* 25700 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 25701 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25702 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 25703 WHERE t2.x>0 25704 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25705} { 25706 2 102 202 302 102 2 - - - - 25707 4 104 204 304 104 4 - - - - 25708 6 106 206 306 106 6 206 6 - - 25709 8 108 208 308 108 8 - - - - 25710 10 110 210 310 110 10 - - 310 10 25711 12 112 212 312 112 12 212 12 - - 25712 14 114 214 314 114 14 - - - - 25713 16 116 216 316 116 16 - - - - 25714 18 118 218 318 118 18 218 18 - - 25715 20 120 220 320 120 20 - - 320 20 25716 22 122 222 322 122 22 - - - - 25717 24 124 224 324 124 24 224 24 - - 25718 26 126 226 326 126 26 - - - - 25719 28 128 228 328 128 28 - - - - 25720 30 130 230 330 130 30 230 30 330 30 25721 32 132 232 332 132 32 - - - - 25722 34 134 234 334 134 34 - - - - 25723 36 136 236 336 136 36 236 36 - - 25724 38 138 238 338 138 38 - - - - 25725 40 140 240 340 140 40 - - 340 40 25726 42 142 242 342 142 42 242 42 - - 25727 44 144 244 344 144 44 - - - - 25728 46 146 246 346 146 46 - - - - 25729 48 148 248 348 148 48 248 48 - - 25730 50 150 250 350 150 50 - - 350 50 25731 52 152 252 352 152 52 - - - - 25732 54 154 254 354 154 54 254 54 - - 25733 56 156 256 356 156 56 - - - - 25734 58 158 258 358 158 58 - - - - 25735 60 160 260 360 160 60 260 60 360 60 25736 62 162 262 362 162 62 - - - - 25737 64 164 264 364 164 64 - - - - 25738 66 166 266 366 166 66 266 66 - - 25739 68 168 268 368 168 68 - - - - 25740 70 170 270 370 170 70 - - 370 70 25741 72 172 272 372 172 72 272 72 - - 25742 74 174 274 374 174 74 - - - - 25743 76 176 276 376 176 76 - - - - 25744 78 178 278 378 178 78 278 78 - - 25745 80 180 280 380 180 80 - - 380 80 25746 82 182 282 382 182 82 - - - - 25747 84 184 284 384 184 84 284 84 - - 25748 86 186 286 386 186 86 - - - - 25749 88 188 288 388 188 88 - - - - 25750 90 190 290 390 190 90 290 90 390 90 25751 92 192 292 392 192 92 - - - - 25752 94 194 294 394 194 94 - - - - 25753} 25754do_execsql_test joinD-886 { 25755 SELECT t1.*, t2.*, t3.*, t4.* 25756 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 25757 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25758 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 25759 WHERE (t2.x>0 OR t2.x IS NULL) 25760 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25761} { 25762 2 102 202 302 102 2 - - - - 25763 4 104 204 304 104 4 - - - - 25764 6 106 206 306 106 6 206 6 - - 25765 8 108 208 308 108 8 - - - - 25766 10 110 210 310 110 10 - - 310 10 25767 12 112 212 312 112 12 212 12 - - 25768 14 114 214 314 114 14 - - - - 25769 16 116 216 316 116 16 - - - - 25770 18 118 218 318 118 18 218 18 - - 25771 20 120 220 320 120 20 - - 320 20 25772 22 122 222 322 122 22 - - - - 25773 24 124 224 324 124 24 224 24 - - 25774 26 126 226 326 126 26 - - - - 25775 28 128 228 328 128 28 - - - - 25776 30 130 230 330 130 30 230 30 330 30 25777 32 132 232 332 132 32 - - - - 25778 34 134 234 334 134 34 - - - - 25779 36 136 236 336 136 36 236 36 - - 25780 38 138 238 338 138 38 - - - - 25781 40 140 240 340 140 40 - - 340 40 25782 42 142 242 342 142 42 242 42 - - 25783 44 144 244 344 144 44 - - - - 25784 46 146 246 346 146 46 - - - - 25785 48 148 248 348 148 48 248 48 - - 25786 50 150 250 350 150 50 - - 350 50 25787 52 152 252 352 152 52 - - - - 25788 54 154 254 354 154 54 254 54 - - 25789 56 156 256 356 156 56 - - - - 25790 58 158 258 358 158 58 - - - - 25791 60 160 260 360 160 60 260 60 360 60 25792 62 162 262 362 162 62 - - - - 25793 64 164 264 364 164 64 - - - - 25794 66 166 266 366 166 66 266 66 - - 25795 68 168 268 368 168 68 - - - - 25796 70 170 270 370 170 70 - - 370 70 25797 72 172 272 372 172 72 272 72 - - 25798 74 174 274 374 174 74 - - - - 25799 76 176 276 376 176 76 - - - - 25800 78 178 278 378 178 78 278 78 - - 25801 80 180 280 380 180 80 - - 380 80 25802 82 182 282 382 182 82 - - - - 25803 84 184 284 384 184 84 284 84 - - 25804 86 186 286 386 186 86 - - - - 25805 88 188 288 388 188 88 - - - - 25806 90 190 290 390 190 90 290 90 390 90 25807 92 192 292 392 192 92 - - - - 25808 94 194 294 394 194 94 - - - - 25809 - - - - - - 200 0 - - 25810 - - - - - - 203 3 - - 25811 - - - - - - 209 9 - - 25812 - - - - - - 215 15 - - 25813 - - - - - - 221 21 - - 25814 - - - - - - 227 27 - - 25815 - - - - - - 233 33 - - 25816 - - - - - - 239 39 - - 25817 - - - - - - 245 45 - - 25818 - - - - - - 251 51 - - 25819 - - - - - - 257 57 - - 25820 - - - - - - 263 63 - - 25821 - - - - - - 269 69 - - 25822 - - - - - - 275 75 - - 25823 - - - - - - 281 81 - - 25824 - - - - - - 287 87 - - 25825 - - - - - - 293 93 - - 25826 - - - - - - - - 300 0 25827 - - - - - - - - 305 5 25828 - - - - - - - - 315 15 25829 - - - - - - - - 325 25 25830 - - - - - - - - 335 35 25831 - - - - - - - - 345 45 25832 - - - - - - - - 355 55 25833 - - - - - - - - 365 65 25834 - - - - - - - - 375 75 25835 - - - - - - - - 385 85 25836 - - - - - - - - 395 95 25837} 25838do_execsql_test joinD-887 { 25839 SELECT t1.*, t2.*, t3.*, t4.* 25840 FROM t1 RIGHT JOIN t2 ON true 25841 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25842 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 25843 WHERE t1.b=t2.b AND t2.x>0 25844 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25845} { 25846 2 102 202 302 102 2 - - - - 25847 4 104 204 304 104 4 - - - - 25848 6 106 206 306 106 6 206 6 - - 25849 8 108 208 308 108 8 - - - - 25850 10 110 210 310 110 10 - - 310 10 25851 12 112 212 312 112 12 212 12 - - 25852 14 114 214 314 114 14 - - - - 25853 16 116 216 316 116 16 - - - - 25854 18 118 218 318 118 18 218 18 - - 25855 20 120 220 320 120 20 - - 320 20 25856 22 122 222 322 122 22 - - - - 25857 24 124 224 324 124 24 224 24 - - 25858 26 126 226 326 126 26 - - - - 25859 28 128 228 328 128 28 - - - - 25860 30 130 230 330 130 30 230 30 330 30 25861 32 132 232 332 132 32 - - - - 25862 34 134 234 334 134 34 - - - - 25863 36 136 236 336 136 36 236 36 - - 25864 38 138 238 338 138 38 - - - - 25865 40 140 240 340 140 40 - - 340 40 25866 42 142 242 342 142 42 242 42 - - 25867 44 144 244 344 144 44 - - - - 25868 46 146 246 346 146 46 - - - - 25869 48 148 248 348 148 48 248 48 - - 25870 50 150 250 350 150 50 - - 350 50 25871 52 152 252 352 152 52 - - - - 25872 54 154 254 354 154 54 254 54 - - 25873 56 156 256 356 156 56 - - - - 25874 58 158 258 358 158 58 - - - - 25875 60 160 260 360 160 60 260 60 360 60 25876 62 162 262 362 162 62 - - - - 25877 64 164 264 364 164 64 - - - - 25878 66 166 266 366 166 66 266 66 - - 25879 68 168 268 368 168 68 - - - - 25880 70 170 270 370 170 70 - - 370 70 25881 72 172 272 372 172 72 272 72 - - 25882 74 174 274 374 174 74 - - - - 25883 76 176 276 376 176 76 - - - - 25884 78 178 278 378 178 78 278 78 - - 25885 80 180 280 380 180 80 - - 380 80 25886 82 182 282 382 182 82 - - - - 25887 84 184 284 384 184 84 284 84 - - 25888 86 186 286 386 186 86 - - - - 25889 88 188 288 388 188 88 - - - - 25890 90 190 290 390 190 90 290 90 390 90 25891 92 192 292 392 192 92 - - - - 25892 94 194 294 394 194 94 - - - - 25893} 25894do_execsql_test joinD-888 { 25895 SELECT t1.*, t2.*, t3.*, t4.* 25896 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 25897 FULL JOIN t3 ON t1.c=t3.c 25898 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 25899 WHERE t3.y>0 25900 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25901} { 25902 6 106 206 306 106 6 206 6 - - 25903 12 112 212 312 112 12 212 12 - - 25904 18 118 218 318 118 18 218 18 - - 25905 24 124 224 324 124 24 224 24 - - 25906 30 130 230 330 130 30 230 30 330 30 25907 36 136 236 336 136 36 236 36 - - 25908 42 142 242 342 142 42 242 42 - - 25909 48 148 248 348 148 48 248 48 - - 25910 54 154 254 354 154 54 254 54 - - 25911 60 160 260 360 160 60 260 60 360 60 25912 66 166 266 366 166 66 266 66 - - 25913 72 172 272 372 172 72 272 72 - - 25914 78 178 278 378 178 78 278 78 - - 25915 84 184 284 384 184 84 284 84 - - 25916 90 190 290 390 190 90 290 90 390 90 25917 - - - - - - 203 3 - - 25918 - - - - - - 209 9 - - 25919 - - - - - - 215 15 - - 25920 - - - - - - 221 21 - - 25921 - - - - - - 227 27 - - 25922 - - - - - - 233 33 - - 25923 - - - - - - 239 39 - - 25924 - - - - - - 245 45 - - 25925 - - - - - - 251 51 - - 25926 - - - - - - 257 57 - - 25927 - - - - - - 263 63 - - 25928 - - - - - - 269 69 - - 25929 - - - - - - 275 75 - - 25930 - - - - - - 281 81 - - 25931 - - - - - - 287 87 - - 25932 - - - - - - 293 93 - - 25933} 25934do_execsql_test joinD-889 { 25935 SELECT t1.*, t2.*, t3.*, t4.* 25936 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 25937 FULL JOIN t3 ON t1.c=t3.c 25938 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 25939 WHERE t3.y>0 OR t3.y IS NULL 25940 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25941} { 25942 2 102 202 302 102 2 - - - - 25943 4 104 204 304 104 4 - - - - 25944 6 106 206 306 106 6 206 6 - - 25945 8 108 208 308 108 8 - - - - 25946 10 110 210 310 110 10 - - 310 10 25947 12 112 212 312 112 12 212 12 - - 25948 14 114 214 314 114 14 - - - - 25949 16 116 216 316 116 16 - - - - 25950 18 118 218 318 118 18 218 18 - - 25951 20 120 220 320 120 20 - - 320 20 25952 22 122 222 322 122 22 - - - - 25953 24 124 224 324 124 24 224 24 - - 25954 26 126 226 326 126 26 - - - - 25955 28 128 228 328 128 28 - - - - 25956 30 130 230 330 130 30 230 30 330 30 25957 32 132 232 332 132 32 - - - - 25958 34 134 234 334 134 34 - - - - 25959 36 136 236 336 136 36 236 36 - - 25960 38 138 238 338 138 38 - - - - 25961 40 140 240 340 140 40 - - 340 40 25962 42 142 242 342 142 42 242 42 - - 25963 44 144 244 344 144 44 - - - - 25964 46 146 246 346 146 46 - - - - 25965 48 148 248 348 148 48 248 48 - - 25966 50 150 250 350 150 50 - - 350 50 25967 52 152 252 352 152 52 - - - - 25968 54 154 254 354 154 54 254 54 - - 25969 56 156 256 356 156 56 - - - - 25970 58 158 258 358 158 58 - - - - 25971 60 160 260 360 160 60 260 60 360 60 25972 62 162 262 362 162 62 - - - - 25973 64 164 264 364 164 64 - - - - 25974 66 166 266 366 166 66 266 66 - - 25975 68 168 268 368 168 68 - - - - 25976 70 170 270 370 170 70 - - 370 70 25977 72 172 272 372 172 72 272 72 - - 25978 74 174 274 374 174 74 - - - - 25979 76 176 276 376 176 76 - - - - 25980 78 178 278 378 178 78 278 78 - - 25981 80 180 280 380 180 80 - - 380 80 25982 82 182 282 382 182 82 - - - - 25983 84 184 284 384 184 84 284 84 - - 25984 86 186 286 386 186 86 - - - - 25985 88 188 288 388 188 88 - - - - 25986 90 190 290 390 190 90 290 90 390 90 25987 92 192 292 392 192 92 - - - - 25988 94 194 294 394 194 94 - - - - 25989 - - - - 100 0 - - - - 25990 - - - - - - 203 3 - - 25991 - - - - - - 209 9 - - 25992 - - - - - - 215 15 - - 25993 - - - - - - 221 21 - - 25994 - - - - - - 227 27 - - 25995 - - - - - - 233 33 - - 25996 - - - - - - 239 39 - - 25997 - - - - - - 245 45 - - 25998 - - - - - - 251 51 - - 25999 - - - - - - 257 57 - - 26000 - - - - - - 263 63 - - 26001 - - - - - - 269 69 - - 26002 - - - - - - 275 75 - - 26003 - - - - - - 281 81 - - 26004 - - - - - - 287 87 - - 26005 - - - - - - 293 93 - - 26006 - - - - - - - - 300 0 26007 - - - - - - - - 305 5 26008 - - - - - - - - 315 15 26009 - - - - - - - - 325 25 26010 - - - - - - - - 335 35 26011 - - - - - - - - 345 45 26012 - - - - - - - - 355 55 26013 - - - - - - - - 365 65 26014 - - - - - - - - 375 75 26015 - - - - - - - - 385 85 26016 - - - - - - - - 395 95 26017} 26018do_execsql_test joinD-890 { 26019 SELECT t1.*, t2.*, t3.*, t4.* 26020 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 26021 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 26022 FULL JOIN t4 ON t1.d=t4.d 26023 WHERE t4.z>0 26024 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26025} { 26026 10 110 210 310 110 10 - - 310 10 26027 20 120 220 320 120 20 - - 320 20 26028 30 130 230 330 130 30 230 30 330 30 26029 40 140 240 340 140 40 - - 340 40 26030 50 150 250 350 150 50 - - 350 50 26031 60 160 260 360 160 60 260 60 360 60 26032 70 170 270 370 170 70 - - 370 70 26033 80 180 280 380 180 80 - - 380 80 26034 90 190 290 390 190 90 290 90 390 90 26035 - - - - - - - - 305 5 26036 - - - - - - - - 315 15 26037 - - - - - - - - 325 25 26038 - - - - - - - - 335 35 26039 - - - - - - - - 345 45 26040 - - - - - - - - 355 55 26041 - - - - - - - - 365 65 26042 - - - - - - - - 375 75 26043 - - - - - - - - 385 85 26044 - - - - - - - - 395 95 26045} 26046do_execsql_test joinD-891 { 26047 SELECT t1.*, t2.*, t3.*, t4.* 26048 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 26049 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 26050 FULL JOIN t4 ON t1.d=t4.d 26051 WHERE t4.z IS NULL OR t4.z>0 26052 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26053} { 26054 2 102 202 302 102 2 - - - - 26055 4 104 204 304 104 4 - - - - 26056 6 106 206 306 106 6 206 6 - - 26057 8 108 208 308 108 8 - - - - 26058 10 110 210 310 110 10 - - 310 10 26059 12 112 212 312 112 12 212 12 - - 26060 14 114 214 314 114 14 - - - - 26061 16 116 216 316 116 16 - - - - 26062 18 118 218 318 118 18 218 18 - - 26063 20 120 220 320 120 20 - - 320 20 26064 22 122 222 322 122 22 - - - - 26065 24 124 224 324 124 24 224 24 - - 26066 26 126 226 326 126 26 - - - - 26067 28 128 228 328 128 28 - - - - 26068 30 130 230 330 130 30 230 30 330 30 26069 32 132 232 332 132 32 - - - - 26070 34 134 234 334 134 34 - - - - 26071 36 136 236 336 136 36 236 36 - - 26072 38 138 238 338 138 38 - - - - 26073 40 140 240 340 140 40 - - 340 40 26074 42 142 242 342 142 42 242 42 - - 26075 44 144 244 344 144 44 - - - - 26076 46 146 246 346 146 46 - - - - 26077 48 148 248 348 148 48 248 48 - - 26078 50 150 250 350 150 50 - - 350 50 26079 52 152 252 352 152 52 - - - - 26080 54 154 254 354 154 54 254 54 - - 26081 56 156 256 356 156 56 - - - - 26082 58 158 258 358 158 58 - - - - 26083 60 160 260 360 160 60 260 60 360 60 26084 62 162 262 362 162 62 - - - - 26085 64 164 264 364 164 64 - - - - 26086 66 166 266 366 166 66 266 66 - - 26087 68 168 268 368 168 68 - - - - 26088 70 170 270 370 170 70 - - 370 70 26089 72 172 272 372 172 72 272 72 - - 26090 74 174 274 374 174 74 - - - - 26091 76 176 276 376 176 76 - - - - 26092 78 178 278 378 178 78 278 78 - - 26093 80 180 280 380 180 80 - - 380 80 26094 82 182 282 382 182 82 - - - - 26095 84 184 284 384 184 84 284 84 - - 26096 86 186 286 386 186 86 - - - - 26097 88 188 288 388 188 88 - - - - 26098 90 190 290 390 190 90 290 90 390 90 26099 92 192 292 392 192 92 - - - - 26100 94 194 294 394 194 94 - - - - 26101 - - - - 100 0 - - - - 26102 - - - - - - 200 0 - - 26103 - - - - - - 203 3 - - 26104 - - - - - - 209 9 - - 26105 - - - - - - 215 15 - - 26106 - - - - - - 221 21 - - 26107 - - - - - - 227 27 - - 26108 - - - - - - 233 33 - - 26109 - - - - - - 239 39 - - 26110 - - - - - - 245 45 - - 26111 - - - - - - 251 51 - - 26112 - - - - - - 257 57 - - 26113 - - - - - - 263 63 - - 26114 - - - - - - 269 69 - - 26115 - - - - - - 275 75 - - 26116 - - - - - - 281 81 - - 26117 - - - - - - 287 87 - - 26118 - - - - - - 293 93 - - 26119 - - - - - - - - 305 5 26120 - - - - - - - - 315 15 26121 - - - - - - - - 325 25 26122 - - - - - - - - 335 35 26123 - - - - - - - - 345 45 26124 - - - - - - - - 355 55 26125 - - - - - - - - 365 65 26126 - - - - - - - - 375 75 26127 - - - - - - - - 385 85 26128 - - - - - - - - 395 95 26129} 26130do_execsql_test joinD-892 { 26131 SELECT t1.*, t2.*, t3.*, t4.* 26132 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 26133 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 26134 FULL JOIN t4 ON t1.d=t4.d 26135 WHERE t2.x>0 AND t4.z>0 26136 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26137} { 26138 10 110 210 310 110 10 - - 310 10 26139 20 120 220 320 120 20 - - 320 20 26140 30 130 230 330 130 30 230 30 330 30 26141 40 140 240 340 140 40 - - 340 40 26142 50 150 250 350 150 50 - - 350 50 26143 60 160 260 360 160 60 260 60 360 60 26144 70 170 270 370 170 70 - - 370 70 26145 80 180 280 380 180 80 - - 380 80 26146 90 190 290 390 190 90 290 90 390 90 26147} 26148do_execsql_test joinD-893 { 26149 SELECT t1.*, t2.*, t3.*, t4.* 26150 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 26151 FULL JOIN t3 ON t1.c=t3.c 26152 FULL JOIN t4 ON t1.d=t4.d 26153 WHERE t4.z>0 AND t3.y>0 26154 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26155} { 26156 30 130 230 330 130 30 230 30 330 30 26157 60 160 260 360 160 60 260 60 360 60 26158 90 190 290 390 190 90 290 90 390 90 26159} 26160do_execsql_test joinD-894 { 26161 SELECT t1.*, t2.*, t3.*, t4.* 26162 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 26163 FULL JOIN t3 ON t1.c=t3.c 26164 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 26165 WHERE t2.x>0 AND t3.y>0 26166 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26167} { 26168 6 106 206 306 106 6 206 6 - - 26169 12 112 212 312 112 12 212 12 - - 26170 18 118 218 318 118 18 218 18 - - 26171 24 124 224 324 124 24 224 24 - - 26172 30 130 230 330 130 30 230 30 330 30 26173 36 136 236 336 136 36 236 36 - - 26174 42 142 242 342 142 42 242 42 - - 26175 48 148 248 348 148 48 248 48 - - 26176 54 154 254 354 154 54 254 54 - - 26177 60 160 260 360 160 60 260 60 360 60 26178 66 166 266 366 166 66 266 66 - - 26179 72 172 272 372 172 72 272 72 - - 26180 78 178 278 378 178 78 278 78 - - 26181 84 184 284 384 184 84 284 84 - - 26182 90 190 290 390 190 90 290 90 390 90 26183} 26184do_execsql_test joinD-895 { 26185 SELECT t1.*, t2.*, t3.*, t4.* 26186 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 26187 FULL JOIN t3 ON t1.c=t3.c 26188 FULL JOIN t4 ON t1.d=t4.d 26189 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 26190 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26191} { 26192 30 130 230 330 130 30 230 30 330 30 26193 60 160 260 360 160 60 260 60 360 60 26194 90 190 290 390 190 90 290 90 390 90 26195} 26196do_execsql_test joinD-896 { 26197 SELECT t1.*, t2.*, t3.*, t4.* 26198 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 26199 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 26200 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 26201 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26202} { 26203 2 102 202 302 102 2 - - - - 26204 4 104 204 304 104 4 - - - - 26205 6 106 206 306 106 6 206 6 - - 26206 8 108 208 308 108 8 - - - - 26207 10 110 210 310 110 10 - - 310 10 26208 12 112 212 312 112 12 212 12 - - 26209 14 114 214 314 114 14 - - - - 26210 16 116 216 316 116 16 - - - - 26211 18 118 218 318 118 18 218 18 - - 26212 20 120 220 320 120 20 - - 320 20 26213 22 122 222 322 122 22 - - - - 26214 24 124 224 324 124 24 224 24 - - 26215 26 126 226 326 126 26 - - - - 26216 28 128 228 328 128 28 - - - - 26217 30 130 230 330 130 30 230 30 330 30 26218 32 132 232 332 132 32 - - - - 26219 34 134 234 334 134 34 - - - - 26220 36 136 236 336 136 36 236 36 - - 26221 38 138 238 338 138 38 - - - - 26222 40 140 240 340 140 40 - - 340 40 26223 42 142 242 342 142 42 242 42 - - 26224 44 144 244 344 144 44 - - - - 26225 46 146 246 346 146 46 - - - - 26226 48 148 248 348 148 48 248 48 - - 26227 50 150 250 350 150 50 - - 350 50 26228 52 152 252 352 152 52 - - - - 26229 54 154 254 354 154 54 254 54 - - 26230 56 156 256 356 156 56 - - - - 26231 58 158 258 358 158 58 - - - - 26232 60 160 260 360 160 60 260 60 360 60 26233 62 162 262 362 162 62 - - - - 26234 64 164 264 364 164 64 - - - - 26235 66 166 266 366 166 66 266 66 - - 26236 68 168 268 368 168 68 - - - - 26237 70 170 270 370 170 70 - - 370 70 26238 72 172 272 372 172 72 272 72 - - 26239 74 174 274 374 174 74 - - - - 26240 76 176 276 376 176 76 - - - - 26241 78 178 278 378 178 78 278 78 - - 26242 80 180 280 380 180 80 - - 380 80 26243 82 182 282 382 182 82 - - - - 26244 84 184 284 384 184 84 284 84 - - 26245 86 186 286 386 186 86 - - - - 26246 88 188 288 388 188 88 - - - - 26247 90 190 290 390 190 90 290 90 390 90 26248 92 192 292 392 192 92 - - - - 26249 94 194 294 394 194 94 - - - - 26250 - - - - 100 0 - - - - 26251 - - - - - - 200 0 - - 26252 - - - - - - 203 3 - - 26253 - - - - - - 209 9 - - 26254 - - - - - - 215 15 - - 26255 - - - - - - 221 21 - - 26256 - - - - - - 227 27 - - 26257 - - - - - - 233 33 - - 26258 - - - - - - 239 39 - - 26259 - - - - - - 245 45 - - 26260 - - - - - - 251 51 - - 26261 - - - - - - 257 57 - - 26262 - - - - - - 263 63 - - 26263 - - - - - - 269 69 - - 26264 - - - - - - 275 75 - - 26265 - - - - - - 281 81 - - 26266 - - - - - - 287 87 - - 26267 - - - - - - 293 93 - - 26268 - - - - - - - - 300 0 26269 - - - - - - - - 305 5 26270 - - - - - - - - 315 15 26271 - - - - - - - - 325 25 26272 - - - - - - - - 335 35 26273 - - - - - - - - 345 45 26274 - - - - - - - - 355 55 26275 - - - - - - - - 365 65 26276 - - - - - - - - 375 75 26277 - - - - - - - - 385 85 26278 - - - - - - - - 395 95 26279} 26280do_execsql_test joinD-897 { 26281 SELECT t1.*, t2.*, t3.*, t4.* 26282 FROM t1 RIGHT JOIN t2 ON t2.x>0 26283 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 26284 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 26285 WHERE t1.b IS NOT DISTINCT FROM t2.b 26286 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26287} { 26288 2 102 202 302 102 2 - - - - 26289 4 104 204 304 104 4 - - - - 26290 6 106 206 306 106 6 206 6 - - 26291 8 108 208 308 108 8 - - - - 26292 10 110 210 310 110 10 - - 310 10 26293 12 112 212 312 112 12 212 12 - - 26294 14 114 214 314 114 14 - - - - 26295 16 116 216 316 116 16 - - - - 26296 18 118 218 318 118 18 218 18 - - 26297 20 120 220 320 120 20 - - 320 20 26298 22 122 222 322 122 22 - - - - 26299 24 124 224 324 124 24 224 24 - - 26300 26 126 226 326 126 26 - - - - 26301 28 128 228 328 128 28 - - - - 26302 30 130 230 330 130 30 230 30 330 30 26303 32 132 232 332 132 32 - - - - 26304 34 134 234 334 134 34 - - - - 26305 36 136 236 336 136 36 236 36 - - 26306 38 138 238 338 138 38 - - - - 26307 40 140 240 340 140 40 - - 340 40 26308 42 142 242 342 142 42 242 42 - - 26309 44 144 244 344 144 44 - - - - 26310 46 146 246 346 146 46 - - - - 26311 48 148 248 348 148 48 248 48 - - 26312 50 150 250 350 150 50 - - 350 50 26313 52 152 252 352 152 52 - - - - 26314 54 154 254 354 154 54 254 54 - - 26315 56 156 256 356 156 56 - - - - 26316 58 158 258 358 158 58 - - - - 26317 60 160 260 360 160 60 260 60 360 60 26318 62 162 262 362 162 62 - - - - 26319 64 164 264 364 164 64 - - - - 26320 66 166 266 366 166 66 266 66 - - 26321 68 168 268 368 168 68 - - - - 26322 70 170 270 370 170 70 - - 370 70 26323 72 172 272 372 172 72 272 72 - - 26324 74 174 274 374 174 74 - - - - 26325 76 176 276 376 176 76 - - - - 26326 78 178 278 378 178 78 278 78 - - 26327 80 180 280 380 180 80 - - 380 80 26328 82 182 282 382 182 82 - - - - 26329 84 184 284 384 184 84 284 84 - - 26330 86 186 286 386 186 86 - - - - 26331 88 188 288 388 188 88 - - - - 26332 90 190 290 390 190 90 290 90 390 90 26333 92 192 292 392 192 92 - - - - 26334 94 194 294 394 194 94 - - - - 26335 - - - - - - 200 0 - - 26336 - - - - - - - - 300 0 26337} 26338do_execsql_test joinD-898 { 26339 SELECT t1.*, t2.*, t3.*, t4.* 26340 FROM t1 RIGHT JOIN t2 ON t2.x>0 26341 FULL JOIN t3 ON t3.y>0 26342 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 26343 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 26344 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26345} { 26346 6 106 206 306 106 6 206 6 - - 26347 12 112 212 312 112 12 212 12 - - 26348 18 118 218 318 118 18 218 18 - - 26349 24 124 224 324 124 24 224 24 - - 26350 30 130 230 330 130 30 230 30 330 30 26351 36 136 236 336 136 36 236 36 - - 26352 42 142 242 342 142 42 242 42 - - 26353 48 148 248 348 148 48 248 48 - - 26354 54 154 254 354 154 54 254 54 - - 26355 60 160 260 360 160 60 260 60 360 60 26356 66 166 266 366 166 66 266 66 - - 26357 72 172 272 372 172 72 272 72 - - 26358 78 178 278 378 178 78 278 78 - - 26359 84 184 284 384 184 84 284 84 - - 26360 90 190 290 390 190 90 290 90 390 90 26361} 26362do_execsql_test joinD-899 { 26363 SELECT t1.*, t2.*, t3.*, t4.* 26364 FROM t1 RIGHT JOIN t2 ON t2.x>0 26365 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 26366 FULL JOIN t4 ON t4.z>0 26367 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 26368 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26369} { 26370 10 110 210 310 110 10 - - 310 10 26371 20 120 220 320 120 20 - - 320 20 26372 30 130 230 330 130 30 230 30 330 30 26373 40 140 240 340 140 40 - - 340 40 26374 50 150 250 350 150 50 - - 350 50 26375 60 160 260 360 160 60 260 60 360 60 26376 70 170 270 370 170 70 - - 370 70 26377 80 180 280 380 180 80 - - 380 80 26378 90 190 290 390 190 90 290 90 390 90 26379} 26380do_execsql_test joinD-900 { 26381 SELECT t1.*, t2.*, t3.*, t4.* 26382 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 26383 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 26384 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 26385 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26386} { 26387 2 102 202 302 102 2 - - - - 26388 4 104 204 304 104 4 - - - - 26389 6 106 206 306 106 6 206 6 - - 26390 8 108 208 308 108 8 - - - - 26391 10 110 210 310 110 10 - - 310 10 26392 12 112 212 312 112 12 212 12 - - 26393 14 114 214 314 114 14 - - - - 26394 16 116 216 316 116 16 - - - - 26395 18 118 218 318 118 18 218 18 - - 26396 20 120 220 320 120 20 - - 320 20 26397 22 122 222 322 122 22 - - - - 26398 24 124 224 324 124 24 224 24 - - 26399 26 126 226 326 126 26 - - - - 26400 28 128 228 328 128 28 - - - - 26401 30 130 230 330 130 30 230 30 330 30 26402 32 132 232 332 132 32 - - - - 26403 34 134 234 334 134 34 - - - - 26404 36 136 236 336 136 36 236 36 - - 26405 38 138 238 338 138 38 - - - - 26406 40 140 240 340 140 40 - - 340 40 26407 42 142 242 342 142 42 242 42 - - 26408 44 144 244 344 144 44 - - - - 26409 46 146 246 346 146 46 - - - - 26410 48 148 248 348 148 48 248 48 - - 26411 50 150 250 350 150 50 - - 350 50 26412 52 152 252 352 152 52 - - - - 26413 54 154 254 354 154 54 254 54 - - 26414 56 156 256 356 156 56 - - - - 26415 58 158 258 358 158 58 - - - - 26416 60 160 260 360 160 60 260 60 360 60 26417 62 162 262 362 162 62 - - - - 26418 64 164 264 364 164 64 - - - - 26419 66 166 266 366 166 66 266 66 - - 26420 68 168 268 368 168 68 - - - - 26421 70 170 270 370 170 70 - - 370 70 26422 72 172 272 372 172 72 272 72 - - 26423 74 174 274 374 174 74 - - - - 26424 76 176 276 376 176 76 - - - - 26425 78 178 278 378 178 78 278 78 - - 26426 80 180 280 380 180 80 - - 380 80 26427 82 182 282 382 182 82 - - - - 26428 84 184 284 384 184 84 284 84 - - 26429 86 186 286 386 186 86 - - - - 26430 88 188 288 388 188 88 - - - - 26431 90 190 290 390 190 90 290 90 390 90 26432 92 192 292 392 192 92 - - - - 26433 94 194 294 394 194 94 - - - - 26434 - - - - 100 0 - - - - 26435 - - - - - - 200 0 - - 26436 - - - - - - 203 3 - - 26437 - - - - - - 209 9 - - 26438 - - - - - - 215 15 - - 26439 - - - - - - 221 21 - - 26440 - - - - - - 227 27 - - 26441 - - - - - - 233 33 - - 26442 - - - - - - 239 39 - - 26443 - - - - - - 245 45 - - 26444 - - - - - - 251 51 - - 26445 - - - - - - 257 57 - - 26446 - - - - - - 263 63 - - 26447 - - - - - - 269 69 - - 26448 - - - - - - 275 75 - - 26449 - - - - - - 281 81 - - 26450 - - - - - - 287 87 - - 26451 - - - - - - 293 93 - - 26452 - - - - - - - - 300 0 26453 - - - - - - - - 305 5 26454 - - - - - - - - 315 15 26455 - - - - - - - - 325 25 26456 - - - - - - - - 335 35 26457 - - - - - - - - 345 45 26458 - - - - - - - - 355 55 26459 - - - - - - - - 365 65 26460 - - - - - - - - 375 75 26461 - - - - - - - - 385 85 26462 - - - - - - - - 395 95 26463} 26464do_execsql_test joinD-901 { 26465 SELECT t1.*, t2.*, t3.*, t4.* 26466 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26467 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26468 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 26469 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26470} { 26471 15 115 215 315 - - 215 15 315 15 26472 30 130 230 330 130 30 230 30 330 30 26473 45 145 245 345 - - 245 45 345 45 26474 60 160 260 360 160 60 260 60 360 60 26475 75 175 275 375 - - 275 75 375 75 26476 90 190 290 390 190 90 290 90 390 90 26477} 26478do_execsql_test joinD-902 { 26479 SELECT t1.*, t2.*, t3.*, t4.* 26480 FROM t1 FULL JOIN t2 ON t1.b=t2.b 26481 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26482 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 26483 WHERE t2.x>0 26484 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26485} { 26486 30 130 230 330 130 30 230 30 330 30 26487 60 160 260 360 160 60 260 60 360 60 26488 90 190 290 390 190 90 290 90 390 90 26489} 26490do_execsql_test joinD-903 { 26491 SELECT t1.*, t2.*, t3.*, t4.* 26492 FROM t1 FULL JOIN t2 ON t1.b=t2.b 26493 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26494 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 26495 WHERE (t2.x>0 OR t2.x IS NULL) 26496 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26497} { 26498 15 115 215 315 - - 215 15 315 15 26499 30 130 230 330 130 30 230 30 330 30 26500 45 145 245 345 - - 245 45 345 45 26501 60 160 260 360 160 60 260 60 360 60 26502 75 175 275 375 - - 275 75 375 75 26503 90 190 290 390 190 90 290 90 390 90 26504} 26505do_execsql_test joinD-904 { 26506 SELECT t1.*, t2.*, t3.*, t4.* 26507 FROM t1 FULL JOIN t2 ON true 26508 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26509 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 26510 WHERE t1.b=t2.b AND t2.x>0 26511 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26512} { 26513 30 130 230 330 130 30 230 30 330 30 26514 60 160 260 360 160 60 260 60 360 60 26515 90 190 290 390 190 90 290 90 390 90 26516} 26517do_execsql_test joinD-905 { 26518 SELECT t1.*, t2.*, t3.*, t4.* 26519 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26520 INNER JOIN t3 ON t1.c=t3.c 26521 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 26522 WHERE t3.y>0 26523 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26524} { 26525 15 115 215 315 - - 215 15 315 15 26526 30 130 230 330 130 30 230 30 330 30 26527 45 145 245 345 - - 245 45 345 45 26528 60 160 260 360 160 60 260 60 360 60 26529 75 175 275 375 - - 275 75 375 75 26530 90 190 290 390 190 90 290 90 390 90 26531} 26532do_execsql_test joinD-906 { 26533 SELECT t1.*, t2.*, t3.*, t4.* 26534 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26535 INNER JOIN t3 ON t1.c=t3.c 26536 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 26537 WHERE t3.y>0 OR t3.y IS NULL 26538 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26539} { 26540 15 115 215 315 - - 215 15 315 15 26541 30 130 230 330 130 30 230 30 330 30 26542 45 145 245 345 - - 245 45 345 45 26543 60 160 260 360 160 60 260 60 360 60 26544 75 175 275 375 - - 275 75 375 75 26545 90 190 290 390 190 90 290 90 390 90 26546} 26547do_execsql_test joinD-907 { 26548 SELECT t1.*, t2.*, t3.*, t4.* 26549 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26550 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26551 INNER JOIN t4 ON t1.d=t4.d 26552 WHERE t4.z>0 26553 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26554} { 26555 15 115 215 315 - - 215 15 315 15 26556 30 130 230 330 130 30 230 30 330 30 26557 45 145 245 345 - - 245 45 345 45 26558 60 160 260 360 160 60 260 60 360 60 26559 75 175 275 375 - - 275 75 375 75 26560 90 190 290 390 190 90 290 90 390 90 26561} 26562do_execsql_test joinD-908 { 26563 SELECT t1.*, t2.*, t3.*, t4.* 26564 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26565 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26566 INNER JOIN t4 ON t1.d=t4.d 26567 WHERE t4.z IS NULL OR t4.z>0 26568 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26569} { 26570 15 115 215 315 - - 215 15 315 15 26571 30 130 230 330 130 30 230 30 330 30 26572 45 145 245 345 - - 245 45 345 45 26573 60 160 260 360 160 60 260 60 360 60 26574 75 175 275 375 - - 275 75 375 75 26575 90 190 290 390 190 90 290 90 390 90 26576} 26577do_execsql_test joinD-909 { 26578 SELECT t1.*, t2.*, t3.*, t4.* 26579 FROM t1 FULL JOIN t2 ON t1.b=t2.b 26580 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26581 INNER JOIN t4 ON t1.d=t4.d 26582 WHERE t2.x>0 AND t4.z>0 26583 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26584} { 26585 30 130 230 330 130 30 230 30 330 30 26586 60 160 260 360 160 60 260 60 360 60 26587 90 190 290 390 190 90 290 90 390 90 26588} 26589do_execsql_test joinD-910 { 26590 SELECT t1.*, t2.*, t3.*, t4.* 26591 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26592 INNER JOIN t3 ON t1.c=t3.c 26593 INNER JOIN t4 ON t1.d=t4.d 26594 WHERE t4.z>0 AND t3.y>0 26595 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26596} { 26597 15 115 215 315 - - 215 15 315 15 26598 30 130 230 330 130 30 230 30 330 30 26599 45 145 245 345 - - 245 45 345 45 26600 60 160 260 360 160 60 260 60 360 60 26601 75 175 275 375 - - 275 75 375 75 26602 90 190 290 390 190 90 290 90 390 90 26603} 26604do_execsql_test joinD-911 { 26605 SELECT t1.*, t2.*, t3.*, t4.* 26606 FROM t1 FULL JOIN t2 ON t1.b=t2.b 26607 INNER JOIN t3 ON t1.c=t3.c 26608 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 26609 WHERE t2.x>0 AND t3.y>0 26610 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26611} { 26612 30 130 230 330 130 30 230 30 330 30 26613 60 160 260 360 160 60 260 60 360 60 26614 90 190 290 390 190 90 290 90 390 90 26615} 26616do_execsql_test joinD-912 { 26617 SELECT t1.*, t2.*, t3.*, t4.* 26618 FROM t1 FULL JOIN t2 ON t1.b=t2.b 26619 INNER JOIN t3 ON t1.c=t3.c 26620 INNER JOIN t4 ON t1.d=t4.d 26621 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 26622 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26623} { 26624 30 130 230 330 130 30 230 30 330 30 26625 60 160 260 360 160 60 260 60 360 60 26626 90 190 290 390 190 90 290 90 390 90 26627} 26628do_execsql_test joinD-913 { 26629 SELECT t1.*, t2.*, t3.*, t4.* 26630 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 26631 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 26632 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 26633 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26634} { 26635 15 115 215 315 - - 215 15 315 15 26636 30 130 230 330 130 30 230 30 330 30 26637 45 145 245 345 - - 245 45 345 45 26638 60 160 260 360 160 60 260 60 360 60 26639 75 175 275 375 - - 275 75 375 75 26640 90 190 290 390 190 90 290 90 390 90 26641} 26642do_execsql_test joinD-914 { 26643 SELECT t1.*, t2.*, t3.*, t4.* 26644 FROM t1 FULL JOIN t2 ON t2.x>0 26645 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 26646 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 26647 WHERE t1.b = t2.b 26648 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26649} { 26650 30 130 230 330 130 30 230 30 330 30 26651 60 160 260 360 160 60 260 60 360 60 26652 90 190 290 390 190 90 290 90 390 90 26653} 26654do_execsql_test joinD-915 { 26655 SELECT t1.*, t2.*, t3.*, t4.* 26656 FROM t1 FULL JOIN t2 ON t2.x>0 26657 INNER JOIN t3 ON t3.y>0 26658 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 26659 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 26660 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26661} { 26662 30 130 230 330 130 30 230 30 330 30 26663 60 160 260 360 160 60 260 60 360 60 26664 90 190 290 390 190 90 290 90 390 90 26665} 26666do_execsql_test joinD-916 { 26667 SELECT t1.*, t2.*, t3.*, t4.* 26668 FROM t1 FULL JOIN t2 ON t2.x>0 26669 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 26670 INNER JOIN t4 ON t4.z>0 26671 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 26672 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26673} { 26674 30 130 230 330 130 30 230 30 330 30 26675 60 160 260 360 160 60 260 60 360 60 26676 90 190 290 390 190 90 290 90 390 90 26677} 26678do_execsql_test joinD-917 { 26679 SELECT t1.*, t2.*, t3.*, t4.* 26680 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26681 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 26682 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 26683 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26684} { 26685 15 115 215 315 - - 215 15 315 15 26686 30 130 230 330 130 30 230 30 330 30 26687 45 145 245 345 - - 245 45 345 45 26688 60 160 260 360 160 60 260 60 360 60 26689 75 175 275 375 - - 275 75 375 75 26690 90 190 290 390 190 90 290 90 390 90 26691} 26692do_execsql_test joinD-918 { 26693 SELECT t1.*, t2.*, t3.*, t4.* 26694 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26695 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26696 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 26697 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26698} { 26699 3 103 203 303 - - 203 3 - - 26700 6 106 206 306 106 6 206 6 - - 26701 9 109 209 309 - - 209 9 - - 26702 12 112 212 312 112 12 212 12 - - 26703 15 115 215 315 - - 215 15 315 15 26704 18 118 218 318 118 18 218 18 - - 26705 21 121 221 321 - - 221 21 - - 26706 24 124 224 324 124 24 224 24 - - 26707 27 127 227 327 - - 227 27 - - 26708 30 130 230 330 130 30 230 30 330 30 26709 33 133 233 333 - - 233 33 - - 26710 36 136 236 336 136 36 236 36 - - 26711 39 139 239 339 - - 239 39 - - 26712 42 142 242 342 142 42 242 42 - - 26713 45 145 245 345 - - 245 45 345 45 26714 48 148 248 348 148 48 248 48 - - 26715 51 151 251 351 - - 251 51 - - 26716 54 154 254 354 154 54 254 54 - - 26717 57 157 257 357 - - 257 57 - - 26718 60 160 260 360 160 60 260 60 360 60 26719 63 163 263 363 - - 263 63 - - 26720 66 166 266 366 166 66 266 66 - - 26721 69 169 269 369 - - 269 69 - - 26722 72 172 272 372 172 72 272 72 - - 26723 75 175 275 375 - - 275 75 375 75 26724 78 178 278 378 178 78 278 78 - - 26725 81 181 281 381 - - 281 81 - - 26726 84 184 284 384 184 84 284 84 - - 26727 87 187 287 387 - - 287 87 - - 26728 90 190 290 390 190 90 290 90 390 90 26729 93 193 293 393 - - 293 93 - - 26730} 26731do_execsql_test joinD-919 { 26732 SELECT t1.*, t2.*, t3.*, t4.* 26733 FROM t1 FULL JOIN t2 ON t1.b=t2.b 26734 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26735 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 26736 WHERE t2.x>0 26737 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26738} { 26739 6 106 206 306 106 6 206 6 - - 26740 12 112 212 312 112 12 212 12 - - 26741 18 118 218 318 118 18 218 18 - - 26742 24 124 224 324 124 24 224 24 - - 26743 30 130 230 330 130 30 230 30 330 30 26744 36 136 236 336 136 36 236 36 - - 26745 42 142 242 342 142 42 242 42 - - 26746 48 148 248 348 148 48 248 48 - - 26747 54 154 254 354 154 54 254 54 - - 26748 60 160 260 360 160 60 260 60 360 60 26749 66 166 266 366 166 66 266 66 - - 26750 72 172 272 372 172 72 272 72 - - 26751 78 178 278 378 178 78 278 78 - - 26752 84 184 284 384 184 84 284 84 - - 26753 90 190 290 390 190 90 290 90 390 90 26754} 26755do_execsql_test joinD-920 { 26756 SELECT t1.*, t2.*, t3.*, t4.* 26757 FROM t1 FULL JOIN t2 ON t1.b=t2.b 26758 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26759 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 26760 WHERE (t2.x>0 OR t2.x IS NULL) 26761 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26762} { 26763 3 103 203 303 - - 203 3 - - 26764 6 106 206 306 106 6 206 6 - - 26765 9 109 209 309 - - 209 9 - - 26766 12 112 212 312 112 12 212 12 - - 26767 15 115 215 315 - - 215 15 315 15 26768 18 118 218 318 118 18 218 18 - - 26769 21 121 221 321 - - 221 21 - - 26770 24 124 224 324 124 24 224 24 - - 26771 27 127 227 327 - - 227 27 - - 26772 30 130 230 330 130 30 230 30 330 30 26773 33 133 233 333 - - 233 33 - - 26774 36 136 236 336 136 36 236 36 - - 26775 39 139 239 339 - - 239 39 - - 26776 42 142 242 342 142 42 242 42 - - 26777 45 145 245 345 - - 245 45 345 45 26778 48 148 248 348 148 48 248 48 - - 26779 51 151 251 351 - - 251 51 - - 26780 54 154 254 354 154 54 254 54 - - 26781 57 157 257 357 - - 257 57 - - 26782 60 160 260 360 160 60 260 60 360 60 26783 63 163 263 363 - - 263 63 - - 26784 66 166 266 366 166 66 266 66 - - 26785 69 169 269 369 - - 269 69 - - 26786 72 172 272 372 172 72 272 72 - - 26787 75 175 275 375 - - 275 75 375 75 26788 78 178 278 378 178 78 278 78 - - 26789 81 181 281 381 - - 281 81 - - 26790 84 184 284 384 184 84 284 84 - - 26791 87 187 287 387 - - 287 87 - - 26792 90 190 290 390 190 90 290 90 390 90 26793 93 193 293 393 - - 293 93 - - 26794} 26795do_execsql_test joinD-921 { 26796 SELECT t1.*, t2.*, t3.*, t4.* 26797 FROM t1 FULL JOIN t2 ON true 26798 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26799 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 26800 WHERE t1.b=t2.b AND t2.x>0 26801 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26802} { 26803 6 106 206 306 106 6 206 6 - - 26804 12 112 212 312 112 12 212 12 - - 26805 18 118 218 318 118 18 218 18 - - 26806 24 124 224 324 124 24 224 24 - - 26807 30 130 230 330 130 30 230 30 330 30 26808 36 136 236 336 136 36 236 36 - - 26809 42 142 242 342 142 42 242 42 - - 26810 48 148 248 348 148 48 248 48 - - 26811 54 154 254 354 154 54 254 54 - - 26812 60 160 260 360 160 60 260 60 360 60 26813 66 166 266 366 166 66 266 66 - - 26814 72 172 272 372 172 72 272 72 - - 26815 78 178 278 378 178 78 278 78 - - 26816 84 184 284 384 184 84 284 84 - - 26817 90 190 290 390 190 90 290 90 390 90 26818} 26819do_execsql_test joinD-922 { 26820 SELECT t1.*, t2.*, t3.*, t4.* 26821 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26822 INNER JOIN t3 ON t1.c=t3.c 26823 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 26824 WHERE t3.y>0 26825 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26826} { 26827 3 103 203 303 - - 203 3 - - 26828 6 106 206 306 106 6 206 6 - - 26829 9 109 209 309 - - 209 9 - - 26830 12 112 212 312 112 12 212 12 - - 26831 15 115 215 315 - - 215 15 315 15 26832 18 118 218 318 118 18 218 18 - - 26833 21 121 221 321 - - 221 21 - - 26834 24 124 224 324 124 24 224 24 - - 26835 27 127 227 327 - - 227 27 - - 26836 30 130 230 330 130 30 230 30 330 30 26837 33 133 233 333 - - 233 33 - - 26838 36 136 236 336 136 36 236 36 - - 26839 39 139 239 339 - - 239 39 - - 26840 42 142 242 342 142 42 242 42 - - 26841 45 145 245 345 - - 245 45 345 45 26842 48 148 248 348 148 48 248 48 - - 26843 51 151 251 351 - - 251 51 - - 26844 54 154 254 354 154 54 254 54 - - 26845 57 157 257 357 - - 257 57 - - 26846 60 160 260 360 160 60 260 60 360 60 26847 63 163 263 363 - - 263 63 - - 26848 66 166 266 366 166 66 266 66 - - 26849 69 169 269 369 - - 269 69 - - 26850 72 172 272 372 172 72 272 72 - - 26851 75 175 275 375 - - 275 75 375 75 26852 78 178 278 378 178 78 278 78 - - 26853 81 181 281 381 - - 281 81 - - 26854 84 184 284 384 184 84 284 84 - - 26855 87 187 287 387 - - 287 87 - - 26856 90 190 290 390 190 90 290 90 390 90 26857 93 193 293 393 - - 293 93 - - 26858} 26859do_execsql_test joinD-923 { 26860 SELECT t1.*, t2.*, t3.*, t4.* 26861 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26862 INNER JOIN t3 ON t1.c=t3.c 26863 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 26864 WHERE t3.y>0 OR t3.y IS NULL 26865 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26866} { 26867 3 103 203 303 - - 203 3 - - 26868 6 106 206 306 106 6 206 6 - - 26869 9 109 209 309 - - 209 9 - - 26870 12 112 212 312 112 12 212 12 - - 26871 15 115 215 315 - - 215 15 315 15 26872 18 118 218 318 118 18 218 18 - - 26873 21 121 221 321 - - 221 21 - - 26874 24 124 224 324 124 24 224 24 - - 26875 27 127 227 327 - - 227 27 - - 26876 30 130 230 330 130 30 230 30 330 30 26877 33 133 233 333 - - 233 33 - - 26878 36 136 236 336 136 36 236 36 - - 26879 39 139 239 339 - - 239 39 - - 26880 42 142 242 342 142 42 242 42 - - 26881 45 145 245 345 - - 245 45 345 45 26882 48 148 248 348 148 48 248 48 - - 26883 51 151 251 351 - - 251 51 - - 26884 54 154 254 354 154 54 254 54 - - 26885 57 157 257 357 - - 257 57 - - 26886 60 160 260 360 160 60 260 60 360 60 26887 63 163 263 363 - - 263 63 - - 26888 66 166 266 366 166 66 266 66 - - 26889 69 169 269 369 - - 269 69 - - 26890 72 172 272 372 172 72 272 72 - - 26891 75 175 275 375 - - 275 75 375 75 26892 78 178 278 378 178 78 278 78 - - 26893 81 181 281 381 - - 281 81 - - 26894 84 184 284 384 184 84 284 84 - - 26895 87 187 287 387 - - 287 87 - - 26896 90 190 290 390 190 90 290 90 390 90 26897 93 193 293 393 - - 293 93 - - 26898} 26899do_execsql_test joinD-924 { 26900 SELECT t1.*, t2.*, t3.*, t4.* 26901 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26902 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26903 LEFT JOIN t4 ON t1.d=t4.d 26904 WHERE t4.z>0 26905 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26906} { 26907 15 115 215 315 - - 215 15 315 15 26908 30 130 230 330 130 30 230 30 330 30 26909 45 145 245 345 - - 245 45 345 45 26910 60 160 260 360 160 60 260 60 360 60 26911 75 175 275 375 - - 275 75 375 75 26912 90 190 290 390 190 90 290 90 390 90 26913} 26914do_execsql_test joinD-925 { 26915 SELECT t1.*, t2.*, t3.*, t4.* 26916 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26917 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26918 LEFT JOIN t4 ON t1.d=t4.d 26919 WHERE t4.z IS NULL OR t4.z>0 26920 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26921} { 26922 3 103 203 303 - - 203 3 - - 26923 6 106 206 306 106 6 206 6 - - 26924 9 109 209 309 - - 209 9 - - 26925 12 112 212 312 112 12 212 12 - - 26926 15 115 215 315 - - 215 15 315 15 26927 18 118 218 318 118 18 218 18 - - 26928 21 121 221 321 - - 221 21 - - 26929 24 124 224 324 124 24 224 24 - - 26930 27 127 227 327 - - 227 27 - - 26931 30 130 230 330 130 30 230 30 330 30 26932 33 133 233 333 - - 233 33 - - 26933 36 136 236 336 136 36 236 36 - - 26934 39 139 239 339 - - 239 39 - - 26935 42 142 242 342 142 42 242 42 - - 26936 45 145 245 345 - - 245 45 345 45 26937 48 148 248 348 148 48 248 48 - - 26938 51 151 251 351 - - 251 51 - - 26939 54 154 254 354 154 54 254 54 - - 26940 57 157 257 357 - - 257 57 - - 26941 60 160 260 360 160 60 260 60 360 60 26942 63 163 263 363 - - 263 63 - - 26943 66 166 266 366 166 66 266 66 - - 26944 69 169 269 369 - - 269 69 - - 26945 72 172 272 372 172 72 272 72 - - 26946 75 175 275 375 - - 275 75 375 75 26947 78 178 278 378 178 78 278 78 - - 26948 81 181 281 381 - - 281 81 - - 26949 84 184 284 384 184 84 284 84 - - 26950 87 187 287 387 - - 287 87 - - 26951 90 190 290 390 190 90 290 90 390 90 26952 93 193 293 393 - - 293 93 - - 26953} 26954do_execsql_test joinD-926 { 26955 SELECT t1.*, t2.*, t3.*, t4.* 26956 FROM t1 FULL JOIN t2 ON t1.b=t2.b 26957 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26958 LEFT JOIN t4 ON t1.d=t4.d 26959 WHERE t2.x>0 AND t4.z>0 26960 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26961} { 26962 30 130 230 330 130 30 230 30 330 30 26963 60 160 260 360 160 60 260 60 360 60 26964 90 190 290 390 190 90 290 90 390 90 26965} 26966do_execsql_test joinD-927 { 26967 SELECT t1.*, t2.*, t3.*, t4.* 26968 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26969 INNER JOIN t3 ON t1.c=t3.c 26970 LEFT JOIN t4 ON t1.d=t4.d 26971 WHERE t4.z>0 AND t3.y>0 26972 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26973} { 26974 15 115 215 315 - - 215 15 315 15 26975 30 130 230 330 130 30 230 30 330 30 26976 45 145 245 345 - - 245 45 345 45 26977 60 160 260 360 160 60 260 60 360 60 26978 75 175 275 375 - - 275 75 375 75 26979 90 190 290 390 190 90 290 90 390 90 26980} 26981do_execsql_test joinD-928 { 26982 SELECT t1.*, t2.*, t3.*, t4.* 26983 FROM t1 FULL JOIN t2 ON t1.b=t2.b 26984 INNER JOIN t3 ON t1.c=t3.c 26985 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 26986 WHERE t2.x>0 AND t3.y>0 26987 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26988} { 26989 6 106 206 306 106 6 206 6 - - 26990 12 112 212 312 112 12 212 12 - - 26991 18 118 218 318 118 18 218 18 - - 26992 24 124 224 324 124 24 224 24 - - 26993 30 130 230 330 130 30 230 30 330 30 26994 36 136 236 336 136 36 236 36 - - 26995 42 142 242 342 142 42 242 42 - - 26996 48 148 248 348 148 48 248 48 - - 26997 54 154 254 354 154 54 254 54 - - 26998 60 160 260 360 160 60 260 60 360 60 26999 66 166 266 366 166 66 266 66 - - 27000 72 172 272 372 172 72 272 72 - - 27001 78 178 278 378 178 78 278 78 - - 27002 84 184 284 384 184 84 284 84 - - 27003 90 190 290 390 190 90 290 90 390 90 27004} 27005do_execsql_test joinD-929 { 27006 SELECT t1.*, t2.*, t3.*, t4.* 27007 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27008 INNER JOIN t3 ON t1.c=t3.c 27009 LEFT JOIN t4 ON t1.d=t4.d 27010 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 27011 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27012} { 27013 30 130 230 330 130 30 230 30 330 30 27014 60 160 260 360 160 60 260 60 360 60 27015 90 190 290 390 190 90 290 90 390 90 27016} 27017do_execsql_test joinD-930 { 27018 SELECT t1.*, t2.*, t3.*, t4.* 27019 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 27020 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 27021 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 27022 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27023} { 27024 3 103 203 303 - - 203 3 - - 27025 6 106 206 306 106 6 206 6 - - 27026 9 109 209 309 - - 209 9 - - 27027 12 112 212 312 112 12 212 12 - - 27028 15 115 215 315 - - 215 15 315 15 27029 18 118 218 318 118 18 218 18 - - 27030 21 121 221 321 - - 221 21 - - 27031 24 124 224 324 124 24 224 24 - - 27032 27 127 227 327 - - 227 27 - - 27033 30 130 230 330 130 30 230 30 330 30 27034 33 133 233 333 - - 233 33 - - 27035 36 136 236 336 136 36 236 36 - - 27036 39 139 239 339 - - 239 39 - - 27037 42 142 242 342 142 42 242 42 - - 27038 45 145 245 345 - - 245 45 345 45 27039 48 148 248 348 148 48 248 48 - - 27040 51 151 251 351 - - 251 51 - - 27041 54 154 254 354 154 54 254 54 - - 27042 57 157 257 357 - - 257 57 - - 27043 60 160 260 360 160 60 260 60 360 60 27044 63 163 263 363 - - 263 63 - - 27045 66 166 266 366 166 66 266 66 - - 27046 69 169 269 369 - - 269 69 - - 27047 72 172 272 372 172 72 272 72 - - 27048 75 175 275 375 - - 275 75 375 75 27049 78 178 278 378 178 78 278 78 - - 27050 81 181 281 381 - - 281 81 - - 27051 84 184 284 384 184 84 284 84 - - 27052 87 187 287 387 - - 287 87 - - 27053 90 190 290 390 190 90 290 90 390 90 27054 93 193 293 393 - - 293 93 - - 27055} 27056do_execsql_test joinD-931 { 27057 SELECT t1.*, t2.*, t3.*, t4.* 27058 FROM t1 FULL JOIN t2 ON t2.x>0 27059 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 27060 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 27061 WHERE t1.b = t2.b 27062 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27063} { 27064 6 106 206 306 106 6 206 6 - - 27065 12 112 212 312 112 12 212 12 - - 27066 18 118 218 318 118 18 218 18 - - 27067 24 124 224 324 124 24 224 24 - - 27068 30 130 230 330 130 30 230 30 330 30 27069 36 136 236 336 136 36 236 36 - - 27070 42 142 242 342 142 42 242 42 - - 27071 48 148 248 348 148 48 248 48 - - 27072 54 154 254 354 154 54 254 54 - - 27073 60 160 260 360 160 60 260 60 360 60 27074 66 166 266 366 166 66 266 66 - - 27075 72 172 272 372 172 72 272 72 - - 27076 78 178 278 378 178 78 278 78 - - 27077 84 184 284 384 184 84 284 84 - - 27078 90 190 290 390 190 90 290 90 390 90 27079} 27080do_execsql_test joinD-932 { 27081 SELECT t1.*, t2.*, t3.*, t4.* 27082 FROM t1 FULL JOIN t2 ON t2.x>0 27083 INNER JOIN t3 ON t3.y>0 27084 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 27085 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 27086 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27087} { 27088 6 106 206 306 106 6 206 6 - - 27089 12 112 212 312 112 12 212 12 - - 27090 18 118 218 318 118 18 218 18 - - 27091 24 124 224 324 124 24 224 24 - - 27092 30 130 230 330 130 30 230 30 330 30 27093 36 136 236 336 136 36 236 36 - - 27094 42 142 242 342 142 42 242 42 - - 27095 48 148 248 348 148 48 248 48 - - 27096 54 154 254 354 154 54 254 54 - - 27097 60 160 260 360 160 60 260 60 360 60 27098 66 166 266 366 166 66 266 66 - - 27099 72 172 272 372 172 72 272 72 - - 27100 78 178 278 378 178 78 278 78 - - 27101 84 184 284 384 184 84 284 84 - - 27102 90 190 290 390 190 90 290 90 390 90 27103} 27104do_execsql_test joinD-933 { 27105 SELECT t1.*, t2.*, t3.*, t4.* 27106 FROM t1 FULL JOIN t2 ON t2.x>0 27107 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 27108 LEFT JOIN t4 ON t4.z>0 27109 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 27110 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27111} { 27112 30 130 230 330 130 30 230 30 330 30 27113 60 160 260 360 160 60 260 60 360 60 27114 90 190 290 390 190 90 290 90 390 90 27115} 27116do_execsql_test joinD-934 { 27117 SELECT t1.*, t2.*, t3.*, t4.* 27118 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27119 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 27120 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 27121 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27122} { 27123 3 103 203 303 - - 203 3 - - 27124 6 106 206 306 106 6 206 6 - - 27125 9 109 209 309 - - 209 9 - - 27126 12 112 212 312 112 12 212 12 - - 27127 15 115 215 315 - - 215 15 315 15 27128 18 118 218 318 118 18 218 18 - - 27129 21 121 221 321 - - 221 21 - - 27130 24 124 224 324 124 24 224 24 - - 27131 27 127 227 327 - - 227 27 - - 27132 30 130 230 330 130 30 230 30 330 30 27133 33 133 233 333 - - 233 33 - - 27134 36 136 236 336 136 36 236 36 - - 27135 39 139 239 339 - - 239 39 - - 27136 42 142 242 342 142 42 242 42 - - 27137 45 145 245 345 - - 245 45 345 45 27138 48 148 248 348 148 48 248 48 - - 27139 51 151 251 351 - - 251 51 - - 27140 54 154 254 354 154 54 254 54 - - 27141 57 157 257 357 - - 257 57 - - 27142 60 160 260 360 160 60 260 60 360 60 27143 63 163 263 363 - - 263 63 - - 27144 66 166 266 366 166 66 266 66 - - 27145 69 169 269 369 - - 269 69 - - 27146 72 172 272 372 172 72 272 72 - - 27147 75 175 275 375 - - 275 75 375 75 27148 78 178 278 378 178 78 278 78 - - 27149 81 181 281 381 - - 281 81 - - 27150 84 184 284 384 184 84 284 84 - - 27151 87 187 287 387 - - 287 87 - - 27152 90 190 290 390 190 90 290 90 390 90 27153 93 193 293 393 - - 293 93 - - 27154} 27155do_execsql_test joinD-935 { 27156 SELECT t1.*, t2.*, t3.*, t4.* 27157 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27158 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27159 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 27160 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27161} { 27162 15 115 215 315 - - 215 15 315 15 27163 30 130 230 330 130 30 230 30 330 30 27164 45 145 245 345 - - 245 45 345 45 27165 60 160 260 360 160 60 260 60 360 60 27166 75 175 275 375 - - 275 75 375 75 27167 90 190 290 390 190 90 290 90 390 90 27168 - - - - - - - - 300 0 27169 - - - - - - - - 305 5 27170 - - - - - - - - 310 10 27171 - - - - - - - - 320 20 27172 - - - - - - - - 325 25 27173 - - - - - - - - 335 35 27174 - - - - - - - - 340 40 27175 - - - - - - - - 350 50 27176 - - - - - - - - 355 55 27177 - - - - - - - - 365 65 27178 - - - - - - - - 370 70 27179 - - - - - - - - 380 80 27180 - - - - - - - - 385 85 27181 - - - - - - - - 395 95 27182} 27183do_execsql_test joinD-936 { 27184 SELECT t1.*, t2.*, t3.*, t4.* 27185 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27186 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27187 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 27188 WHERE t2.x>0 27189 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27190} { 27191 30 130 230 330 130 30 230 30 330 30 27192 60 160 260 360 160 60 260 60 360 60 27193 90 190 290 390 190 90 290 90 390 90 27194} 27195do_execsql_test joinD-937 { 27196 SELECT t1.*, t2.*, t3.*, t4.* 27197 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27198 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27199 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 27200 WHERE (t2.x>0 OR t2.x IS NULL) 27201 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27202} { 27203 15 115 215 315 - - 215 15 315 15 27204 30 130 230 330 130 30 230 30 330 30 27205 45 145 245 345 - - 245 45 345 45 27206 60 160 260 360 160 60 260 60 360 60 27207 75 175 275 375 - - 275 75 375 75 27208 90 190 290 390 190 90 290 90 390 90 27209 - - - - - - - - 300 0 27210 - - - - - - - - 305 5 27211 - - - - - - - - 310 10 27212 - - - - - - - - 320 20 27213 - - - - - - - - 325 25 27214 - - - - - - - - 335 35 27215 - - - - - - - - 340 40 27216 - - - - - - - - 350 50 27217 - - - - - - - - 355 55 27218 - - - - - - - - 365 65 27219 - - - - - - - - 370 70 27220 - - - - - - - - 380 80 27221 - - - - - - - - 385 85 27222 - - - - - - - - 395 95 27223} 27224do_execsql_test joinD-938 { 27225 SELECT t1.*, t2.*, t3.*, t4.* 27226 FROM t1 FULL JOIN t2 ON true 27227 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27228 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 27229 WHERE t1.b=t2.b AND t2.x>0 27230 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27231} { 27232 30 130 230 330 130 30 230 30 330 30 27233 60 160 260 360 160 60 260 60 360 60 27234 90 190 290 390 190 90 290 90 390 90 27235} 27236do_execsql_test joinD-939 { 27237 SELECT t1.*, t2.*, t3.*, t4.* 27238 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27239 INNER JOIN t3 ON t1.c=t3.c 27240 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 27241 WHERE t3.y>0 27242 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27243} { 27244 15 115 215 315 - - 215 15 315 15 27245 30 130 230 330 130 30 230 30 330 30 27246 45 145 245 345 - - 245 45 345 45 27247 60 160 260 360 160 60 260 60 360 60 27248 75 175 275 375 - - 275 75 375 75 27249 90 190 290 390 190 90 290 90 390 90 27250} 27251do_execsql_test joinD-940 { 27252 SELECT t1.*, t2.*, t3.*, t4.* 27253 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27254 INNER JOIN t3 ON t1.c=t3.c 27255 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 27256 WHERE t3.y>0 OR t3.y IS NULL 27257 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27258} { 27259 15 115 215 315 - - 215 15 315 15 27260 30 130 230 330 130 30 230 30 330 30 27261 45 145 245 345 - - 245 45 345 45 27262 60 160 260 360 160 60 260 60 360 60 27263 75 175 275 375 - - 275 75 375 75 27264 90 190 290 390 190 90 290 90 390 90 27265 - - - - - - - - 300 0 27266 - - - - - - - - 305 5 27267 - - - - - - - - 310 10 27268 - - - - - - - - 320 20 27269 - - - - - - - - 325 25 27270 - - - - - - - - 335 35 27271 - - - - - - - - 340 40 27272 - - - - - - - - 350 50 27273 - - - - - - - - 355 55 27274 - - - - - - - - 365 65 27275 - - - - - - - - 370 70 27276 - - - - - - - - 380 80 27277 - - - - - - - - 385 85 27278 - - - - - - - - 395 95 27279} 27280do_execsql_test joinD-941 { 27281 SELECT t1.*, t2.*, t3.*, t4.* 27282 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27283 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27284 RIGHT JOIN t4 ON t1.d=t4.d 27285 WHERE t4.z>0 27286 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27287} { 27288 15 115 215 315 - - 215 15 315 15 27289 30 130 230 330 130 30 230 30 330 30 27290 45 145 245 345 - - 245 45 345 45 27291 60 160 260 360 160 60 260 60 360 60 27292 75 175 275 375 - - 275 75 375 75 27293 90 190 290 390 190 90 290 90 390 90 27294 - - - - - - - - 305 5 27295 - - - - - - - - 310 10 27296 - - - - - - - - 320 20 27297 - - - - - - - - 325 25 27298 - - - - - - - - 335 35 27299 - - - - - - - - 340 40 27300 - - - - - - - - 350 50 27301 - - - - - - - - 355 55 27302 - - - - - - - - 365 65 27303 - - - - - - - - 370 70 27304 - - - - - - - - 380 80 27305 - - - - - - - - 385 85 27306 - - - - - - - - 395 95 27307} 27308do_execsql_test joinD-942 { 27309 SELECT t1.*, t2.*, t3.*, t4.* 27310 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27311 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27312 RIGHT JOIN t4 ON t1.d=t4.d 27313 WHERE t4.z IS NULL OR t4.z>0 27314 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27315} { 27316 15 115 215 315 - - 215 15 315 15 27317 30 130 230 330 130 30 230 30 330 30 27318 45 145 245 345 - - 245 45 345 45 27319 60 160 260 360 160 60 260 60 360 60 27320 75 175 275 375 - - 275 75 375 75 27321 90 190 290 390 190 90 290 90 390 90 27322 - - - - - - - - 305 5 27323 - - - - - - - - 310 10 27324 - - - - - - - - 320 20 27325 - - - - - - - - 325 25 27326 - - - - - - - - 335 35 27327 - - - - - - - - 340 40 27328 - - - - - - - - 350 50 27329 - - - - - - - - 355 55 27330 - - - - - - - - 365 65 27331 - - - - - - - - 370 70 27332 - - - - - - - - 380 80 27333 - - - - - - - - 385 85 27334 - - - - - - - - 395 95 27335} 27336do_execsql_test joinD-943 { 27337 SELECT t1.*, t2.*, t3.*, t4.* 27338 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27339 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27340 RIGHT JOIN t4 ON t1.d=t4.d 27341 WHERE t2.x>0 AND t4.z>0 27342 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27343} { 27344 30 130 230 330 130 30 230 30 330 30 27345 60 160 260 360 160 60 260 60 360 60 27346 90 190 290 390 190 90 290 90 390 90 27347} 27348do_execsql_test joinD-944 { 27349 SELECT t1.*, t2.*, t3.*, t4.* 27350 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27351 INNER JOIN t3 ON t1.c=t3.c 27352 RIGHT JOIN t4 ON t1.d=t4.d 27353 WHERE t4.z>0 AND t3.y>0 27354 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27355} { 27356 15 115 215 315 - - 215 15 315 15 27357 30 130 230 330 130 30 230 30 330 30 27358 45 145 245 345 - - 245 45 345 45 27359 60 160 260 360 160 60 260 60 360 60 27360 75 175 275 375 - - 275 75 375 75 27361 90 190 290 390 190 90 290 90 390 90 27362} 27363do_execsql_test joinD-945 { 27364 SELECT t1.*, t2.*, t3.*, t4.* 27365 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27366 INNER JOIN t3 ON t1.c=t3.c 27367 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 27368 WHERE t2.x>0 AND t3.y>0 27369 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27370} { 27371 30 130 230 330 130 30 230 30 330 30 27372 60 160 260 360 160 60 260 60 360 60 27373 90 190 290 390 190 90 290 90 390 90 27374} 27375do_execsql_test joinD-946 { 27376 SELECT t1.*, t2.*, t3.*, t4.* 27377 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27378 INNER JOIN t3 ON t1.c=t3.c 27379 RIGHT JOIN t4 ON t1.d=t4.d 27380 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 27381 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27382} { 27383 30 130 230 330 130 30 230 30 330 30 27384 60 160 260 360 160 60 260 60 360 60 27385 90 190 290 390 190 90 290 90 390 90 27386} 27387do_execsql_test joinD-947 { 27388 SELECT t1.*, t2.*, t3.*, t4.* 27389 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 27390 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 27391 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 27392 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27393} { 27394 15 115 215 315 - - 215 15 315 15 27395 30 130 230 330 130 30 230 30 330 30 27396 45 145 245 345 - - 245 45 345 45 27397 60 160 260 360 160 60 260 60 360 60 27398 75 175 275 375 - - 275 75 375 75 27399 90 190 290 390 190 90 290 90 390 90 27400 - - - - - - - - 300 0 27401 - - - - - - - - 305 5 27402 - - - - - - - - 310 10 27403 - - - - - - - - 320 20 27404 - - - - - - - - 325 25 27405 - - - - - - - - 335 35 27406 - - - - - - - - 340 40 27407 - - - - - - - - 350 50 27408 - - - - - - - - 355 55 27409 - - - - - - - - 365 65 27410 - - - - - - - - 370 70 27411 - - - - - - - - 380 80 27412 - - - - - - - - 385 85 27413 - - - - - - - - 395 95 27414} 27415do_execsql_test joinD-948 { 27416 SELECT t1.*, t2.*, t3.*, t4.* 27417 FROM t1 FULL JOIN t2 ON t2.x>0 27418 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 27419 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 27420 WHERE t1.b = t2.b 27421 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27422} { 27423 30 130 230 330 130 30 230 30 330 30 27424 60 160 260 360 160 60 260 60 360 60 27425 90 190 290 390 190 90 290 90 390 90 27426} 27427do_execsql_test joinD-949 { 27428 SELECT t1.*, t2.*, t3.*, t4.* 27429 FROM t1 FULL JOIN t2 ON t2.x>0 27430 INNER JOIN t3 ON t3.y>0 27431 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 27432 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 27433 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27434} { 27435 30 130 230 330 130 30 230 30 330 30 27436 60 160 260 360 160 60 260 60 360 60 27437 90 190 290 390 190 90 290 90 390 90 27438} 27439do_execsql_test joinD-950 { 27440 SELECT t1.*, t2.*, t3.*, t4.* 27441 FROM t1 FULL JOIN t2 ON t2.x>0 27442 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 27443 RIGHT JOIN t4 ON t4.z>0 27444 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 27445 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27446} { 27447 30 130 230 330 130 30 230 30 330 30 27448 60 160 260 360 160 60 260 60 360 60 27449 90 190 290 390 190 90 290 90 390 90 27450} 27451do_execsql_test joinD-951 { 27452 SELECT t1.*, t2.*, t3.*, t4.* 27453 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27454 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 27455 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 27456 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27457} { 27458 15 115 215 315 - - 215 15 315 15 27459 30 130 230 330 130 30 230 30 330 30 27460 45 145 245 345 - - 245 45 345 45 27461 60 160 260 360 160 60 260 60 360 60 27462 75 175 275 375 - - 275 75 375 75 27463 90 190 290 390 190 90 290 90 390 90 27464 - - - - - - - - 300 0 27465 - - - - - - - - 305 5 27466 - - - - - - - - 310 10 27467 - - - - - - - - 320 20 27468 - - - - - - - - 325 25 27469 - - - - - - - - 335 35 27470 - - - - - - - - 340 40 27471 - - - - - - - - 350 50 27472 - - - - - - - - 355 55 27473 - - - - - - - - 365 65 27474 - - - - - - - - 370 70 27475 - - - - - - - - 380 80 27476 - - - - - - - - 385 85 27477 - - - - - - - - 395 95 27478} 27479do_execsql_test joinD-952 { 27480 SELECT t1.*, t2.*, t3.*, t4.* 27481 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27482 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27483 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 27484 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27485} { 27486 3 103 203 303 - - 203 3 - - 27487 6 106 206 306 106 6 206 6 - - 27488 9 109 209 309 - - 209 9 - - 27489 12 112 212 312 112 12 212 12 - - 27490 15 115 215 315 - - 215 15 315 15 27491 18 118 218 318 118 18 218 18 - - 27492 21 121 221 321 - - 221 21 - - 27493 24 124 224 324 124 24 224 24 - - 27494 27 127 227 327 - - 227 27 - - 27495 30 130 230 330 130 30 230 30 330 30 27496 33 133 233 333 - - 233 33 - - 27497 36 136 236 336 136 36 236 36 - - 27498 39 139 239 339 - - 239 39 - - 27499 42 142 242 342 142 42 242 42 - - 27500 45 145 245 345 - - 245 45 345 45 27501 48 148 248 348 148 48 248 48 - - 27502 51 151 251 351 - - 251 51 - - 27503 54 154 254 354 154 54 254 54 - - 27504 57 157 257 357 - - 257 57 - - 27505 60 160 260 360 160 60 260 60 360 60 27506 63 163 263 363 - - 263 63 - - 27507 66 166 266 366 166 66 266 66 - - 27508 69 169 269 369 - - 269 69 - - 27509 72 172 272 372 172 72 272 72 - - 27510 75 175 275 375 - - 275 75 375 75 27511 78 178 278 378 178 78 278 78 - - 27512 81 181 281 381 - - 281 81 - - 27513 84 184 284 384 184 84 284 84 - - 27514 87 187 287 387 - - 287 87 - - 27515 90 190 290 390 190 90 290 90 390 90 27516 93 193 293 393 - - 293 93 - - 27517 - - - - - - - - 300 0 27518 - - - - - - - - 305 5 27519 - - - - - - - - 310 10 27520 - - - - - - - - 320 20 27521 - - - - - - - - 325 25 27522 - - - - - - - - 335 35 27523 - - - - - - - - 340 40 27524 - - - - - - - - 350 50 27525 - - - - - - - - 355 55 27526 - - - - - - - - 365 65 27527 - - - - - - - - 370 70 27528 - - - - - - - - 380 80 27529 - - - - - - - - 385 85 27530 - - - - - - - - 395 95 27531} 27532do_execsql_test joinD-953 { 27533 SELECT t1.*, t2.*, t3.*, t4.* 27534 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27535 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27536 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 27537 WHERE t2.x>0 27538 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27539} { 27540 6 106 206 306 106 6 206 6 - - 27541 12 112 212 312 112 12 212 12 - - 27542 18 118 218 318 118 18 218 18 - - 27543 24 124 224 324 124 24 224 24 - - 27544 30 130 230 330 130 30 230 30 330 30 27545 36 136 236 336 136 36 236 36 - - 27546 42 142 242 342 142 42 242 42 - - 27547 48 148 248 348 148 48 248 48 - - 27548 54 154 254 354 154 54 254 54 - - 27549 60 160 260 360 160 60 260 60 360 60 27550 66 166 266 366 166 66 266 66 - - 27551 72 172 272 372 172 72 272 72 - - 27552 78 178 278 378 178 78 278 78 - - 27553 84 184 284 384 184 84 284 84 - - 27554 90 190 290 390 190 90 290 90 390 90 27555} 27556do_execsql_test joinD-954 { 27557 SELECT t1.*, t2.*, t3.*, t4.* 27558 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27559 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27560 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 27561 WHERE (t2.x>0 OR t2.x IS NULL) 27562 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27563} { 27564 3 103 203 303 - - 203 3 - - 27565 6 106 206 306 106 6 206 6 - - 27566 9 109 209 309 - - 209 9 - - 27567 12 112 212 312 112 12 212 12 - - 27568 15 115 215 315 - - 215 15 315 15 27569 18 118 218 318 118 18 218 18 - - 27570 21 121 221 321 - - 221 21 - - 27571 24 124 224 324 124 24 224 24 - - 27572 27 127 227 327 - - 227 27 - - 27573 30 130 230 330 130 30 230 30 330 30 27574 33 133 233 333 - - 233 33 - - 27575 36 136 236 336 136 36 236 36 - - 27576 39 139 239 339 - - 239 39 - - 27577 42 142 242 342 142 42 242 42 - - 27578 45 145 245 345 - - 245 45 345 45 27579 48 148 248 348 148 48 248 48 - - 27580 51 151 251 351 - - 251 51 - - 27581 54 154 254 354 154 54 254 54 - - 27582 57 157 257 357 - - 257 57 - - 27583 60 160 260 360 160 60 260 60 360 60 27584 63 163 263 363 - - 263 63 - - 27585 66 166 266 366 166 66 266 66 - - 27586 69 169 269 369 - - 269 69 - - 27587 72 172 272 372 172 72 272 72 - - 27588 75 175 275 375 - - 275 75 375 75 27589 78 178 278 378 178 78 278 78 - - 27590 81 181 281 381 - - 281 81 - - 27591 84 184 284 384 184 84 284 84 - - 27592 87 187 287 387 - - 287 87 - - 27593 90 190 290 390 190 90 290 90 390 90 27594 93 193 293 393 - - 293 93 - - 27595 - - - - - - - - 300 0 27596 - - - - - - - - 305 5 27597 - - - - - - - - 310 10 27598 - - - - - - - - 320 20 27599 - - - - - - - - 325 25 27600 - - - - - - - - 335 35 27601 - - - - - - - - 340 40 27602 - - - - - - - - 350 50 27603 - - - - - - - - 355 55 27604 - - - - - - - - 365 65 27605 - - - - - - - - 370 70 27606 - - - - - - - - 380 80 27607 - - - - - - - - 385 85 27608 - - - - - - - - 395 95 27609} 27610do_execsql_test joinD-955 { 27611 SELECT t1.*, t2.*, t3.*, t4.* 27612 FROM t1 FULL JOIN t2 ON true 27613 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27614 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 27615 WHERE t1.b=t2.b AND t2.x>0 27616 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27617} { 27618 6 106 206 306 106 6 206 6 - - 27619 12 112 212 312 112 12 212 12 - - 27620 18 118 218 318 118 18 218 18 - - 27621 24 124 224 324 124 24 224 24 - - 27622 30 130 230 330 130 30 230 30 330 30 27623 36 136 236 336 136 36 236 36 - - 27624 42 142 242 342 142 42 242 42 - - 27625 48 148 248 348 148 48 248 48 - - 27626 54 154 254 354 154 54 254 54 - - 27627 60 160 260 360 160 60 260 60 360 60 27628 66 166 266 366 166 66 266 66 - - 27629 72 172 272 372 172 72 272 72 - - 27630 78 178 278 378 178 78 278 78 - - 27631 84 184 284 384 184 84 284 84 - - 27632 90 190 290 390 190 90 290 90 390 90 27633} 27634do_execsql_test joinD-956 { 27635 SELECT t1.*, t2.*, t3.*, t4.* 27636 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27637 INNER JOIN t3 ON t1.c=t3.c 27638 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 27639 WHERE t3.y>0 27640 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27641} { 27642 3 103 203 303 - - 203 3 - - 27643 6 106 206 306 106 6 206 6 - - 27644 9 109 209 309 - - 209 9 - - 27645 12 112 212 312 112 12 212 12 - - 27646 15 115 215 315 - - 215 15 315 15 27647 18 118 218 318 118 18 218 18 - - 27648 21 121 221 321 - - 221 21 - - 27649 24 124 224 324 124 24 224 24 - - 27650 27 127 227 327 - - 227 27 - - 27651 30 130 230 330 130 30 230 30 330 30 27652 33 133 233 333 - - 233 33 - - 27653 36 136 236 336 136 36 236 36 - - 27654 39 139 239 339 - - 239 39 - - 27655 42 142 242 342 142 42 242 42 - - 27656 45 145 245 345 - - 245 45 345 45 27657 48 148 248 348 148 48 248 48 - - 27658 51 151 251 351 - - 251 51 - - 27659 54 154 254 354 154 54 254 54 - - 27660 57 157 257 357 - - 257 57 - - 27661 60 160 260 360 160 60 260 60 360 60 27662 63 163 263 363 - - 263 63 - - 27663 66 166 266 366 166 66 266 66 - - 27664 69 169 269 369 - - 269 69 - - 27665 72 172 272 372 172 72 272 72 - - 27666 75 175 275 375 - - 275 75 375 75 27667 78 178 278 378 178 78 278 78 - - 27668 81 181 281 381 - - 281 81 - - 27669 84 184 284 384 184 84 284 84 - - 27670 87 187 287 387 - - 287 87 - - 27671 90 190 290 390 190 90 290 90 390 90 27672 93 193 293 393 - - 293 93 - - 27673} 27674do_execsql_test joinD-957 { 27675 SELECT t1.*, t2.*, t3.*, t4.* 27676 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27677 INNER JOIN t3 ON t1.c=t3.c 27678 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 27679 WHERE t3.y>0 OR t3.y IS NULL 27680 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27681} { 27682 3 103 203 303 - - 203 3 - - 27683 6 106 206 306 106 6 206 6 - - 27684 9 109 209 309 - - 209 9 - - 27685 12 112 212 312 112 12 212 12 - - 27686 15 115 215 315 - - 215 15 315 15 27687 18 118 218 318 118 18 218 18 - - 27688 21 121 221 321 - - 221 21 - - 27689 24 124 224 324 124 24 224 24 - - 27690 27 127 227 327 - - 227 27 - - 27691 30 130 230 330 130 30 230 30 330 30 27692 33 133 233 333 - - 233 33 - - 27693 36 136 236 336 136 36 236 36 - - 27694 39 139 239 339 - - 239 39 - - 27695 42 142 242 342 142 42 242 42 - - 27696 45 145 245 345 - - 245 45 345 45 27697 48 148 248 348 148 48 248 48 - - 27698 51 151 251 351 - - 251 51 - - 27699 54 154 254 354 154 54 254 54 - - 27700 57 157 257 357 - - 257 57 - - 27701 60 160 260 360 160 60 260 60 360 60 27702 63 163 263 363 - - 263 63 - - 27703 66 166 266 366 166 66 266 66 - - 27704 69 169 269 369 - - 269 69 - - 27705 72 172 272 372 172 72 272 72 - - 27706 75 175 275 375 - - 275 75 375 75 27707 78 178 278 378 178 78 278 78 - - 27708 81 181 281 381 - - 281 81 - - 27709 84 184 284 384 184 84 284 84 - - 27710 87 187 287 387 - - 287 87 - - 27711 90 190 290 390 190 90 290 90 390 90 27712 93 193 293 393 - - 293 93 - - 27713 - - - - - - - - 300 0 27714 - - - - - - - - 305 5 27715 - - - - - - - - 310 10 27716 - - - - - - - - 320 20 27717 - - - - - - - - 325 25 27718 - - - - - - - - 335 35 27719 - - - - - - - - 340 40 27720 - - - - - - - - 350 50 27721 - - - - - - - - 355 55 27722 - - - - - - - - 365 65 27723 - - - - - - - - 370 70 27724 - - - - - - - - 380 80 27725 - - - - - - - - 385 85 27726 - - - - - - - - 395 95 27727} 27728do_execsql_test joinD-958 { 27729 SELECT t1.*, t2.*, t3.*, t4.* 27730 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27731 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27732 FULL JOIN t4 ON t1.d=t4.d 27733 WHERE t4.z>0 27734 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27735} { 27736 15 115 215 315 - - 215 15 315 15 27737 30 130 230 330 130 30 230 30 330 30 27738 45 145 245 345 - - 245 45 345 45 27739 60 160 260 360 160 60 260 60 360 60 27740 75 175 275 375 - - 275 75 375 75 27741 90 190 290 390 190 90 290 90 390 90 27742 - - - - - - - - 305 5 27743 - - - - - - - - 310 10 27744 - - - - - - - - 320 20 27745 - - - - - - - - 325 25 27746 - - - - - - - - 335 35 27747 - - - - - - - - 340 40 27748 - - - - - - - - 350 50 27749 - - - - - - - - 355 55 27750 - - - - - - - - 365 65 27751 - - - - - - - - 370 70 27752 - - - - - - - - 380 80 27753 - - - - - - - - 385 85 27754 - - - - - - - - 395 95 27755} 27756do_execsql_test joinD-959 { 27757 SELECT t1.*, t2.*, t3.*, t4.* 27758 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27759 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27760 FULL JOIN t4 ON t1.d=t4.d 27761 WHERE t4.z IS NULL OR t4.z>0 27762 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27763} { 27764 3 103 203 303 - - 203 3 - - 27765 6 106 206 306 106 6 206 6 - - 27766 9 109 209 309 - - 209 9 - - 27767 12 112 212 312 112 12 212 12 - - 27768 15 115 215 315 - - 215 15 315 15 27769 18 118 218 318 118 18 218 18 - - 27770 21 121 221 321 - - 221 21 - - 27771 24 124 224 324 124 24 224 24 - - 27772 27 127 227 327 - - 227 27 - - 27773 30 130 230 330 130 30 230 30 330 30 27774 33 133 233 333 - - 233 33 - - 27775 36 136 236 336 136 36 236 36 - - 27776 39 139 239 339 - - 239 39 - - 27777 42 142 242 342 142 42 242 42 - - 27778 45 145 245 345 - - 245 45 345 45 27779 48 148 248 348 148 48 248 48 - - 27780 51 151 251 351 - - 251 51 - - 27781 54 154 254 354 154 54 254 54 - - 27782 57 157 257 357 - - 257 57 - - 27783 60 160 260 360 160 60 260 60 360 60 27784 63 163 263 363 - - 263 63 - - 27785 66 166 266 366 166 66 266 66 - - 27786 69 169 269 369 - - 269 69 - - 27787 72 172 272 372 172 72 272 72 - - 27788 75 175 275 375 - - 275 75 375 75 27789 78 178 278 378 178 78 278 78 - - 27790 81 181 281 381 - - 281 81 - - 27791 84 184 284 384 184 84 284 84 - - 27792 87 187 287 387 - - 287 87 - - 27793 90 190 290 390 190 90 290 90 390 90 27794 93 193 293 393 - - 293 93 - - 27795 - - - - - - - - 305 5 27796 - - - - - - - - 310 10 27797 - - - - - - - - 320 20 27798 - - - - - - - - 325 25 27799 - - - - - - - - 335 35 27800 - - - - - - - - 340 40 27801 - - - - - - - - 350 50 27802 - - - - - - - - 355 55 27803 - - - - - - - - 365 65 27804 - - - - - - - - 370 70 27805 - - - - - - - - 380 80 27806 - - - - - - - - 385 85 27807 - - - - - - - - 395 95 27808} 27809do_execsql_test joinD-960 { 27810 SELECT t1.*, t2.*, t3.*, t4.* 27811 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27812 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27813 FULL JOIN t4 ON t1.d=t4.d 27814 WHERE t2.x>0 AND t4.z>0 27815 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27816} { 27817 30 130 230 330 130 30 230 30 330 30 27818 60 160 260 360 160 60 260 60 360 60 27819 90 190 290 390 190 90 290 90 390 90 27820} 27821do_execsql_test joinD-961 { 27822 SELECT t1.*, t2.*, t3.*, t4.* 27823 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27824 INNER JOIN t3 ON t1.c=t3.c 27825 FULL JOIN t4 ON t1.d=t4.d 27826 WHERE t4.z>0 AND t3.y>0 27827 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27828} { 27829 15 115 215 315 - - 215 15 315 15 27830 30 130 230 330 130 30 230 30 330 30 27831 45 145 245 345 - - 245 45 345 45 27832 60 160 260 360 160 60 260 60 360 60 27833 75 175 275 375 - - 275 75 375 75 27834 90 190 290 390 190 90 290 90 390 90 27835} 27836do_execsql_test joinD-962 { 27837 SELECT t1.*, t2.*, t3.*, t4.* 27838 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27839 INNER JOIN t3 ON t1.c=t3.c 27840 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 27841 WHERE t2.x>0 AND t3.y>0 27842 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27843} { 27844 6 106 206 306 106 6 206 6 - - 27845 12 112 212 312 112 12 212 12 - - 27846 18 118 218 318 118 18 218 18 - - 27847 24 124 224 324 124 24 224 24 - - 27848 30 130 230 330 130 30 230 30 330 30 27849 36 136 236 336 136 36 236 36 - - 27850 42 142 242 342 142 42 242 42 - - 27851 48 148 248 348 148 48 248 48 - - 27852 54 154 254 354 154 54 254 54 - - 27853 60 160 260 360 160 60 260 60 360 60 27854 66 166 266 366 166 66 266 66 - - 27855 72 172 272 372 172 72 272 72 - - 27856 78 178 278 378 178 78 278 78 - - 27857 84 184 284 384 184 84 284 84 - - 27858 90 190 290 390 190 90 290 90 390 90 27859} 27860do_execsql_test joinD-963 { 27861 SELECT t1.*, t2.*, t3.*, t4.* 27862 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27863 INNER JOIN t3 ON t1.c=t3.c 27864 FULL JOIN t4 ON t1.d=t4.d 27865 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 27866 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27867} { 27868 30 130 230 330 130 30 230 30 330 30 27869 60 160 260 360 160 60 260 60 360 60 27870 90 190 290 390 190 90 290 90 390 90 27871} 27872do_execsql_test joinD-964 { 27873 SELECT t1.*, t2.*, t3.*, t4.* 27874 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 27875 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 27876 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 27877 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27878} { 27879 3 103 203 303 - - 203 3 - - 27880 6 106 206 306 106 6 206 6 - - 27881 9 109 209 309 - - 209 9 - - 27882 12 112 212 312 112 12 212 12 - - 27883 15 115 215 315 - - 215 15 315 15 27884 18 118 218 318 118 18 218 18 - - 27885 21 121 221 321 - - 221 21 - - 27886 24 124 224 324 124 24 224 24 - - 27887 27 127 227 327 - - 227 27 - - 27888 30 130 230 330 130 30 230 30 330 30 27889 33 133 233 333 - - 233 33 - - 27890 36 136 236 336 136 36 236 36 - - 27891 39 139 239 339 - - 239 39 - - 27892 42 142 242 342 142 42 242 42 - - 27893 45 145 245 345 - - 245 45 345 45 27894 48 148 248 348 148 48 248 48 - - 27895 51 151 251 351 - - 251 51 - - 27896 54 154 254 354 154 54 254 54 - - 27897 57 157 257 357 - - 257 57 - - 27898 60 160 260 360 160 60 260 60 360 60 27899 63 163 263 363 - - 263 63 - - 27900 66 166 266 366 166 66 266 66 - - 27901 69 169 269 369 - - 269 69 - - 27902 72 172 272 372 172 72 272 72 - - 27903 75 175 275 375 - - 275 75 375 75 27904 78 178 278 378 178 78 278 78 - - 27905 81 181 281 381 - - 281 81 - - 27906 84 184 284 384 184 84 284 84 - - 27907 87 187 287 387 - - 287 87 - - 27908 90 190 290 390 190 90 290 90 390 90 27909 93 193 293 393 - - 293 93 - - 27910 - - - - - - - - 300 0 27911 - - - - - - - - 305 5 27912 - - - - - - - - 310 10 27913 - - - - - - - - 320 20 27914 - - - - - - - - 325 25 27915 - - - - - - - - 335 35 27916 - - - - - - - - 340 40 27917 - - - - - - - - 350 50 27918 - - - - - - - - 355 55 27919 - - - - - - - - 365 65 27920 - - - - - - - - 370 70 27921 - - - - - - - - 380 80 27922 - - - - - - - - 385 85 27923 - - - - - - - - 395 95 27924} 27925do_execsql_test joinD-965 { 27926 SELECT t1.*, t2.*, t3.*, t4.* 27927 FROM t1 FULL JOIN t2 ON t2.x>0 27928 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 27929 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 27930 WHERE t1.b = t2.b 27931 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27932} { 27933 6 106 206 306 106 6 206 6 - - 27934 12 112 212 312 112 12 212 12 - - 27935 18 118 218 318 118 18 218 18 - - 27936 24 124 224 324 124 24 224 24 - - 27937 30 130 230 330 130 30 230 30 330 30 27938 36 136 236 336 136 36 236 36 - - 27939 42 142 242 342 142 42 242 42 - - 27940 48 148 248 348 148 48 248 48 - - 27941 54 154 254 354 154 54 254 54 - - 27942 60 160 260 360 160 60 260 60 360 60 27943 66 166 266 366 166 66 266 66 - - 27944 72 172 272 372 172 72 272 72 - - 27945 78 178 278 378 178 78 278 78 - - 27946 84 184 284 384 184 84 284 84 - - 27947 90 190 290 390 190 90 290 90 390 90 27948} 27949do_execsql_test joinD-966 { 27950 SELECT t1.*, t2.*, t3.*, t4.* 27951 FROM t1 FULL JOIN t2 ON t2.x>0 27952 INNER JOIN t3 ON t3.y>0 27953 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 27954 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 27955 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27956} { 27957 6 106 206 306 106 6 206 6 - - 27958 12 112 212 312 112 12 212 12 - - 27959 18 118 218 318 118 18 218 18 - - 27960 24 124 224 324 124 24 224 24 - - 27961 30 130 230 330 130 30 230 30 330 30 27962 36 136 236 336 136 36 236 36 - - 27963 42 142 242 342 142 42 242 42 - - 27964 48 148 248 348 148 48 248 48 - - 27965 54 154 254 354 154 54 254 54 - - 27966 60 160 260 360 160 60 260 60 360 60 27967 66 166 266 366 166 66 266 66 - - 27968 72 172 272 372 172 72 272 72 - - 27969 78 178 278 378 178 78 278 78 - - 27970 84 184 284 384 184 84 284 84 - - 27971 90 190 290 390 190 90 290 90 390 90 27972} 27973do_execsql_test joinD-967 { 27974 SELECT t1.*, t2.*, t3.*, t4.* 27975 FROM t1 FULL JOIN t2 ON t2.x>0 27976 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 27977 FULL JOIN t4 ON t4.z>0 27978 WHERE t1.b = t2.b AND t1.d = t4.d 27979 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27980} { 27981 30 130 230 330 130 30 230 30 330 30 27982 60 160 260 360 160 60 260 60 360 60 27983 90 190 290 390 190 90 290 90 390 90 27984} 27985do_execsql_test joinD-968 { 27986 SELECT t1.*, t2.*, t3.*, t4.* 27987 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27988 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 27989 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 27990 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27991} { 27992 3 103 203 303 - - 203 3 - - 27993 6 106 206 306 106 6 206 6 - - 27994 9 109 209 309 - - 209 9 - - 27995 12 112 212 312 112 12 212 12 - - 27996 15 115 215 315 - - 215 15 315 15 27997 18 118 218 318 118 18 218 18 - - 27998 21 121 221 321 - - 221 21 - - 27999 24 124 224 324 124 24 224 24 - - 28000 27 127 227 327 - - 227 27 - - 28001 30 130 230 330 130 30 230 30 330 30 28002 33 133 233 333 - - 233 33 - - 28003 36 136 236 336 136 36 236 36 - - 28004 39 139 239 339 - - 239 39 - - 28005 42 142 242 342 142 42 242 42 - - 28006 45 145 245 345 - - 245 45 345 45 28007 48 148 248 348 148 48 248 48 - - 28008 51 151 251 351 - - 251 51 - - 28009 54 154 254 354 154 54 254 54 - - 28010 57 157 257 357 - - 257 57 - - 28011 60 160 260 360 160 60 260 60 360 60 28012 63 163 263 363 - - 263 63 - - 28013 66 166 266 366 166 66 266 66 - - 28014 69 169 269 369 - - 269 69 - - 28015 72 172 272 372 172 72 272 72 - - 28016 75 175 275 375 - - 275 75 375 75 28017 78 178 278 378 178 78 278 78 - - 28018 81 181 281 381 - - 281 81 - - 28019 84 184 284 384 184 84 284 84 - - 28020 87 187 287 387 - - 287 87 - - 28021 90 190 290 390 190 90 290 90 390 90 28022 93 193 293 393 - - 293 93 - - 28023 - - - - - - - - 300 0 28024 - - - - - - - - 305 5 28025 - - - - - - - - 310 10 28026 - - - - - - - - 320 20 28027 - - - - - - - - 325 25 28028 - - - - - - - - 335 35 28029 - - - - - - - - 340 40 28030 - - - - - - - - 350 50 28031 - - - - - - - - 355 55 28032 - - - - - - - - 365 65 28033 - - - - - - - - 370 70 28034 - - - - - - - - 380 80 28035 - - - - - - - - 385 85 28036 - - - - - - - - 395 95 28037} 28038do_execsql_test joinD-969 { 28039 SELECT t1.*, t2.*, t3.*, t4.* 28040 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28041 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28042 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 28043 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28044} { 28045 5 105 205 305 - - - - 305 5 28046 10 110 210 310 110 10 - - 310 10 28047 15 115 215 315 - - 215 15 315 15 28048 20 120 220 320 120 20 - - 320 20 28049 25 125 225 325 - - - - 325 25 28050 30 130 230 330 130 30 230 30 330 30 28051 35 135 235 335 - - - - 335 35 28052 40 140 240 340 140 40 - - 340 40 28053 45 145 245 345 - - 245 45 345 45 28054 50 150 250 350 150 50 - - 350 50 28055 55 155 255 355 - - - - 355 55 28056 60 160 260 360 160 60 260 60 360 60 28057 65 165 265 365 - - - - 365 65 28058 70 170 270 370 170 70 - - 370 70 28059 75 175 275 375 - - 275 75 375 75 28060 80 180 280 380 180 80 - - 380 80 28061 85 185 285 385 - - - - 385 85 28062 90 190 290 390 190 90 290 90 390 90 28063 95 195 295 395 - - - - 395 95 28064} 28065do_execsql_test joinD-970 { 28066 SELECT t1.*, t2.*, t3.*, t4.* 28067 FROM t1 FULL JOIN t2 ON t1.b=t2.b 28068 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28069 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 28070 WHERE t2.x>0 28071 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28072} { 28073 10 110 210 310 110 10 - - 310 10 28074 20 120 220 320 120 20 - - 320 20 28075 30 130 230 330 130 30 230 30 330 30 28076 40 140 240 340 140 40 - - 340 40 28077 50 150 250 350 150 50 - - 350 50 28078 60 160 260 360 160 60 260 60 360 60 28079 70 170 270 370 170 70 - - 370 70 28080 80 180 280 380 180 80 - - 380 80 28081 90 190 290 390 190 90 290 90 390 90 28082} 28083do_execsql_test joinD-971 { 28084 SELECT t1.*, t2.*, t3.*, t4.* 28085 FROM t1 FULL JOIN t2 ON t1.b=t2.b 28086 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28087 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 28088 WHERE (t2.x>0 OR t2.x IS NULL) 28089 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28090} { 28091 5 105 205 305 - - - - 305 5 28092 10 110 210 310 110 10 - - 310 10 28093 15 115 215 315 - - 215 15 315 15 28094 20 120 220 320 120 20 - - 320 20 28095 25 125 225 325 - - - - 325 25 28096 30 130 230 330 130 30 230 30 330 30 28097 35 135 235 335 - - - - 335 35 28098 40 140 240 340 140 40 - - 340 40 28099 45 145 245 345 - - 245 45 345 45 28100 50 150 250 350 150 50 - - 350 50 28101 55 155 255 355 - - - - 355 55 28102 60 160 260 360 160 60 260 60 360 60 28103 65 165 265 365 - - - - 365 65 28104 70 170 270 370 170 70 - - 370 70 28105 75 175 275 375 - - 275 75 375 75 28106 80 180 280 380 180 80 - - 380 80 28107 85 185 285 385 - - - - 385 85 28108 90 190 290 390 190 90 290 90 390 90 28109 95 195 295 395 - - - - 395 95 28110} 28111do_execsql_test joinD-972 { 28112 SELECT t1.*, t2.*, t3.*, t4.* 28113 FROM t1 FULL JOIN t2 ON true 28114 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28115 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 28116 WHERE t1.b=t2.b AND t2.x>0 28117 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28118} { 28119 10 110 210 310 110 10 - - 310 10 28120 20 120 220 320 120 20 - - 320 20 28121 30 130 230 330 130 30 230 30 330 30 28122 40 140 240 340 140 40 - - 340 40 28123 50 150 250 350 150 50 - - 350 50 28124 60 160 260 360 160 60 260 60 360 60 28125 70 170 270 370 170 70 - - 370 70 28126 80 180 280 380 180 80 - - 380 80 28127 90 190 290 390 190 90 290 90 390 90 28128} 28129do_execsql_test joinD-973 { 28130 SELECT t1.*, t2.*, t3.*, t4.* 28131 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28132 LEFT JOIN t3 ON t1.c=t3.c 28133 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 28134 WHERE t3.y>0 28135 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28136} { 28137 15 115 215 315 - - 215 15 315 15 28138 30 130 230 330 130 30 230 30 330 30 28139 45 145 245 345 - - 245 45 345 45 28140 60 160 260 360 160 60 260 60 360 60 28141 75 175 275 375 - - 275 75 375 75 28142 90 190 290 390 190 90 290 90 390 90 28143} 28144do_execsql_test joinD-974 { 28145 SELECT t1.*, t2.*, t3.*, t4.* 28146 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28147 LEFT JOIN t3 ON t1.c=t3.c 28148 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 28149 WHERE t3.y>0 OR t3.y IS NULL 28150 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28151} { 28152 5 105 205 305 - - - - 305 5 28153 10 110 210 310 110 10 - - 310 10 28154 15 115 215 315 - - 215 15 315 15 28155 20 120 220 320 120 20 - - 320 20 28156 25 125 225 325 - - - - 325 25 28157 30 130 230 330 130 30 230 30 330 30 28158 35 135 235 335 - - - - 335 35 28159 40 140 240 340 140 40 - - 340 40 28160 45 145 245 345 - - 245 45 345 45 28161 50 150 250 350 150 50 - - 350 50 28162 55 155 255 355 - - - - 355 55 28163 60 160 260 360 160 60 260 60 360 60 28164 65 165 265 365 - - - - 365 65 28165 70 170 270 370 170 70 - - 370 70 28166 75 175 275 375 - - 275 75 375 75 28167 80 180 280 380 180 80 - - 380 80 28168 85 185 285 385 - - - - 385 85 28169 90 190 290 390 190 90 290 90 390 90 28170 95 195 295 395 - - - - 395 95 28171} 28172do_execsql_test joinD-975 { 28173 SELECT t1.*, t2.*, t3.*, t4.* 28174 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28175 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28176 INNER JOIN t4 ON t1.d=t4.d 28177 WHERE t4.z>0 28178 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28179} { 28180 5 105 205 305 - - - - 305 5 28181 10 110 210 310 110 10 - - 310 10 28182 15 115 215 315 - - 215 15 315 15 28183 20 120 220 320 120 20 - - 320 20 28184 25 125 225 325 - - - - 325 25 28185 30 130 230 330 130 30 230 30 330 30 28186 35 135 235 335 - - - - 335 35 28187 40 140 240 340 140 40 - - 340 40 28188 45 145 245 345 - - 245 45 345 45 28189 50 150 250 350 150 50 - - 350 50 28190 55 155 255 355 - - - - 355 55 28191 60 160 260 360 160 60 260 60 360 60 28192 65 165 265 365 - - - - 365 65 28193 70 170 270 370 170 70 - - 370 70 28194 75 175 275 375 - - 275 75 375 75 28195 80 180 280 380 180 80 - - 380 80 28196 85 185 285 385 - - - - 385 85 28197 90 190 290 390 190 90 290 90 390 90 28198 95 195 295 395 - - - - 395 95 28199} 28200do_execsql_test joinD-976 { 28201 SELECT t1.*, t2.*, t3.*, t4.* 28202 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28203 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28204 INNER JOIN t4 ON t1.d=t4.d 28205 WHERE t4.z IS NULL OR t4.z>0 28206 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28207} { 28208 5 105 205 305 - - - - 305 5 28209 10 110 210 310 110 10 - - 310 10 28210 15 115 215 315 - - 215 15 315 15 28211 20 120 220 320 120 20 - - 320 20 28212 25 125 225 325 - - - - 325 25 28213 30 130 230 330 130 30 230 30 330 30 28214 35 135 235 335 - - - - 335 35 28215 40 140 240 340 140 40 - - 340 40 28216 45 145 245 345 - - 245 45 345 45 28217 50 150 250 350 150 50 - - 350 50 28218 55 155 255 355 - - - - 355 55 28219 60 160 260 360 160 60 260 60 360 60 28220 65 165 265 365 - - - - 365 65 28221 70 170 270 370 170 70 - - 370 70 28222 75 175 275 375 - - 275 75 375 75 28223 80 180 280 380 180 80 - - 380 80 28224 85 185 285 385 - - - - 385 85 28225 90 190 290 390 190 90 290 90 390 90 28226 95 195 295 395 - - - - 395 95 28227} 28228do_execsql_test joinD-977 { 28229 SELECT t1.*, t2.*, t3.*, t4.* 28230 FROM t1 FULL JOIN t2 ON t1.b=t2.b 28231 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28232 INNER JOIN t4 ON t1.d=t4.d 28233 WHERE t2.x>0 AND t4.z>0 28234 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28235} { 28236 10 110 210 310 110 10 - - 310 10 28237 20 120 220 320 120 20 - - 320 20 28238 30 130 230 330 130 30 230 30 330 30 28239 40 140 240 340 140 40 - - 340 40 28240 50 150 250 350 150 50 - - 350 50 28241 60 160 260 360 160 60 260 60 360 60 28242 70 170 270 370 170 70 - - 370 70 28243 80 180 280 380 180 80 - - 380 80 28244 90 190 290 390 190 90 290 90 390 90 28245} 28246do_execsql_test joinD-978 { 28247 SELECT t1.*, t2.*, t3.*, t4.* 28248 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28249 LEFT JOIN t3 ON t1.c=t3.c 28250 INNER JOIN t4 ON t1.d=t4.d 28251 WHERE t4.z>0 AND t3.y>0 28252 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28253} { 28254 15 115 215 315 - - 215 15 315 15 28255 30 130 230 330 130 30 230 30 330 30 28256 45 145 245 345 - - 245 45 345 45 28257 60 160 260 360 160 60 260 60 360 60 28258 75 175 275 375 - - 275 75 375 75 28259 90 190 290 390 190 90 290 90 390 90 28260} 28261do_execsql_test joinD-979 { 28262 SELECT t1.*, t2.*, t3.*, t4.* 28263 FROM t1 FULL JOIN t2 ON t1.b=t2.b 28264 LEFT JOIN t3 ON t1.c=t3.c 28265 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 28266 WHERE t2.x>0 AND t3.y>0 28267 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28268} { 28269 30 130 230 330 130 30 230 30 330 30 28270 60 160 260 360 160 60 260 60 360 60 28271 90 190 290 390 190 90 290 90 390 90 28272} 28273do_execsql_test joinD-980 { 28274 SELECT t1.*, t2.*, t3.*, t4.* 28275 FROM t1 FULL JOIN t2 ON t1.b=t2.b 28276 LEFT JOIN t3 ON t1.c=t3.c 28277 INNER JOIN t4 ON t1.d=t4.d 28278 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 28279 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28280} { 28281 30 130 230 330 130 30 230 30 330 30 28282 60 160 260 360 160 60 260 60 360 60 28283 90 190 290 390 190 90 290 90 390 90 28284} 28285do_execsql_test joinD-981 { 28286 SELECT t1.*, t2.*, t3.*, t4.* 28287 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 28288 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 28289 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 28290 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28291} { 28292 5 105 205 305 - - - - 305 5 28293 10 110 210 310 110 10 - - 310 10 28294 15 115 215 315 - - 215 15 315 15 28295 20 120 220 320 120 20 - - 320 20 28296 25 125 225 325 - - - - 325 25 28297 30 130 230 330 130 30 230 30 330 30 28298 35 135 235 335 - - - - 335 35 28299 40 140 240 340 140 40 - - 340 40 28300 45 145 245 345 - - 245 45 345 45 28301 50 150 250 350 150 50 - - 350 50 28302 55 155 255 355 - - - - 355 55 28303 60 160 260 360 160 60 260 60 360 60 28304 65 165 265 365 - - - - 365 65 28305 70 170 270 370 170 70 - - 370 70 28306 75 175 275 375 - - 275 75 375 75 28307 80 180 280 380 180 80 - - 380 80 28308 85 185 285 385 - - - - 385 85 28309 90 190 290 390 190 90 290 90 390 90 28310 95 195 295 395 - - - - 395 95 28311} 28312do_execsql_test joinD-982 { 28313 SELECT t1.*, t2.*, t3.*, t4.* 28314 FROM t1 FULL JOIN t2 ON t2.x>0 28315 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 28316 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 28317 WHERE t1.b = t2.b 28318 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28319} { 28320 10 110 210 310 110 10 - - 310 10 28321 20 120 220 320 120 20 - - 320 20 28322 30 130 230 330 130 30 230 30 330 30 28323 40 140 240 340 140 40 - - 340 40 28324 50 150 250 350 150 50 - - 350 50 28325 60 160 260 360 160 60 260 60 360 60 28326 70 170 270 370 170 70 - - 370 70 28327 80 180 280 380 180 80 - - 380 80 28328 90 190 290 390 190 90 290 90 390 90 28329} 28330do_execsql_test joinD-983 { 28331 SELECT t1.*, t2.*, t3.*, t4.* 28332 FROM t1 FULL JOIN t2 ON t2.x>0 28333 LEFT JOIN t3 ON t3.y>0 28334 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 28335 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 28336 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28337} { 28338 30 130 230 330 130 30 230 30 330 30 28339 60 160 260 360 160 60 260 60 360 60 28340 90 190 290 390 190 90 290 90 390 90 28341} 28342do_execsql_test joinD-984 { 28343 SELECT t1.*, t2.*, t3.*, t4.* 28344 FROM t1 FULL JOIN t2 ON t2.x>0 28345 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 28346 INNER JOIN t4 ON t4.z>0 28347 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 28348 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28349} { 28350 10 110 210 310 110 10 - - 310 10 28351 20 120 220 320 120 20 - - 320 20 28352 30 130 230 330 130 30 230 30 330 30 28353 40 140 240 340 140 40 - - 340 40 28354 50 150 250 350 150 50 - - 350 50 28355 60 160 260 360 160 60 260 60 360 60 28356 70 170 270 370 170 70 - - 370 70 28357 80 180 280 380 180 80 - - 380 80 28358 90 190 290 390 190 90 290 90 390 90 28359} 28360do_execsql_test joinD-985 { 28361 SELECT t1.*, t2.*, t3.*, t4.* 28362 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28363 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 28364 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 28365 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28366} { 28367 5 105 205 305 - - - - 305 5 28368 10 110 210 310 110 10 - - 310 10 28369 15 115 215 315 - - 215 15 315 15 28370 20 120 220 320 120 20 - - 320 20 28371 25 125 225 325 - - - - 325 25 28372 30 130 230 330 130 30 230 30 330 30 28373 35 135 235 335 - - - - 335 35 28374 40 140 240 340 140 40 - - 340 40 28375 45 145 245 345 - - 245 45 345 45 28376 50 150 250 350 150 50 - - 350 50 28377 55 155 255 355 - - - - 355 55 28378 60 160 260 360 160 60 260 60 360 60 28379 65 165 265 365 - - - - 365 65 28380 70 170 270 370 170 70 - - 370 70 28381 75 175 275 375 - - 275 75 375 75 28382 80 180 280 380 180 80 - - 380 80 28383 85 185 285 385 - - - - 385 85 28384 90 190 290 390 190 90 290 90 390 90 28385 95 195 295 395 - - - - 395 95 28386} 28387do_execsql_test joinD-986 { 28388 SELECT t1.*, t2.*, t3.*, t4.* 28389 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28390 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28391 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 28392 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28393} { 28394 0 100 200 300 - - - - - - 28395 1 101 201 301 - - - - - - 28396 2 102 202 302 102 2 - - - - 28397 3 103 203 303 - - 203 3 - - 28398 4 104 204 304 104 4 - - - - 28399 5 105 205 305 - - - - 305 5 28400 6 106 206 306 106 6 206 6 - - 28401 7 107 207 307 - - - - - - 28402 8 108 208 308 108 8 - - - - 28403 9 109 209 309 - - 209 9 - - 28404 10 110 210 310 110 10 - - 310 10 28405 11 111 211 311 - - - - - - 28406 12 112 212 312 112 12 212 12 - - 28407 13 113 213 313 - - - - - - 28408 14 114 214 314 114 14 - - - - 28409 15 115 215 315 - - 215 15 315 15 28410 16 116 216 316 116 16 - - - - 28411 17 117 217 317 - - - - - - 28412 18 118 218 318 118 18 218 18 - - 28413 19 119 219 319 - - - - - - 28414 20 120 220 320 120 20 - - 320 20 28415 21 121 221 321 - - 221 21 - - 28416 22 122 222 322 122 22 - - - - 28417 23 123 223 323 - - - - - - 28418 24 124 224 324 124 24 224 24 - - 28419 25 125 225 325 - - - - 325 25 28420 26 126 226 326 126 26 - - - - 28421 27 127 227 327 - - 227 27 - - 28422 28 128 228 328 128 28 - - - - 28423 29 129 229 329 - - - - - - 28424 30 130 230 330 130 30 230 30 330 30 28425 31 131 231 331 - - - - - - 28426 32 132 232 332 132 32 - - - - 28427 33 133 233 333 - - 233 33 - - 28428 34 134 234 334 134 34 - - - - 28429 35 135 235 335 - - - - 335 35 28430 36 136 236 336 136 36 236 36 - - 28431 37 137 237 337 - - - - - - 28432 38 138 238 338 138 38 - - - - 28433 39 139 239 339 - - 239 39 - - 28434 40 140 240 340 140 40 - - 340 40 28435 41 141 241 341 - - - - - - 28436 42 142 242 342 142 42 242 42 - - 28437 43 143 243 343 - - - - - - 28438 44 144 244 344 144 44 - - - - 28439 45 145 245 345 - - 245 45 345 45 28440 46 146 246 346 146 46 - - - - 28441 47 147 247 347 - - - - - - 28442 48 148 248 348 148 48 248 48 - - 28443 49 149 249 349 - - - - - - 28444 50 150 250 350 150 50 - - 350 50 28445 51 151 251 351 - - 251 51 - - 28446 52 152 252 352 152 52 - - - - 28447 53 153 253 353 - - - - - - 28448 54 154 254 354 154 54 254 54 - - 28449 55 155 255 355 - - - - 355 55 28450 56 156 256 356 156 56 - - - - 28451 57 157 257 357 - - 257 57 - - 28452 58 158 258 358 158 58 - - - - 28453 59 159 259 359 - - - - - - 28454 60 160 260 360 160 60 260 60 360 60 28455 61 161 261 361 - - - - - - 28456 62 162 262 362 162 62 - - - - 28457 63 163 263 363 - - 263 63 - - 28458 64 164 264 364 164 64 - - - - 28459 65 165 265 365 - - - - 365 65 28460 66 166 266 366 166 66 266 66 - - 28461 67 167 267 367 - - - - - - 28462 68 168 268 368 168 68 - - - - 28463 69 169 269 369 - - 269 69 - - 28464 70 170 270 370 170 70 - - 370 70 28465 71 171 271 371 - - - - - - 28466 72 172 272 372 172 72 272 72 - - 28467 73 173 273 373 - - - - - - 28468 74 174 274 374 174 74 - - - - 28469 75 175 275 375 - - 275 75 375 75 28470 76 176 276 376 176 76 - - - - 28471 77 177 277 377 - - - - - - 28472 78 178 278 378 178 78 278 78 - - 28473 79 179 279 379 - - - - - - 28474 80 180 280 380 180 80 - - 380 80 28475 81 181 281 381 - - 281 81 - - 28476 82 182 282 382 182 82 - - - - 28477 83 183 283 383 - - - - - - 28478 84 184 284 384 184 84 284 84 - - 28479 85 185 285 385 - - - - 385 85 28480 86 186 286 386 186 86 - - - - 28481 87 187 287 387 - - 287 87 - - 28482 88 188 288 388 188 88 - - - - 28483 89 189 289 389 - - - - - - 28484 90 190 290 390 190 90 290 90 390 90 28485 91 191 291 391 - - - - - - 28486 92 192 292 392 192 92 - - - - 28487 93 193 293 393 - - 293 93 - - 28488 94 194 294 394 194 94 - - - - 28489 95 195 295 395 - - - - 395 95 28490 96 - 296 396 - - - - - - 28491 97 197 - 397 - - - - - - 28492 98 198 298 - - - - - - - 28493 99 - - - - - - - - - 28494 - - - - 100 0 - - - - 28495} 28496do_execsql_test joinD-987 { 28497 SELECT t1.*, t2.*, t3.*, t4.* 28498 FROM t1 FULL JOIN t2 ON t1.b=t2.b 28499 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28500 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 28501 WHERE t2.x>0 28502 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28503} { 28504 2 102 202 302 102 2 - - - - 28505 4 104 204 304 104 4 - - - - 28506 6 106 206 306 106 6 206 6 - - 28507 8 108 208 308 108 8 - - - - 28508 10 110 210 310 110 10 - - 310 10 28509 12 112 212 312 112 12 212 12 - - 28510 14 114 214 314 114 14 - - - - 28511 16 116 216 316 116 16 - - - - 28512 18 118 218 318 118 18 218 18 - - 28513 20 120 220 320 120 20 - - 320 20 28514 22 122 222 322 122 22 - - - - 28515 24 124 224 324 124 24 224 24 - - 28516 26 126 226 326 126 26 - - - - 28517 28 128 228 328 128 28 - - - - 28518 30 130 230 330 130 30 230 30 330 30 28519 32 132 232 332 132 32 - - - - 28520 34 134 234 334 134 34 - - - - 28521 36 136 236 336 136 36 236 36 - - 28522 38 138 238 338 138 38 - - - - 28523 40 140 240 340 140 40 - - 340 40 28524 42 142 242 342 142 42 242 42 - - 28525 44 144 244 344 144 44 - - - - 28526 46 146 246 346 146 46 - - - - 28527 48 148 248 348 148 48 248 48 - - 28528 50 150 250 350 150 50 - - 350 50 28529 52 152 252 352 152 52 - - - - 28530 54 154 254 354 154 54 254 54 - - 28531 56 156 256 356 156 56 - - - - 28532 58 158 258 358 158 58 - - - - 28533 60 160 260 360 160 60 260 60 360 60 28534 62 162 262 362 162 62 - - - - 28535 64 164 264 364 164 64 - - - - 28536 66 166 266 366 166 66 266 66 - - 28537 68 168 268 368 168 68 - - - - 28538 70 170 270 370 170 70 - - 370 70 28539 72 172 272 372 172 72 272 72 - - 28540 74 174 274 374 174 74 - - - - 28541 76 176 276 376 176 76 - - - - 28542 78 178 278 378 178 78 278 78 - - 28543 80 180 280 380 180 80 - - 380 80 28544 82 182 282 382 182 82 - - - - 28545 84 184 284 384 184 84 284 84 - - 28546 86 186 286 386 186 86 - - - - 28547 88 188 288 388 188 88 - - - - 28548 90 190 290 390 190 90 290 90 390 90 28549 92 192 292 392 192 92 - - - - 28550 94 194 294 394 194 94 - - - - 28551} 28552do_execsql_test joinD-988 { 28553 SELECT t1.*, t2.*, t3.*, t4.* 28554 FROM t1 FULL JOIN t2 ON t1.b=t2.b 28555 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28556 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 28557 WHERE (t2.x>0 OR t2.x IS NULL) 28558 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28559} { 28560 1 101 201 301 - - - - - - 28561 2 102 202 302 102 2 - - - - 28562 3 103 203 303 - - 203 3 - - 28563 4 104 204 304 104 4 - - - - 28564 5 105 205 305 - - - - 305 5 28565 6 106 206 306 106 6 206 6 - - 28566 7 107 207 307 - - - - - - 28567 8 108 208 308 108 8 - - - - 28568 9 109 209 309 - - 209 9 - - 28569 10 110 210 310 110 10 - - 310 10 28570 11 111 211 311 - - - - - - 28571 12 112 212 312 112 12 212 12 - - 28572 13 113 213 313 - - - - - - 28573 14 114 214 314 114 14 - - - - 28574 15 115 215 315 - - 215 15 315 15 28575 16 116 216 316 116 16 - - - - 28576 17 117 217 317 - - - - - - 28577 18 118 218 318 118 18 218 18 - - 28578 19 119 219 319 - - - - - - 28579 20 120 220 320 120 20 - - 320 20 28580 21 121 221 321 - - 221 21 - - 28581 22 122 222 322 122 22 - - - - 28582 23 123 223 323 - - - - - - 28583 24 124 224 324 124 24 224 24 - - 28584 25 125 225 325 - - - - 325 25 28585 26 126 226 326 126 26 - - - - 28586 27 127 227 327 - - 227 27 - - 28587 28 128 228 328 128 28 - - - - 28588 29 129 229 329 - - - - - - 28589 30 130 230 330 130 30 230 30 330 30 28590 31 131 231 331 - - - - - - 28591 32 132 232 332 132 32 - - - - 28592 33 133 233 333 - - 233 33 - - 28593 34 134 234 334 134 34 - - - - 28594 35 135 235 335 - - - - 335 35 28595 36 136 236 336 136 36 236 36 - - 28596 37 137 237 337 - - - - - - 28597 38 138 238 338 138 38 - - - - 28598 39 139 239 339 - - 239 39 - - 28599 40 140 240 340 140 40 - - 340 40 28600 41 141 241 341 - - - - - - 28601 42 142 242 342 142 42 242 42 - - 28602 43 143 243 343 - - - - - - 28603 44 144 244 344 144 44 - - - - 28604 45 145 245 345 - - 245 45 345 45 28605 46 146 246 346 146 46 - - - - 28606 47 147 247 347 - - - - - - 28607 48 148 248 348 148 48 248 48 - - 28608 49 149 249 349 - - - - - - 28609 50 150 250 350 150 50 - - 350 50 28610 51 151 251 351 - - 251 51 - - 28611 52 152 252 352 152 52 - - - - 28612 53 153 253 353 - - - - - - 28613 54 154 254 354 154 54 254 54 - - 28614 55 155 255 355 - - - - 355 55 28615 56 156 256 356 156 56 - - - - 28616 57 157 257 357 - - 257 57 - - 28617 58 158 258 358 158 58 - - - - 28618 59 159 259 359 - - - - - - 28619 60 160 260 360 160 60 260 60 360 60 28620 61 161 261 361 - - - - - - 28621 62 162 262 362 162 62 - - - - 28622 63 163 263 363 - - 263 63 - - 28623 64 164 264 364 164 64 - - - - 28624 65 165 265 365 - - - - 365 65 28625 66 166 266 366 166 66 266 66 - - 28626 67 167 267 367 - - - - - - 28627 68 168 268 368 168 68 - - - - 28628 69 169 269 369 - - 269 69 - - 28629 70 170 270 370 170 70 - - 370 70 28630 71 171 271 371 - - - - - - 28631 72 172 272 372 172 72 272 72 - - 28632 73 173 273 373 - - - - - - 28633 74 174 274 374 174 74 - - - - 28634 75 175 275 375 - - 275 75 375 75 28635 76 176 276 376 176 76 - - - - 28636 77 177 277 377 - - - - - - 28637 78 178 278 378 178 78 278 78 - - 28638 79 179 279 379 - - - - - - 28639 80 180 280 380 180 80 - - 380 80 28640 81 181 281 381 - - 281 81 - - 28641 82 182 282 382 182 82 - - - - 28642 83 183 283 383 - - - - - - 28643 84 184 284 384 184 84 284 84 - - 28644 85 185 285 385 - - - - 385 85 28645 86 186 286 386 186 86 - - - - 28646 87 187 287 387 - - 287 87 - - 28647 88 188 288 388 188 88 - - - - 28648 89 189 289 389 - - - - - - 28649 90 190 290 390 190 90 290 90 390 90 28650 91 191 291 391 - - - - - - 28651 92 192 292 392 192 92 - - - - 28652 93 193 293 393 - - 293 93 - - 28653 94 194 294 394 194 94 - - - - 28654 95 195 295 395 - - - - 395 95 28655 96 - 296 396 - - - - - - 28656 97 197 - 397 - - - - - - 28657 98 198 298 - - - - - - - 28658 99 - - - - - - - - - 28659} 28660do_execsql_test joinD-989 { 28661 SELECT t1.*, t2.*, t3.*, t4.* 28662 FROM t1 FULL JOIN t2 ON true 28663 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28664 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 28665 WHERE t1.b=t2.b AND t2.x>0 28666 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28667} { 28668 2 102 202 302 102 2 - - - - 28669 4 104 204 304 104 4 - - - - 28670 6 106 206 306 106 6 206 6 - - 28671 8 108 208 308 108 8 - - - - 28672 10 110 210 310 110 10 - - 310 10 28673 12 112 212 312 112 12 212 12 - - 28674 14 114 214 314 114 14 - - - - 28675 16 116 216 316 116 16 - - - - 28676 18 118 218 318 118 18 218 18 - - 28677 20 120 220 320 120 20 - - 320 20 28678 22 122 222 322 122 22 - - - - 28679 24 124 224 324 124 24 224 24 - - 28680 26 126 226 326 126 26 - - - - 28681 28 128 228 328 128 28 - - - - 28682 30 130 230 330 130 30 230 30 330 30 28683 32 132 232 332 132 32 - - - - 28684 34 134 234 334 134 34 - - - - 28685 36 136 236 336 136 36 236 36 - - 28686 38 138 238 338 138 38 - - - - 28687 40 140 240 340 140 40 - - 340 40 28688 42 142 242 342 142 42 242 42 - - 28689 44 144 244 344 144 44 - - - - 28690 46 146 246 346 146 46 - - - - 28691 48 148 248 348 148 48 248 48 - - 28692 50 150 250 350 150 50 - - 350 50 28693 52 152 252 352 152 52 - - - - 28694 54 154 254 354 154 54 254 54 - - 28695 56 156 256 356 156 56 - - - - 28696 58 158 258 358 158 58 - - - - 28697 60 160 260 360 160 60 260 60 360 60 28698 62 162 262 362 162 62 - - - - 28699 64 164 264 364 164 64 - - - - 28700 66 166 266 366 166 66 266 66 - - 28701 68 168 268 368 168 68 - - - - 28702 70 170 270 370 170 70 - - 370 70 28703 72 172 272 372 172 72 272 72 - - 28704 74 174 274 374 174 74 - - - - 28705 76 176 276 376 176 76 - - - - 28706 78 178 278 378 178 78 278 78 - - 28707 80 180 280 380 180 80 - - 380 80 28708 82 182 282 382 182 82 - - - - 28709 84 184 284 384 184 84 284 84 - - 28710 86 186 286 386 186 86 - - - - 28711 88 188 288 388 188 88 - - - - 28712 90 190 290 390 190 90 290 90 390 90 28713 92 192 292 392 192 92 - - - - 28714 94 194 294 394 194 94 - - - - 28715} 28716do_execsql_test joinD-990 { 28717 SELECT t1.*, t2.*, t3.*, t4.* 28718 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28719 LEFT JOIN t3 ON t1.c=t3.c 28720 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 28721 WHERE t3.y>0 28722 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28723} { 28724 3 103 203 303 - - 203 3 - - 28725 6 106 206 306 106 6 206 6 - - 28726 9 109 209 309 - - 209 9 - - 28727 12 112 212 312 112 12 212 12 - - 28728 15 115 215 315 - - 215 15 315 15 28729 18 118 218 318 118 18 218 18 - - 28730 21 121 221 321 - - 221 21 - - 28731 24 124 224 324 124 24 224 24 - - 28732 27 127 227 327 - - 227 27 - - 28733 30 130 230 330 130 30 230 30 330 30 28734 33 133 233 333 - - 233 33 - - 28735 36 136 236 336 136 36 236 36 - - 28736 39 139 239 339 - - 239 39 - - 28737 42 142 242 342 142 42 242 42 - - 28738 45 145 245 345 - - 245 45 345 45 28739 48 148 248 348 148 48 248 48 - - 28740 51 151 251 351 - - 251 51 - - 28741 54 154 254 354 154 54 254 54 - - 28742 57 157 257 357 - - 257 57 - - 28743 60 160 260 360 160 60 260 60 360 60 28744 63 163 263 363 - - 263 63 - - 28745 66 166 266 366 166 66 266 66 - - 28746 69 169 269 369 - - 269 69 - - 28747 72 172 272 372 172 72 272 72 - - 28748 75 175 275 375 - - 275 75 375 75 28749 78 178 278 378 178 78 278 78 - - 28750 81 181 281 381 - - 281 81 - - 28751 84 184 284 384 184 84 284 84 - - 28752 87 187 287 387 - - 287 87 - - 28753 90 190 290 390 190 90 290 90 390 90 28754 93 193 293 393 - - 293 93 - - 28755} 28756do_execsql_test joinD-991 { 28757 SELECT t1.*, t2.*, t3.*, t4.* 28758 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28759 LEFT JOIN t3 ON t1.c=t3.c 28760 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 28761 WHERE t3.y>0 OR t3.y IS NULL 28762 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28763} { 28764 1 101 201 301 - - - - - - 28765 2 102 202 302 102 2 - - - - 28766 3 103 203 303 - - 203 3 - - 28767 4 104 204 304 104 4 - - - - 28768 5 105 205 305 - - - - 305 5 28769 6 106 206 306 106 6 206 6 - - 28770 7 107 207 307 - - - - - - 28771 8 108 208 308 108 8 - - - - 28772 9 109 209 309 - - 209 9 - - 28773 10 110 210 310 110 10 - - 310 10 28774 11 111 211 311 - - - - - - 28775 12 112 212 312 112 12 212 12 - - 28776 13 113 213 313 - - - - - - 28777 14 114 214 314 114 14 - - - - 28778 15 115 215 315 - - 215 15 315 15 28779 16 116 216 316 116 16 - - - - 28780 17 117 217 317 - - - - - - 28781 18 118 218 318 118 18 218 18 - - 28782 19 119 219 319 - - - - - - 28783 20 120 220 320 120 20 - - 320 20 28784 21 121 221 321 - - 221 21 - - 28785 22 122 222 322 122 22 - - - - 28786 23 123 223 323 - - - - - - 28787 24 124 224 324 124 24 224 24 - - 28788 25 125 225 325 - - - - 325 25 28789 26 126 226 326 126 26 - - - - 28790 27 127 227 327 - - 227 27 - - 28791 28 128 228 328 128 28 - - - - 28792 29 129 229 329 - - - - - - 28793 30 130 230 330 130 30 230 30 330 30 28794 31 131 231 331 - - - - - - 28795 32 132 232 332 132 32 - - - - 28796 33 133 233 333 - - 233 33 - - 28797 34 134 234 334 134 34 - - - - 28798 35 135 235 335 - - - - 335 35 28799 36 136 236 336 136 36 236 36 - - 28800 37 137 237 337 - - - - - - 28801 38 138 238 338 138 38 - - - - 28802 39 139 239 339 - - 239 39 - - 28803 40 140 240 340 140 40 - - 340 40 28804 41 141 241 341 - - - - - - 28805 42 142 242 342 142 42 242 42 - - 28806 43 143 243 343 - - - - - - 28807 44 144 244 344 144 44 - - - - 28808 45 145 245 345 - - 245 45 345 45 28809 46 146 246 346 146 46 - - - - 28810 47 147 247 347 - - - - - - 28811 48 148 248 348 148 48 248 48 - - 28812 49 149 249 349 - - - - - - 28813 50 150 250 350 150 50 - - 350 50 28814 51 151 251 351 - - 251 51 - - 28815 52 152 252 352 152 52 - - - - 28816 53 153 253 353 - - - - - - 28817 54 154 254 354 154 54 254 54 - - 28818 55 155 255 355 - - - - 355 55 28819 56 156 256 356 156 56 - - - - 28820 57 157 257 357 - - 257 57 - - 28821 58 158 258 358 158 58 - - - - 28822 59 159 259 359 - - - - - - 28823 60 160 260 360 160 60 260 60 360 60 28824 61 161 261 361 - - - - - - 28825 62 162 262 362 162 62 - - - - 28826 63 163 263 363 - - 263 63 - - 28827 64 164 264 364 164 64 - - - - 28828 65 165 265 365 - - - - 365 65 28829 66 166 266 366 166 66 266 66 - - 28830 67 167 267 367 - - - - - - 28831 68 168 268 368 168 68 - - - - 28832 69 169 269 369 - - 269 69 - - 28833 70 170 270 370 170 70 - - 370 70 28834 71 171 271 371 - - - - - - 28835 72 172 272 372 172 72 272 72 - - 28836 73 173 273 373 - - - - - - 28837 74 174 274 374 174 74 - - - - 28838 75 175 275 375 - - 275 75 375 75 28839 76 176 276 376 176 76 - - - - 28840 77 177 277 377 - - - - - - 28841 78 178 278 378 178 78 278 78 - - 28842 79 179 279 379 - - - - - - 28843 80 180 280 380 180 80 - - 380 80 28844 81 181 281 381 - - 281 81 - - 28845 82 182 282 382 182 82 - - - - 28846 83 183 283 383 - - - - - - 28847 84 184 284 384 184 84 284 84 - - 28848 85 185 285 385 - - - - 385 85 28849 86 186 286 386 186 86 - - - - 28850 87 187 287 387 - - 287 87 - - 28851 88 188 288 388 188 88 - - - - 28852 89 189 289 389 - - - - - - 28853 90 190 290 390 190 90 290 90 390 90 28854 91 191 291 391 - - - - - - 28855 92 192 292 392 192 92 - - - - 28856 93 193 293 393 - - 293 93 - - 28857 94 194 294 394 194 94 - - - - 28858 95 195 295 395 - - - - 395 95 28859 96 - 296 396 - - - - - - 28860 97 197 - 397 - - - - - - 28861 98 198 298 - - - - - - - 28862 99 - - - - - - - - - 28863 - - - - 100 0 - - - - 28864} 28865do_execsql_test joinD-992 { 28866 SELECT t1.*, t2.*, t3.*, t4.* 28867 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28868 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28869 LEFT JOIN t4 ON t1.d=t4.d 28870 WHERE t4.z>0 28871 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28872} { 28873 5 105 205 305 - - - - 305 5 28874 10 110 210 310 110 10 - - 310 10 28875 15 115 215 315 - - 215 15 315 15 28876 20 120 220 320 120 20 - - 320 20 28877 25 125 225 325 - - - - 325 25 28878 30 130 230 330 130 30 230 30 330 30 28879 35 135 235 335 - - - - 335 35 28880 40 140 240 340 140 40 - - 340 40 28881 45 145 245 345 - - 245 45 345 45 28882 50 150 250 350 150 50 - - 350 50 28883 55 155 255 355 - - - - 355 55 28884 60 160 260 360 160 60 260 60 360 60 28885 65 165 265 365 - - - - 365 65 28886 70 170 270 370 170 70 - - 370 70 28887 75 175 275 375 - - 275 75 375 75 28888 80 180 280 380 180 80 - - 380 80 28889 85 185 285 385 - - - - 385 85 28890 90 190 290 390 190 90 290 90 390 90 28891 95 195 295 395 - - - - 395 95 28892} 28893do_execsql_test joinD-993 { 28894 SELECT t1.*, t2.*, t3.*, t4.* 28895 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28896 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28897 LEFT JOIN t4 ON t1.d=t4.d 28898 WHERE t4.z IS NULL OR t4.z>0 28899 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28900} { 28901 1 101 201 301 - - - - - - 28902 2 102 202 302 102 2 - - - - 28903 3 103 203 303 - - 203 3 - - 28904 4 104 204 304 104 4 - - - - 28905 5 105 205 305 - - - - 305 5 28906 6 106 206 306 106 6 206 6 - - 28907 7 107 207 307 - - - - - - 28908 8 108 208 308 108 8 - - - - 28909 9 109 209 309 - - 209 9 - - 28910 10 110 210 310 110 10 - - 310 10 28911 11 111 211 311 - - - - - - 28912 12 112 212 312 112 12 212 12 - - 28913 13 113 213 313 - - - - - - 28914 14 114 214 314 114 14 - - - - 28915 15 115 215 315 - - 215 15 315 15 28916 16 116 216 316 116 16 - - - - 28917 17 117 217 317 - - - - - - 28918 18 118 218 318 118 18 218 18 - - 28919 19 119 219 319 - - - - - - 28920 20 120 220 320 120 20 - - 320 20 28921 21 121 221 321 - - 221 21 - - 28922 22 122 222 322 122 22 - - - - 28923 23 123 223 323 - - - - - - 28924 24 124 224 324 124 24 224 24 - - 28925 25 125 225 325 - - - - 325 25 28926 26 126 226 326 126 26 - - - - 28927 27 127 227 327 - - 227 27 - - 28928 28 128 228 328 128 28 - - - - 28929 29 129 229 329 - - - - - - 28930 30 130 230 330 130 30 230 30 330 30 28931 31 131 231 331 - - - - - - 28932 32 132 232 332 132 32 - - - - 28933 33 133 233 333 - - 233 33 - - 28934 34 134 234 334 134 34 - - - - 28935 35 135 235 335 - - - - 335 35 28936 36 136 236 336 136 36 236 36 - - 28937 37 137 237 337 - - - - - - 28938 38 138 238 338 138 38 - - - - 28939 39 139 239 339 - - 239 39 - - 28940 40 140 240 340 140 40 - - 340 40 28941 41 141 241 341 - - - - - - 28942 42 142 242 342 142 42 242 42 - - 28943 43 143 243 343 - - - - - - 28944 44 144 244 344 144 44 - - - - 28945 45 145 245 345 - - 245 45 345 45 28946 46 146 246 346 146 46 - - - - 28947 47 147 247 347 - - - - - - 28948 48 148 248 348 148 48 248 48 - - 28949 49 149 249 349 - - - - - - 28950 50 150 250 350 150 50 - - 350 50 28951 51 151 251 351 - - 251 51 - - 28952 52 152 252 352 152 52 - - - - 28953 53 153 253 353 - - - - - - 28954 54 154 254 354 154 54 254 54 - - 28955 55 155 255 355 - - - - 355 55 28956 56 156 256 356 156 56 - - - - 28957 57 157 257 357 - - 257 57 - - 28958 58 158 258 358 158 58 - - - - 28959 59 159 259 359 - - - - - - 28960 60 160 260 360 160 60 260 60 360 60 28961 61 161 261 361 - - - - - - 28962 62 162 262 362 162 62 - - - - 28963 63 163 263 363 - - 263 63 - - 28964 64 164 264 364 164 64 - - - - 28965 65 165 265 365 - - - - 365 65 28966 66 166 266 366 166 66 266 66 - - 28967 67 167 267 367 - - - - - - 28968 68 168 268 368 168 68 - - - - 28969 69 169 269 369 - - 269 69 - - 28970 70 170 270 370 170 70 - - 370 70 28971 71 171 271 371 - - - - - - 28972 72 172 272 372 172 72 272 72 - - 28973 73 173 273 373 - - - - - - 28974 74 174 274 374 174 74 - - - - 28975 75 175 275 375 - - 275 75 375 75 28976 76 176 276 376 176 76 - - - - 28977 77 177 277 377 - - - - - - 28978 78 178 278 378 178 78 278 78 - - 28979 79 179 279 379 - - - - - - 28980 80 180 280 380 180 80 - - 380 80 28981 81 181 281 381 - - 281 81 - - 28982 82 182 282 382 182 82 - - - - 28983 83 183 283 383 - - - - - - 28984 84 184 284 384 184 84 284 84 - - 28985 85 185 285 385 - - - - 385 85 28986 86 186 286 386 186 86 - - - - 28987 87 187 287 387 - - 287 87 - - 28988 88 188 288 388 188 88 - - - - 28989 89 189 289 389 - - - - - - 28990 90 190 290 390 190 90 290 90 390 90 28991 91 191 291 391 - - - - - - 28992 92 192 292 392 192 92 - - - - 28993 93 193 293 393 - - 293 93 - - 28994 94 194 294 394 194 94 - - - - 28995 95 195 295 395 - - - - 395 95 28996 96 - 296 396 - - - - - - 28997 97 197 - 397 - - - - - - 28998 98 198 298 - - - - - - - 28999 99 - - - - - - - - - 29000 - - - - 100 0 - - - - 29001} 29002do_execsql_test joinD-994 { 29003 SELECT t1.*, t2.*, t3.*, t4.* 29004 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29005 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29006 LEFT JOIN t4 ON t1.d=t4.d 29007 WHERE t2.x>0 AND t4.z>0 29008 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29009} { 29010 10 110 210 310 110 10 - - 310 10 29011 20 120 220 320 120 20 - - 320 20 29012 30 130 230 330 130 30 230 30 330 30 29013 40 140 240 340 140 40 - - 340 40 29014 50 150 250 350 150 50 - - 350 50 29015 60 160 260 360 160 60 260 60 360 60 29016 70 170 270 370 170 70 - - 370 70 29017 80 180 280 380 180 80 - - 380 80 29018 90 190 290 390 190 90 290 90 390 90 29019} 29020do_execsql_test joinD-995 { 29021 SELECT t1.*, t2.*, t3.*, t4.* 29022 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29023 LEFT JOIN t3 ON t1.c=t3.c 29024 LEFT JOIN t4 ON t1.d=t4.d 29025 WHERE t4.z>0 AND t3.y>0 29026 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29027} { 29028 15 115 215 315 - - 215 15 315 15 29029 30 130 230 330 130 30 230 30 330 30 29030 45 145 245 345 - - 245 45 345 45 29031 60 160 260 360 160 60 260 60 360 60 29032 75 175 275 375 - - 275 75 375 75 29033 90 190 290 390 190 90 290 90 390 90 29034} 29035do_execsql_test joinD-996 { 29036 SELECT t1.*, t2.*, t3.*, t4.* 29037 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29038 LEFT JOIN t3 ON t1.c=t3.c 29039 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 29040 WHERE t2.x>0 AND t3.y>0 29041 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29042} { 29043 6 106 206 306 106 6 206 6 - - 29044 12 112 212 312 112 12 212 12 - - 29045 18 118 218 318 118 18 218 18 - - 29046 24 124 224 324 124 24 224 24 - - 29047 30 130 230 330 130 30 230 30 330 30 29048 36 136 236 336 136 36 236 36 - - 29049 42 142 242 342 142 42 242 42 - - 29050 48 148 248 348 148 48 248 48 - - 29051 54 154 254 354 154 54 254 54 - - 29052 60 160 260 360 160 60 260 60 360 60 29053 66 166 266 366 166 66 266 66 - - 29054 72 172 272 372 172 72 272 72 - - 29055 78 178 278 378 178 78 278 78 - - 29056 84 184 284 384 184 84 284 84 - - 29057 90 190 290 390 190 90 290 90 390 90 29058} 29059do_execsql_test joinD-997 { 29060 SELECT t1.*, t2.*, t3.*, t4.* 29061 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29062 LEFT JOIN t3 ON t1.c=t3.c 29063 LEFT JOIN t4 ON t1.d=t4.d 29064 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 29065 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29066} { 29067 30 130 230 330 130 30 230 30 330 30 29068 60 160 260 360 160 60 260 60 360 60 29069 90 190 290 390 190 90 290 90 390 90 29070} 29071do_execsql_test joinD-998 { 29072 SELECT t1.*, t2.*, t3.*, t4.* 29073 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 29074 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 29075 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 29076 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29077} { 29078 0 100 200 300 - - - - - - 29079 1 101 201 301 - - - - - - 29080 2 102 202 302 102 2 - - - - 29081 3 103 203 303 - - 203 3 - - 29082 4 104 204 304 104 4 - - - - 29083 5 105 205 305 - - - - 305 5 29084 6 106 206 306 106 6 206 6 - - 29085 7 107 207 307 - - - - - - 29086 8 108 208 308 108 8 - - - - 29087 9 109 209 309 - - 209 9 - - 29088 10 110 210 310 110 10 - - 310 10 29089 11 111 211 311 - - - - - - 29090 12 112 212 312 112 12 212 12 - - 29091 13 113 213 313 - - - - - - 29092 14 114 214 314 114 14 - - - - 29093 15 115 215 315 - - 215 15 315 15 29094 16 116 216 316 116 16 - - - - 29095 17 117 217 317 - - - - - - 29096 18 118 218 318 118 18 218 18 - - 29097 19 119 219 319 - - - - - - 29098 20 120 220 320 120 20 - - 320 20 29099 21 121 221 321 - - 221 21 - - 29100 22 122 222 322 122 22 - - - - 29101 23 123 223 323 - - - - - - 29102 24 124 224 324 124 24 224 24 - - 29103 25 125 225 325 - - - - 325 25 29104 26 126 226 326 126 26 - - - - 29105 27 127 227 327 - - 227 27 - - 29106 28 128 228 328 128 28 - - - - 29107 29 129 229 329 - - - - - - 29108 30 130 230 330 130 30 230 30 330 30 29109 31 131 231 331 - - - - - - 29110 32 132 232 332 132 32 - - - - 29111 33 133 233 333 - - 233 33 - - 29112 34 134 234 334 134 34 - - - - 29113 35 135 235 335 - - - - 335 35 29114 36 136 236 336 136 36 236 36 - - 29115 37 137 237 337 - - - - - - 29116 38 138 238 338 138 38 - - - - 29117 39 139 239 339 - - 239 39 - - 29118 40 140 240 340 140 40 - - 340 40 29119 41 141 241 341 - - - - - - 29120 42 142 242 342 142 42 242 42 - - 29121 43 143 243 343 - - - - - - 29122 44 144 244 344 144 44 - - - - 29123 45 145 245 345 - - 245 45 345 45 29124 46 146 246 346 146 46 - - - - 29125 47 147 247 347 - - - - - - 29126 48 148 248 348 148 48 248 48 - - 29127 49 149 249 349 - - - - - - 29128 50 150 250 350 150 50 - - 350 50 29129 51 151 251 351 - - 251 51 - - 29130 52 152 252 352 152 52 - - - - 29131 53 153 253 353 - - - - - - 29132 54 154 254 354 154 54 254 54 - - 29133 55 155 255 355 - - - - 355 55 29134 56 156 256 356 156 56 - - - - 29135 57 157 257 357 - - 257 57 - - 29136 58 158 258 358 158 58 - - - - 29137 59 159 259 359 - - - - - - 29138 60 160 260 360 160 60 260 60 360 60 29139 61 161 261 361 - - - - - - 29140 62 162 262 362 162 62 - - - - 29141 63 163 263 363 - - 263 63 - - 29142 64 164 264 364 164 64 - - - - 29143 65 165 265 365 - - - - 365 65 29144 66 166 266 366 166 66 266 66 - - 29145 67 167 267 367 - - - - - - 29146 68 168 268 368 168 68 - - - - 29147 69 169 269 369 - - 269 69 - - 29148 70 170 270 370 170 70 - - 370 70 29149 71 171 271 371 - - - - - - 29150 72 172 272 372 172 72 272 72 - - 29151 73 173 273 373 - - - - - - 29152 74 174 274 374 174 74 - - - - 29153 75 175 275 375 - - 275 75 375 75 29154 76 176 276 376 176 76 - - - - 29155 77 177 277 377 - - - - - - 29156 78 178 278 378 178 78 278 78 - - 29157 79 179 279 379 - - - - - - 29158 80 180 280 380 180 80 - - 380 80 29159 81 181 281 381 - - 281 81 - - 29160 82 182 282 382 182 82 - - - - 29161 83 183 283 383 - - - - - - 29162 84 184 284 384 184 84 284 84 - - 29163 85 185 285 385 - - - - 385 85 29164 86 186 286 386 186 86 - - - - 29165 87 187 287 387 - - 287 87 - - 29166 88 188 288 388 188 88 - - - - 29167 89 189 289 389 - - - - - - 29168 90 190 290 390 190 90 290 90 390 90 29169 91 191 291 391 - - - - - - 29170 92 192 292 392 192 92 - - - - 29171 93 193 293 393 - - 293 93 - - 29172 94 194 294 394 194 94 - - - - 29173 95 195 295 395 - - - - 395 95 29174 96 - 296 396 - - - - - - 29175 97 197 - 397 - - - - - - 29176 98 198 298 - - - - - - - 29177 99 - - - - - - - - - 29178 - - - - 100 0 - - - - 29179} 29180do_execsql_test joinD-999 { 29181 SELECT t1.*, t2.*, t3.*, t4.* 29182 FROM t1 FULL JOIN t2 ON t2.x>0 29183 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 29184 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 29185 WHERE t1.b = t2.b 29186 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29187} { 29188 2 102 202 302 102 2 - - - - 29189 4 104 204 304 104 4 - - - - 29190 6 106 206 306 106 6 206 6 - - 29191 8 108 208 308 108 8 - - - - 29192 10 110 210 310 110 10 - - 310 10 29193 12 112 212 312 112 12 212 12 - - 29194 14 114 214 314 114 14 - - - - 29195 16 116 216 316 116 16 - - - - 29196 18 118 218 318 118 18 218 18 - - 29197 20 120 220 320 120 20 - - 320 20 29198 22 122 222 322 122 22 - - - - 29199 24 124 224 324 124 24 224 24 - - 29200 26 126 226 326 126 26 - - - - 29201 28 128 228 328 128 28 - - - - 29202 30 130 230 330 130 30 230 30 330 30 29203 32 132 232 332 132 32 - - - - 29204 34 134 234 334 134 34 - - - - 29205 36 136 236 336 136 36 236 36 - - 29206 38 138 238 338 138 38 - - - - 29207 40 140 240 340 140 40 - - 340 40 29208 42 142 242 342 142 42 242 42 - - 29209 44 144 244 344 144 44 - - - - 29210 46 146 246 346 146 46 - - - - 29211 48 148 248 348 148 48 248 48 - - 29212 50 150 250 350 150 50 - - 350 50 29213 52 152 252 352 152 52 - - - - 29214 54 154 254 354 154 54 254 54 - - 29215 56 156 256 356 156 56 - - - - 29216 58 158 258 358 158 58 - - - - 29217 60 160 260 360 160 60 260 60 360 60 29218 62 162 262 362 162 62 - - - - 29219 64 164 264 364 164 64 - - - - 29220 66 166 266 366 166 66 266 66 - - 29221 68 168 268 368 168 68 - - - - 29222 70 170 270 370 170 70 - - 370 70 29223 72 172 272 372 172 72 272 72 - - 29224 74 174 274 374 174 74 - - - - 29225 76 176 276 376 176 76 - - - - 29226 78 178 278 378 178 78 278 78 - - 29227 80 180 280 380 180 80 - - 380 80 29228 82 182 282 382 182 82 - - - - 29229 84 184 284 384 184 84 284 84 - - 29230 86 186 286 386 186 86 - - - - 29231 88 188 288 388 188 88 - - - - 29232 90 190 290 390 190 90 290 90 390 90 29233 92 192 292 392 192 92 - - - - 29234 94 194 294 394 194 94 - - - - 29235} 29236do_execsql_test joinD-1000 { 29237 SELECT t1.*, t2.*, t3.*, t4.* 29238 FROM t1 FULL JOIN t2 ON t2.x>0 29239 LEFT JOIN t3 ON t3.y>0 29240 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 29241 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 29242 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29243} { 29244 6 106 206 306 106 6 206 6 - - 29245 12 112 212 312 112 12 212 12 - - 29246 18 118 218 318 118 18 218 18 - - 29247 24 124 224 324 124 24 224 24 - - 29248 30 130 230 330 130 30 230 30 330 30 29249 36 136 236 336 136 36 236 36 - - 29250 42 142 242 342 142 42 242 42 - - 29251 48 148 248 348 148 48 248 48 - - 29252 54 154 254 354 154 54 254 54 - - 29253 60 160 260 360 160 60 260 60 360 60 29254 66 166 266 366 166 66 266 66 - - 29255 72 172 272 372 172 72 272 72 - - 29256 78 178 278 378 178 78 278 78 - - 29257 84 184 284 384 184 84 284 84 - - 29258 90 190 290 390 190 90 290 90 390 90 29259} 29260do_execsql_test joinD-1001 { 29261 SELECT t1.*, t2.*, t3.*, t4.* 29262 FROM t1 FULL JOIN t2 ON t2.x>0 29263 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 29264 LEFT JOIN t4 ON t4.z>0 29265 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 29266 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29267} { 29268 10 110 210 310 110 10 - - 310 10 29269 20 120 220 320 120 20 - - 320 20 29270 30 130 230 330 130 30 230 30 330 30 29271 40 140 240 340 140 40 - - 340 40 29272 50 150 250 350 150 50 - - 350 50 29273 60 160 260 360 160 60 260 60 360 60 29274 70 170 270 370 170 70 - - 370 70 29275 80 180 280 380 180 80 - - 380 80 29276 90 190 290 390 190 90 290 90 390 90 29277} 29278do_execsql_test joinD-1002 { 29279 SELECT t1.*, t2.*, t3.*, t4.* 29280 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29281 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 29282 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 29283 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29284} { 29285 0 100 200 300 - - - - - - 29286 1 101 201 301 - - - - - - 29287 2 102 202 302 102 2 - - - - 29288 3 103 203 303 - - 203 3 - - 29289 4 104 204 304 104 4 - - - - 29290 5 105 205 305 - - - - 305 5 29291 6 106 206 306 106 6 206 6 - - 29292 7 107 207 307 - - - - - - 29293 8 108 208 308 108 8 - - - - 29294 9 109 209 309 - - 209 9 - - 29295 10 110 210 310 110 10 - - 310 10 29296 11 111 211 311 - - - - - - 29297 12 112 212 312 112 12 212 12 - - 29298 13 113 213 313 - - - - - - 29299 14 114 214 314 114 14 - - - - 29300 15 115 215 315 - - 215 15 315 15 29301 16 116 216 316 116 16 - - - - 29302 17 117 217 317 - - - - - - 29303 18 118 218 318 118 18 218 18 - - 29304 19 119 219 319 - - - - - - 29305 20 120 220 320 120 20 - - 320 20 29306 21 121 221 321 - - 221 21 - - 29307 22 122 222 322 122 22 - - - - 29308 23 123 223 323 - - - - - - 29309 24 124 224 324 124 24 224 24 - - 29310 25 125 225 325 - - - - 325 25 29311 26 126 226 326 126 26 - - - - 29312 27 127 227 327 - - 227 27 - - 29313 28 128 228 328 128 28 - - - - 29314 29 129 229 329 - - - - - - 29315 30 130 230 330 130 30 230 30 330 30 29316 31 131 231 331 - - - - - - 29317 32 132 232 332 132 32 - - - - 29318 33 133 233 333 - - 233 33 - - 29319 34 134 234 334 134 34 - - - - 29320 35 135 235 335 - - - - 335 35 29321 36 136 236 336 136 36 236 36 - - 29322 37 137 237 337 - - - - - - 29323 38 138 238 338 138 38 - - - - 29324 39 139 239 339 - - 239 39 - - 29325 40 140 240 340 140 40 - - 340 40 29326 41 141 241 341 - - - - - - 29327 42 142 242 342 142 42 242 42 - - 29328 43 143 243 343 - - - - - - 29329 44 144 244 344 144 44 - - - - 29330 45 145 245 345 - - 245 45 345 45 29331 46 146 246 346 146 46 - - - - 29332 47 147 247 347 - - - - - - 29333 48 148 248 348 148 48 248 48 - - 29334 49 149 249 349 - - - - - - 29335 50 150 250 350 150 50 - - 350 50 29336 51 151 251 351 - - 251 51 - - 29337 52 152 252 352 152 52 - - - - 29338 53 153 253 353 - - - - - - 29339 54 154 254 354 154 54 254 54 - - 29340 55 155 255 355 - - - - 355 55 29341 56 156 256 356 156 56 - - - - 29342 57 157 257 357 - - 257 57 - - 29343 58 158 258 358 158 58 - - - - 29344 59 159 259 359 - - - - - - 29345 60 160 260 360 160 60 260 60 360 60 29346 61 161 261 361 - - - - - - 29347 62 162 262 362 162 62 - - - - 29348 63 163 263 363 - - 263 63 - - 29349 64 164 264 364 164 64 - - - - 29350 65 165 265 365 - - - - 365 65 29351 66 166 266 366 166 66 266 66 - - 29352 67 167 267 367 - - - - - - 29353 68 168 268 368 168 68 - - - - 29354 69 169 269 369 - - 269 69 - - 29355 70 170 270 370 170 70 - - 370 70 29356 71 171 271 371 - - - - - - 29357 72 172 272 372 172 72 272 72 - - 29358 73 173 273 373 - - - - - - 29359 74 174 274 374 174 74 - - - - 29360 75 175 275 375 - - 275 75 375 75 29361 76 176 276 376 176 76 - - - - 29362 77 177 277 377 - - - - - - 29363 78 178 278 378 178 78 278 78 - - 29364 79 179 279 379 - - - - - - 29365 80 180 280 380 180 80 - - 380 80 29366 81 181 281 381 - - 281 81 - - 29367 82 182 282 382 182 82 - - - - 29368 83 183 283 383 - - - - - - 29369 84 184 284 384 184 84 284 84 - - 29370 85 185 285 385 - - - - 385 85 29371 86 186 286 386 186 86 - - - - 29372 87 187 287 387 - - 287 87 - - 29373 88 188 288 388 188 88 - - - - 29374 89 189 289 389 - - - - - - 29375 90 190 290 390 190 90 290 90 390 90 29376 91 191 291 391 - - - - - - 29377 92 192 292 392 192 92 - - - - 29378 93 193 293 393 - - 293 93 - - 29379 94 194 294 394 194 94 - - - - 29380 95 195 295 395 - - - - 395 95 29381 96 - 296 396 - - - - - - 29382 97 197 - 397 - - - - - - 29383 98 198 298 - - - - - - - 29384 99 - - - - - - - - - 29385 - - - - 100 0 - - - - 29386} 29387do_execsql_test joinD-1003 { 29388 SELECT t1.*, t2.*, t3.*, t4.* 29389 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29390 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29391 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 29392 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29393} { 29394 5 105 205 305 - - - - 305 5 29395 10 110 210 310 110 10 - - 310 10 29396 15 115 215 315 - - 215 15 315 15 29397 20 120 220 320 120 20 - - 320 20 29398 25 125 225 325 - - - - 325 25 29399 30 130 230 330 130 30 230 30 330 30 29400 35 135 235 335 - - - - 335 35 29401 40 140 240 340 140 40 - - 340 40 29402 45 145 245 345 - - 245 45 345 45 29403 50 150 250 350 150 50 - - 350 50 29404 55 155 255 355 - - - - 355 55 29405 60 160 260 360 160 60 260 60 360 60 29406 65 165 265 365 - - - - 365 65 29407 70 170 270 370 170 70 - - 370 70 29408 75 175 275 375 - - 275 75 375 75 29409 80 180 280 380 180 80 - - 380 80 29410 85 185 285 385 - - - - 385 85 29411 90 190 290 390 190 90 290 90 390 90 29412 95 195 295 395 - - - - 395 95 29413 - - - - - - - - 300 0 29414} 29415do_execsql_test joinD-1004 { 29416 SELECT t1.*, t2.*, t3.*, t4.* 29417 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29418 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29419 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 29420 WHERE t2.x>0 29421 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29422} { 29423 10 110 210 310 110 10 - - 310 10 29424 20 120 220 320 120 20 - - 320 20 29425 30 130 230 330 130 30 230 30 330 30 29426 40 140 240 340 140 40 - - 340 40 29427 50 150 250 350 150 50 - - 350 50 29428 60 160 260 360 160 60 260 60 360 60 29429 70 170 270 370 170 70 - - 370 70 29430 80 180 280 380 180 80 - - 380 80 29431 90 190 290 390 190 90 290 90 390 90 29432} 29433do_execsql_test joinD-1005 { 29434 SELECT t1.*, t2.*, t3.*, t4.* 29435 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29436 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29437 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 29438 WHERE (t2.x>0 OR t2.x IS NULL) 29439 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29440} { 29441 5 105 205 305 - - - - 305 5 29442 10 110 210 310 110 10 - - 310 10 29443 15 115 215 315 - - 215 15 315 15 29444 20 120 220 320 120 20 - - 320 20 29445 25 125 225 325 - - - - 325 25 29446 30 130 230 330 130 30 230 30 330 30 29447 35 135 235 335 - - - - 335 35 29448 40 140 240 340 140 40 - - 340 40 29449 45 145 245 345 - - 245 45 345 45 29450 50 150 250 350 150 50 - - 350 50 29451 55 155 255 355 - - - - 355 55 29452 60 160 260 360 160 60 260 60 360 60 29453 65 165 265 365 - - - - 365 65 29454 70 170 270 370 170 70 - - 370 70 29455 75 175 275 375 - - 275 75 375 75 29456 80 180 280 380 180 80 - - 380 80 29457 85 185 285 385 - - - - 385 85 29458 90 190 290 390 190 90 290 90 390 90 29459 95 195 295 395 - - - - 395 95 29460 - - - - - - - - 300 0 29461} 29462do_execsql_test joinD-1006 { 29463 SELECT t1.*, t2.*, t3.*, t4.* 29464 FROM t1 FULL JOIN t2 ON true 29465 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29466 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 29467 WHERE t1.b=t2.b AND t2.x>0 29468 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29469} { 29470 10 110 210 310 110 10 - - 310 10 29471 20 120 220 320 120 20 - - 320 20 29472 30 130 230 330 130 30 230 30 330 30 29473 40 140 240 340 140 40 - - 340 40 29474 50 150 250 350 150 50 - - 350 50 29475 60 160 260 360 160 60 260 60 360 60 29476 70 170 270 370 170 70 - - 370 70 29477 80 180 280 380 180 80 - - 380 80 29478 90 190 290 390 190 90 290 90 390 90 29479} 29480do_execsql_test joinD-1007 { 29481 SELECT t1.*, t2.*, t3.*, t4.* 29482 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29483 LEFT JOIN t3 ON t1.c=t3.c 29484 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 29485 WHERE t3.y>0 29486 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29487} { 29488 15 115 215 315 - - 215 15 315 15 29489 30 130 230 330 130 30 230 30 330 30 29490 45 145 245 345 - - 245 45 345 45 29491 60 160 260 360 160 60 260 60 360 60 29492 75 175 275 375 - - 275 75 375 75 29493 90 190 290 390 190 90 290 90 390 90 29494} 29495do_execsql_test joinD-1008 { 29496 SELECT t1.*, t2.*, t3.*, t4.* 29497 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29498 LEFT JOIN t3 ON t1.c=t3.c 29499 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 29500 WHERE t3.y>0 OR t3.y IS NULL 29501 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29502} { 29503 5 105 205 305 - - - - 305 5 29504 10 110 210 310 110 10 - - 310 10 29505 15 115 215 315 - - 215 15 315 15 29506 20 120 220 320 120 20 - - 320 20 29507 25 125 225 325 - - - - 325 25 29508 30 130 230 330 130 30 230 30 330 30 29509 35 135 235 335 - - - - 335 35 29510 40 140 240 340 140 40 - - 340 40 29511 45 145 245 345 - - 245 45 345 45 29512 50 150 250 350 150 50 - - 350 50 29513 55 155 255 355 - - - - 355 55 29514 60 160 260 360 160 60 260 60 360 60 29515 65 165 265 365 - - - - 365 65 29516 70 170 270 370 170 70 - - 370 70 29517 75 175 275 375 - - 275 75 375 75 29518 80 180 280 380 180 80 - - 380 80 29519 85 185 285 385 - - - - 385 85 29520 90 190 290 390 190 90 290 90 390 90 29521 95 195 295 395 - - - - 395 95 29522 - - - - - - - - 300 0 29523} 29524do_execsql_test joinD-1009 { 29525 SELECT t1.*, t2.*, t3.*, t4.* 29526 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29527 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29528 RIGHT JOIN t4 ON t1.d=t4.d 29529 WHERE t4.z>0 29530 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29531} { 29532 5 105 205 305 - - - - 305 5 29533 10 110 210 310 110 10 - - 310 10 29534 15 115 215 315 - - 215 15 315 15 29535 20 120 220 320 120 20 - - 320 20 29536 25 125 225 325 - - - - 325 25 29537 30 130 230 330 130 30 230 30 330 30 29538 35 135 235 335 - - - - 335 35 29539 40 140 240 340 140 40 - - 340 40 29540 45 145 245 345 - - 245 45 345 45 29541 50 150 250 350 150 50 - - 350 50 29542 55 155 255 355 - - - - 355 55 29543 60 160 260 360 160 60 260 60 360 60 29544 65 165 265 365 - - - - 365 65 29545 70 170 270 370 170 70 - - 370 70 29546 75 175 275 375 - - 275 75 375 75 29547 80 180 280 380 180 80 - - 380 80 29548 85 185 285 385 - - - - 385 85 29549 90 190 290 390 190 90 290 90 390 90 29550 95 195 295 395 - - - - 395 95 29551} 29552do_execsql_test joinD-1010 { 29553 SELECT t1.*, t2.*, t3.*, t4.* 29554 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29555 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29556 RIGHT JOIN t4 ON t1.d=t4.d 29557 WHERE t4.z IS NULL OR t4.z>0 29558 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29559} { 29560 5 105 205 305 - - - - 305 5 29561 10 110 210 310 110 10 - - 310 10 29562 15 115 215 315 - - 215 15 315 15 29563 20 120 220 320 120 20 - - 320 20 29564 25 125 225 325 - - - - 325 25 29565 30 130 230 330 130 30 230 30 330 30 29566 35 135 235 335 - - - - 335 35 29567 40 140 240 340 140 40 - - 340 40 29568 45 145 245 345 - - 245 45 345 45 29569 50 150 250 350 150 50 - - 350 50 29570 55 155 255 355 - - - - 355 55 29571 60 160 260 360 160 60 260 60 360 60 29572 65 165 265 365 - - - - 365 65 29573 70 170 270 370 170 70 - - 370 70 29574 75 175 275 375 - - 275 75 375 75 29575 80 180 280 380 180 80 - - 380 80 29576 85 185 285 385 - - - - 385 85 29577 90 190 290 390 190 90 290 90 390 90 29578 95 195 295 395 - - - - 395 95 29579} 29580do_execsql_test joinD-1011 { 29581 SELECT t1.*, t2.*, t3.*, t4.* 29582 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29583 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29584 RIGHT JOIN t4 ON t1.d=t4.d 29585 WHERE t2.x>0 AND t4.z>0 29586 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29587} { 29588 10 110 210 310 110 10 - - 310 10 29589 20 120 220 320 120 20 - - 320 20 29590 30 130 230 330 130 30 230 30 330 30 29591 40 140 240 340 140 40 - - 340 40 29592 50 150 250 350 150 50 - - 350 50 29593 60 160 260 360 160 60 260 60 360 60 29594 70 170 270 370 170 70 - - 370 70 29595 80 180 280 380 180 80 - - 380 80 29596 90 190 290 390 190 90 290 90 390 90 29597} 29598do_execsql_test joinD-1012 { 29599 SELECT t1.*, t2.*, t3.*, t4.* 29600 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29601 LEFT JOIN t3 ON t1.c=t3.c 29602 RIGHT JOIN t4 ON t1.d=t4.d 29603 WHERE t4.z>0 AND t3.y>0 29604 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29605} { 29606 15 115 215 315 - - 215 15 315 15 29607 30 130 230 330 130 30 230 30 330 30 29608 45 145 245 345 - - 245 45 345 45 29609 60 160 260 360 160 60 260 60 360 60 29610 75 175 275 375 - - 275 75 375 75 29611 90 190 290 390 190 90 290 90 390 90 29612} 29613do_execsql_test joinD-1013 { 29614 SELECT t1.*, t2.*, t3.*, t4.* 29615 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29616 LEFT JOIN t3 ON t1.c=t3.c 29617 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 29618 WHERE t2.x>0 AND t3.y>0 29619 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29620} { 29621 30 130 230 330 130 30 230 30 330 30 29622 60 160 260 360 160 60 260 60 360 60 29623 90 190 290 390 190 90 290 90 390 90 29624} 29625do_execsql_test joinD-1014 { 29626 SELECT t1.*, t2.*, t3.*, t4.* 29627 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29628 LEFT JOIN t3 ON t1.c=t3.c 29629 RIGHT JOIN t4 ON t1.d=t4.d 29630 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 29631 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29632} { 29633 30 130 230 330 130 30 230 30 330 30 29634 60 160 260 360 160 60 260 60 360 60 29635 90 190 290 390 190 90 290 90 390 90 29636} 29637do_execsql_test joinD-1015 { 29638 SELECT t1.*, t2.*, t3.*, t4.* 29639 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 29640 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 29641 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 29642 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29643} { 29644 5 105 205 305 - - - - 305 5 29645 10 110 210 310 110 10 - - 310 10 29646 15 115 215 315 - - 215 15 315 15 29647 20 120 220 320 120 20 - - 320 20 29648 25 125 225 325 - - - - 325 25 29649 30 130 230 330 130 30 230 30 330 30 29650 35 135 235 335 - - - - 335 35 29651 40 140 240 340 140 40 - - 340 40 29652 45 145 245 345 - - 245 45 345 45 29653 50 150 250 350 150 50 - - 350 50 29654 55 155 255 355 - - - - 355 55 29655 60 160 260 360 160 60 260 60 360 60 29656 65 165 265 365 - - - - 365 65 29657 70 170 270 370 170 70 - - 370 70 29658 75 175 275 375 - - 275 75 375 75 29659 80 180 280 380 180 80 - - 380 80 29660 85 185 285 385 - - - - 385 85 29661 90 190 290 390 190 90 290 90 390 90 29662 95 195 295 395 - - - - 395 95 29663 - - - - - - - - 300 0 29664} 29665do_execsql_test joinD-1016 { 29666 SELECT t1.*, t2.*, t3.*, t4.* 29667 FROM t1 FULL JOIN t2 ON t2.x>0 29668 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 29669 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 29670 WHERE t1.b = t2.b 29671 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29672} { 29673 10 110 210 310 110 10 - - 310 10 29674 20 120 220 320 120 20 - - 320 20 29675 30 130 230 330 130 30 230 30 330 30 29676 40 140 240 340 140 40 - - 340 40 29677 50 150 250 350 150 50 - - 350 50 29678 60 160 260 360 160 60 260 60 360 60 29679 70 170 270 370 170 70 - - 370 70 29680 80 180 280 380 180 80 - - 380 80 29681 90 190 290 390 190 90 290 90 390 90 29682} 29683do_execsql_test joinD-1017 { 29684 SELECT t1.*, t2.*, t3.*, t4.* 29685 FROM t1 FULL JOIN t2 ON t2.x>0 29686 LEFT JOIN t3 ON t3.y>0 29687 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 29688 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 29689 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29690} { 29691 30 130 230 330 130 30 230 30 330 30 29692 60 160 260 360 160 60 260 60 360 60 29693 90 190 290 390 190 90 290 90 390 90 29694} 29695do_execsql_test joinD-1018 { 29696 SELECT t1.*, t2.*, t3.*, t4.* 29697 FROM t1 FULL JOIN t2 ON t2.x>0 29698 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 29699 RIGHT JOIN t4 ON t4.z>0 29700 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 29701 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29702} { 29703 10 110 210 310 110 10 - - 310 10 29704 20 120 220 320 120 20 - - 320 20 29705 30 130 230 330 130 30 230 30 330 30 29706 40 140 240 340 140 40 - - 340 40 29707 50 150 250 350 150 50 - - 350 50 29708 60 160 260 360 160 60 260 60 360 60 29709 70 170 270 370 170 70 - - 370 70 29710 80 180 280 380 180 80 - - 380 80 29711 90 190 290 390 190 90 290 90 390 90 29712} 29713do_execsql_test joinD-1019 { 29714 SELECT t1.*, t2.*, t3.*, t4.* 29715 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29716 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 29717 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 29718 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29719} { 29720 5 105 205 305 - - - - 305 5 29721 10 110 210 310 110 10 - - 310 10 29722 15 115 215 315 - - 215 15 315 15 29723 20 120 220 320 120 20 - - 320 20 29724 25 125 225 325 - - - - 325 25 29725 30 130 230 330 130 30 230 30 330 30 29726 35 135 235 335 - - - - 335 35 29727 40 140 240 340 140 40 - - 340 40 29728 45 145 245 345 - - 245 45 345 45 29729 50 150 250 350 150 50 - - 350 50 29730 55 155 255 355 - - - - 355 55 29731 60 160 260 360 160 60 260 60 360 60 29732 65 165 265 365 - - - - 365 65 29733 70 170 270 370 170 70 - - 370 70 29734 75 175 275 375 - - 275 75 375 75 29735 80 180 280 380 180 80 - - 380 80 29736 85 185 285 385 - - - - 385 85 29737 90 190 290 390 190 90 290 90 390 90 29738 95 195 295 395 - - - - 395 95 29739 - - - - - - - - 300 0 29740} 29741do_execsql_test joinD-1020 { 29742 SELECT t1.*, t2.*, t3.*, t4.* 29743 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29744 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29745 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 29746 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29747} { 29748 0 100 200 300 - - - - - - 29749 1 101 201 301 - - - - - - 29750 2 102 202 302 102 2 - - - - 29751 3 103 203 303 - - 203 3 - - 29752 4 104 204 304 104 4 - - - - 29753 5 105 205 305 - - - - 305 5 29754 6 106 206 306 106 6 206 6 - - 29755 7 107 207 307 - - - - - - 29756 8 108 208 308 108 8 - - - - 29757 9 109 209 309 - - 209 9 - - 29758 10 110 210 310 110 10 - - 310 10 29759 11 111 211 311 - - - - - - 29760 12 112 212 312 112 12 212 12 - - 29761 13 113 213 313 - - - - - - 29762 14 114 214 314 114 14 - - - - 29763 15 115 215 315 - - 215 15 315 15 29764 16 116 216 316 116 16 - - - - 29765 17 117 217 317 - - - - - - 29766 18 118 218 318 118 18 218 18 - - 29767 19 119 219 319 - - - - - - 29768 20 120 220 320 120 20 - - 320 20 29769 21 121 221 321 - - 221 21 - - 29770 22 122 222 322 122 22 - - - - 29771 23 123 223 323 - - - - - - 29772 24 124 224 324 124 24 224 24 - - 29773 25 125 225 325 - - - - 325 25 29774 26 126 226 326 126 26 - - - - 29775 27 127 227 327 - - 227 27 - - 29776 28 128 228 328 128 28 - - - - 29777 29 129 229 329 - - - - - - 29778 30 130 230 330 130 30 230 30 330 30 29779 31 131 231 331 - - - - - - 29780 32 132 232 332 132 32 - - - - 29781 33 133 233 333 - - 233 33 - - 29782 34 134 234 334 134 34 - - - - 29783 35 135 235 335 - - - - 335 35 29784 36 136 236 336 136 36 236 36 - - 29785 37 137 237 337 - - - - - - 29786 38 138 238 338 138 38 - - - - 29787 39 139 239 339 - - 239 39 - - 29788 40 140 240 340 140 40 - - 340 40 29789 41 141 241 341 - - - - - - 29790 42 142 242 342 142 42 242 42 - - 29791 43 143 243 343 - - - - - - 29792 44 144 244 344 144 44 - - - - 29793 45 145 245 345 - - 245 45 345 45 29794 46 146 246 346 146 46 - - - - 29795 47 147 247 347 - - - - - - 29796 48 148 248 348 148 48 248 48 - - 29797 49 149 249 349 - - - - - - 29798 50 150 250 350 150 50 - - 350 50 29799 51 151 251 351 - - 251 51 - - 29800 52 152 252 352 152 52 - - - - 29801 53 153 253 353 - - - - - - 29802 54 154 254 354 154 54 254 54 - - 29803 55 155 255 355 - - - - 355 55 29804 56 156 256 356 156 56 - - - - 29805 57 157 257 357 - - 257 57 - - 29806 58 158 258 358 158 58 - - - - 29807 59 159 259 359 - - - - - - 29808 60 160 260 360 160 60 260 60 360 60 29809 61 161 261 361 - - - - - - 29810 62 162 262 362 162 62 - - - - 29811 63 163 263 363 - - 263 63 - - 29812 64 164 264 364 164 64 - - - - 29813 65 165 265 365 - - - - 365 65 29814 66 166 266 366 166 66 266 66 - - 29815 67 167 267 367 - - - - - - 29816 68 168 268 368 168 68 - - - - 29817 69 169 269 369 - - 269 69 - - 29818 70 170 270 370 170 70 - - 370 70 29819 71 171 271 371 - - - - - - 29820 72 172 272 372 172 72 272 72 - - 29821 73 173 273 373 - - - - - - 29822 74 174 274 374 174 74 - - - - 29823 75 175 275 375 - - 275 75 375 75 29824 76 176 276 376 176 76 - - - - 29825 77 177 277 377 - - - - - - 29826 78 178 278 378 178 78 278 78 - - 29827 79 179 279 379 - - - - - - 29828 80 180 280 380 180 80 - - 380 80 29829 81 181 281 381 - - 281 81 - - 29830 82 182 282 382 182 82 - - - - 29831 83 183 283 383 - - - - - - 29832 84 184 284 384 184 84 284 84 - - 29833 85 185 285 385 - - - - 385 85 29834 86 186 286 386 186 86 - - - - 29835 87 187 287 387 - - 287 87 - - 29836 88 188 288 388 188 88 - - - - 29837 89 189 289 389 - - - - - - 29838 90 190 290 390 190 90 290 90 390 90 29839 91 191 291 391 - - - - - - 29840 92 192 292 392 192 92 - - - - 29841 93 193 293 393 - - 293 93 - - 29842 94 194 294 394 194 94 - - - - 29843 95 195 295 395 - - - - 395 95 29844 96 - 296 396 - - - - - - 29845 97 197 - 397 - - - - - - 29846 98 198 298 - - - - - - - 29847 99 - - - - - - - - - 29848 - - - - 100 0 - - - - 29849 - - - - - - - - 300 0 29850} 29851do_execsql_test joinD-1021 { 29852 SELECT t1.*, t2.*, t3.*, t4.* 29853 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29854 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29855 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 29856 WHERE t2.x>0 29857 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29858} { 29859 2 102 202 302 102 2 - - - - 29860 4 104 204 304 104 4 - - - - 29861 6 106 206 306 106 6 206 6 - - 29862 8 108 208 308 108 8 - - - - 29863 10 110 210 310 110 10 - - 310 10 29864 12 112 212 312 112 12 212 12 - - 29865 14 114 214 314 114 14 - - - - 29866 16 116 216 316 116 16 - - - - 29867 18 118 218 318 118 18 218 18 - - 29868 20 120 220 320 120 20 - - 320 20 29869 22 122 222 322 122 22 - - - - 29870 24 124 224 324 124 24 224 24 - - 29871 26 126 226 326 126 26 - - - - 29872 28 128 228 328 128 28 - - - - 29873 30 130 230 330 130 30 230 30 330 30 29874 32 132 232 332 132 32 - - - - 29875 34 134 234 334 134 34 - - - - 29876 36 136 236 336 136 36 236 36 - - 29877 38 138 238 338 138 38 - - - - 29878 40 140 240 340 140 40 - - 340 40 29879 42 142 242 342 142 42 242 42 - - 29880 44 144 244 344 144 44 - - - - 29881 46 146 246 346 146 46 - - - - 29882 48 148 248 348 148 48 248 48 - - 29883 50 150 250 350 150 50 - - 350 50 29884 52 152 252 352 152 52 - - - - 29885 54 154 254 354 154 54 254 54 - - 29886 56 156 256 356 156 56 - - - - 29887 58 158 258 358 158 58 - - - - 29888 60 160 260 360 160 60 260 60 360 60 29889 62 162 262 362 162 62 - - - - 29890 64 164 264 364 164 64 - - - - 29891 66 166 266 366 166 66 266 66 - - 29892 68 168 268 368 168 68 - - - - 29893 70 170 270 370 170 70 - - 370 70 29894 72 172 272 372 172 72 272 72 - - 29895 74 174 274 374 174 74 - - - - 29896 76 176 276 376 176 76 - - - - 29897 78 178 278 378 178 78 278 78 - - 29898 80 180 280 380 180 80 - - 380 80 29899 82 182 282 382 182 82 - - - - 29900 84 184 284 384 184 84 284 84 - - 29901 86 186 286 386 186 86 - - - - 29902 88 188 288 388 188 88 - - - - 29903 90 190 290 390 190 90 290 90 390 90 29904 92 192 292 392 192 92 - - - - 29905 94 194 294 394 194 94 - - - - 29906} 29907do_execsql_test joinD-1022 { 29908 SELECT t1.*, t2.*, t3.*, t4.* 29909 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29910 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29911 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 29912 WHERE (t2.x>0 OR t2.x IS NULL) 29913 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29914} { 29915 1 101 201 301 - - - - - - 29916 2 102 202 302 102 2 - - - - 29917 3 103 203 303 - - 203 3 - - 29918 4 104 204 304 104 4 - - - - 29919 5 105 205 305 - - - - 305 5 29920 6 106 206 306 106 6 206 6 - - 29921 7 107 207 307 - - - - - - 29922 8 108 208 308 108 8 - - - - 29923 9 109 209 309 - - 209 9 - - 29924 10 110 210 310 110 10 - - 310 10 29925 11 111 211 311 - - - - - - 29926 12 112 212 312 112 12 212 12 - - 29927 13 113 213 313 - - - - - - 29928 14 114 214 314 114 14 - - - - 29929 15 115 215 315 - - 215 15 315 15 29930 16 116 216 316 116 16 - - - - 29931 17 117 217 317 - - - - - - 29932 18 118 218 318 118 18 218 18 - - 29933 19 119 219 319 - - - - - - 29934 20 120 220 320 120 20 - - 320 20 29935 21 121 221 321 - - 221 21 - - 29936 22 122 222 322 122 22 - - - - 29937 23 123 223 323 - - - - - - 29938 24 124 224 324 124 24 224 24 - - 29939 25 125 225 325 - - - - 325 25 29940 26 126 226 326 126 26 - - - - 29941 27 127 227 327 - - 227 27 - - 29942 28 128 228 328 128 28 - - - - 29943 29 129 229 329 - - - - - - 29944 30 130 230 330 130 30 230 30 330 30 29945 31 131 231 331 - - - - - - 29946 32 132 232 332 132 32 - - - - 29947 33 133 233 333 - - 233 33 - - 29948 34 134 234 334 134 34 - - - - 29949 35 135 235 335 - - - - 335 35 29950 36 136 236 336 136 36 236 36 - - 29951 37 137 237 337 - - - - - - 29952 38 138 238 338 138 38 - - - - 29953 39 139 239 339 - - 239 39 - - 29954 40 140 240 340 140 40 - - 340 40 29955 41 141 241 341 - - - - - - 29956 42 142 242 342 142 42 242 42 - - 29957 43 143 243 343 - - - - - - 29958 44 144 244 344 144 44 - - - - 29959 45 145 245 345 - - 245 45 345 45 29960 46 146 246 346 146 46 - - - - 29961 47 147 247 347 - - - - - - 29962 48 148 248 348 148 48 248 48 - - 29963 49 149 249 349 - - - - - - 29964 50 150 250 350 150 50 - - 350 50 29965 51 151 251 351 - - 251 51 - - 29966 52 152 252 352 152 52 - - - - 29967 53 153 253 353 - - - - - - 29968 54 154 254 354 154 54 254 54 - - 29969 55 155 255 355 - - - - 355 55 29970 56 156 256 356 156 56 - - - - 29971 57 157 257 357 - - 257 57 - - 29972 58 158 258 358 158 58 - - - - 29973 59 159 259 359 - - - - - - 29974 60 160 260 360 160 60 260 60 360 60 29975 61 161 261 361 - - - - - - 29976 62 162 262 362 162 62 - - - - 29977 63 163 263 363 - - 263 63 - - 29978 64 164 264 364 164 64 - - - - 29979 65 165 265 365 - - - - 365 65 29980 66 166 266 366 166 66 266 66 - - 29981 67 167 267 367 - - - - - - 29982 68 168 268 368 168 68 - - - - 29983 69 169 269 369 - - 269 69 - - 29984 70 170 270 370 170 70 - - 370 70 29985 71 171 271 371 - - - - - - 29986 72 172 272 372 172 72 272 72 - - 29987 73 173 273 373 - - - - - - 29988 74 174 274 374 174 74 - - - - 29989 75 175 275 375 - - 275 75 375 75 29990 76 176 276 376 176 76 - - - - 29991 77 177 277 377 - - - - - - 29992 78 178 278 378 178 78 278 78 - - 29993 79 179 279 379 - - - - - - 29994 80 180 280 380 180 80 - - 380 80 29995 81 181 281 381 - - 281 81 - - 29996 82 182 282 382 182 82 - - - - 29997 83 183 283 383 - - - - - - 29998 84 184 284 384 184 84 284 84 - - 29999 85 185 285 385 - - - - 385 85 30000 86 186 286 386 186 86 - - - - 30001 87 187 287 387 - - 287 87 - - 30002 88 188 288 388 188 88 - - - - 30003 89 189 289 389 - - - - - - 30004 90 190 290 390 190 90 290 90 390 90 30005 91 191 291 391 - - - - - - 30006 92 192 292 392 192 92 - - - - 30007 93 193 293 393 - - 293 93 - - 30008 94 194 294 394 194 94 - - - - 30009 95 195 295 395 - - - - 395 95 30010 96 - 296 396 - - - - - - 30011 97 197 - 397 - - - - - - 30012 98 198 298 - - - - - - - 30013 99 - - - - - - - - - 30014 - - - - - - - - 300 0 30015} 30016do_execsql_test joinD-1023 { 30017 SELECT t1.*, t2.*, t3.*, t4.* 30018 FROM t1 FULL JOIN t2 ON true 30019 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 30020 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 30021 WHERE t1.b=t2.b AND t2.x>0 30022 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30023} { 30024 2 102 202 302 102 2 - - - - 30025 4 104 204 304 104 4 - - - - 30026 6 106 206 306 106 6 206 6 - - 30027 8 108 208 308 108 8 - - - - 30028 10 110 210 310 110 10 - - 310 10 30029 12 112 212 312 112 12 212 12 - - 30030 14 114 214 314 114 14 - - - - 30031 16 116 216 316 116 16 - - - - 30032 18 118 218 318 118 18 218 18 - - 30033 20 120 220 320 120 20 - - 320 20 30034 22 122 222 322 122 22 - - - - 30035 24 124 224 324 124 24 224 24 - - 30036 26 126 226 326 126 26 - - - - 30037 28 128 228 328 128 28 - - - - 30038 30 130 230 330 130 30 230 30 330 30 30039 32 132 232 332 132 32 - - - - 30040 34 134 234 334 134 34 - - - - 30041 36 136 236 336 136 36 236 36 - - 30042 38 138 238 338 138 38 - - - - 30043 40 140 240 340 140 40 - - 340 40 30044 42 142 242 342 142 42 242 42 - - 30045 44 144 244 344 144 44 - - - - 30046 46 146 246 346 146 46 - - - - 30047 48 148 248 348 148 48 248 48 - - 30048 50 150 250 350 150 50 - - 350 50 30049 52 152 252 352 152 52 - - - - 30050 54 154 254 354 154 54 254 54 - - 30051 56 156 256 356 156 56 - - - - 30052 58 158 258 358 158 58 - - - - 30053 60 160 260 360 160 60 260 60 360 60 30054 62 162 262 362 162 62 - - - - 30055 64 164 264 364 164 64 - - - - 30056 66 166 266 366 166 66 266 66 - - 30057 68 168 268 368 168 68 - - - - 30058 70 170 270 370 170 70 - - 370 70 30059 72 172 272 372 172 72 272 72 - - 30060 74 174 274 374 174 74 - - - - 30061 76 176 276 376 176 76 - - - - 30062 78 178 278 378 178 78 278 78 - - 30063 80 180 280 380 180 80 - - 380 80 30064 82 182 282 382 182 82 - - - - 30065 84 184 284 384 184 84 284 84 - - 30066 86 186 286 386 186 86 - - - - 30067 88 188 288 388 188 88 - - - - 30068 90 190 290 390 190 90 290 90 390 90 30069 92 192 292 392 192 92 - - - - 30070 94 194 294 394 194 94 - - - - 30071} 30072do_execsql_test joinD-1024 { 30073 SELECT t1.*, t2.*, t3.*, t4.* 30074 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30075 LEFT JOIN t3 ON t1.c=t3.c 30076 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 30077 WHERE t3.y>0 30078 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30079} { 30080 3 103 203 303 - - 203 3 - - 30081 6 106 206 306 106 6 206 6 - - 30082 9 109 209 309 - - 209 9 - - 30083 12 112 212 312 112 12 212 12 - - 30084 15 115 215 315 - - 215 15 315 15 30085 18 118 218 318 118 18 218 18 - - 30086 21 121 221 321 - - 221 21 - - 30087 24 124 224 324 124 24 224 24 - - 30088 27 127 227 327 - - 227 27 - - 30089 30 130 230 330 130 30 230 30 330 30 30090 33 133 233 333 - - 233 33 - - 30091 36 136 236 336 136 36 236 36 - - 30092 39 139 239 339 - - 239 39 - - 30093 42 142 242 342 142 42 242 42 - - 30094 45 145 245 345 - - 245 45 345 45 30095 48 148 248 348 148 48 248 48 - - 30096 51 151 251 351 - - 251 51 - - 30097 54 154 254 354 154 54 254 54 - - 30098 57 157 257 357 - - 257 57 - - 30099 60 160 260 360 160 60 260 60 360 60 30100 63 163 263 363 - - 263 63 - - 30101 66 166 266 366 166 66 266 66 - - 30102 69 169 269 369 - - 269 69 - - 30103 72 172 272 372 172 72 272 72 - - 30104 75 175 275 375 - - 275 75 375 75 30105 78 178 278 378 178 78 278 78 - - 30106 81 181 281 381 - - 281 81 - - 30107 84 184 284 384 184 84 284 84 - - 30108 87 187 287 387 - - 287 87 - - 30109 90 190 290 390 190 90 290 90 390 90 30110 93 193 293 393 - - 293 93 - - 30111} 30112do_execsql_test joinD-1025 { 30113 SELECT t1.*, t2.*, t3.*, t4.* 30114 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30115 LEFT JOIN t3 ON t1.c=t3.c 30116 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 30117 WHERE t3.y>0 OR t3.y IS NULL 30118 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30119} { 30120 1 101 201 301 - - - - - - 30121 2 102 202 302 102 2 - - - - 30122 3 103 203 303 - - 203 3 - - 30123 4 104 204 304 104 4 - - - - 30124 5 105 205 305 - - - - 305 5 30125 6 106 206 306 106 6 206 6 - - 30126 7 107 207 307 - - - - - - 30127 8 108 208 308 108 8 - - - - 30128 9 109 209 309 - - 209 9 - - 30129 10 110 210 310 110 10 - - 310 10 30130 11 111 211 311 - - - - - - 30131 12 112 212 312 112 12 212 12 - - 30132 13 113 213 313 - - - - - - 30133 14 114 214 314 114 14 - - - - 30134 15 115 215 315 - - 215 15 315 15 30135 16 116 216 316 116 16 - - - - 30136 17 117 217 317 - - - - - - 30137 18 118 218 318 118 18 218 18 - - 30138 19 119 219 319 - - - - - - 30139 20 120 220 320 120 20 - - 320 20 30140 21 121 221 321 - - 221 21 - - 30141 22 122 222 322 122 22 - - - - 30142 23 123 223 323 - - - - - - 30143 24 124 224 324 124 24 224 24 - - 30144 25 125 225 325 - - - - 325 25 30145 26 126 226 326 126 26 - - - - 30146 27 127 227 327 - - 227 27 - - 30147 28 128 228 328 128 28 - - - - 30148 29 129 229 329 - - - - - - 30149 30 130 230 330 130 30 230 30 330 30 30150 31 131 231 331 - - - - - - 30151 32 132 232 332 132 32 - - - - 30152 33 133 233 333 - - 233 33 - - 30153 34 134 234 334 134 34 - - - - 30154 35 135 235 335 - - - - 335 35 30155 36 136 236 336 136 36 236 36 - - 30156 37 137 237 337 - - - - - - 30157 38 138 238 338 138 38 - - - - 30158 39 139 239 339 - - 239 39 - - 30159 40 140 240 340 140 40 - - 340 40 30160 41 141 241 341 - - - - - - 30161 42 142 242 342 142 42 242 42 - - 30162 43 143 243 343 - - - - - - 30163 44 144 244 344 144 44 - - - - 30164 45 145 245 345 - - 245 45 345 45 30165 46 146 246 346 146 46 - - - - 30166 47 147 247 347 - - - - - - 30167 48 148 248 348 148 48 248 48 - - 30168 49 149 249 349 - - - - - - 30169 50 150 250 350 150 50 - - 350 50 30170 51 151 251 351 - - 251 51 - - 30171 52 152 252 352 152 52 - - - - 30172 53 153 253 353 - - - - - - 30173 54 154 254 354 154 54 254 54 - - 30174 55 155 255 355 - - - - 355 55 30175 56 156 256 356 156 56 - - - - 30176 57 157 257 357 - - 257 57 - - 30177 58 158 258 358 158 58 - - - - 30178 59 159 259 359 - - - - - - 30179 60 160 260 360 160 60 260 60 360 60 30180 61 161 261 361 - - - - - - 30181 62 162 262 362 162 62 - - - - 30182 63 163 263 363 - - 263 63 - - 30183 64 164 264 364 164 64 - - - - 30184 65 165 265 365 - - - - 365 65 30185 66 166 266 366 166 66 266 66 - - 30186 67 167 267 367 - - - - - - 30187 68 168 268 368 168 68 - - - - 30188 69 169 269 369 - - 269 69 - - 30189 70 170 270 370 170 70 - - 370 70 30190 71 171 271 371 - - - - - - 30191 72 172 272 372 172 72 272 72 - - 30192 73 173 273 373 - - - - - - 30193 74 174 274 374 174 74 - - - - 30194 75 175 275 375 - - 275 75 375 75 30195 76 176 276 376 176 76 - - - - 30196 77 177 277 377 - - - - - - 30197 78 178 278 378 178 78 278 78 - - 30198 79 179 279 379 - - - - - - 30199 80 180 280 380 180 80 - - 380 80 30200 81 181 281 381 - - 281 81 - - 30201 82 182 282 382 182 82 - - - - 30202 83 183 283 383 - - - - - - 30203 84 184 284 384 184 84 284 84 - - 30204 85 185 285 385 - - - - 385 85 30205 86 186 286 386 186 86 - - - - 30206 87 187 287 387 - - 287 87 - - 30207 88 188 288 388 188 88 - - - - 30208 89 189 289 389 - - - - - - 30209 90 190 290 390 190 90 290 90 390 90 30210 91 191 291 391 - - - - - - 30211 92 192 292 392 192 92 - - - - 30212 93 193 293 393 - - 293 93 - - 30213 94 194 294 394 194 94 - - - - 30214 95 195 295 395 - - - - 395 95 30215 96 - 296 396 - - - - - - 30216 97 197 - 397 - - - - - - 30217 98 198 298 - - - - - - - 30218 99 - - - - - - - - - 30219 - - - - 100 0 - - - - 30220 - - - - - - - - 300 0 30221} 30222do_execsql_test joinD-1026 { 30223 SELECT t1.*, t2.*, t3.*, t4.* 30224 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30225 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 30226 FULL JOIN t4 ON t1.d=t4.d 30227 WHERE t4.z>0 30228 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30229} { 30230 5 105 205 305 - - - - 305 5 30231 10 110 210 310 110 10 - - 310 10 30232 15 115 215 315 - - 215 15 315 15 30233 20 120 220 320 120 20 - - 320 20 30234 25 125 225 325 - - - - 325 25 30235 30 130 230 330 130 30 230 30 330 30 30236 35 135 235 335 - - - - 335 35 30237 40 140 240 340 140 40 - - 340 40 30238 45 145 245 345 - - 245 45 345 45 30239 50 150 250 350 150 50 - - 350 50 30240 55 155 255 355 - - - - 355 55 30241 60 160 260 360 160 60 260 60 360 60 30242 65 165 265 365 - - - - 365 65 30243 70 170 270 370 170 70 - - 370 70 30244 75 175 275 375 - - 275 75 375 75 30245 80 180 280 380 180 80 - - 380 80 30246 85 185 285 385 - - - - 385 85 30247 90 190 290 390 190 90 290 90 390 90 30248 95 195 295 395 - - - - 395 95 30249} 30250do_execsql_test joinD-1027 { 30251 SELECT t1.*, t2.*, t3.*, t4.* 30252 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30253 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 30254 FULL JOIN t4 ON t1.d=t4.d 30255 WHERE t4.z IS NULL OR t4.z>0 30256 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30257} { 30258 1 101 201 301 - - - - - - 30259 2 102 202 302 102 2 - - - - 30260 3 103 203 303 - - 203 3 - - 30261 4 104 204 304 104 4 - - - - 30262 5 105 205 305 - - - - 305 5 30263 6 106 206 306 106 6 206 6 - - 30264 7 107 207 307 - - - - - - 30265 8 108 208 308 108 8 - - - - 30266 9 109 209 309 - - 209 9 - - 30267 10 110 210 310 110 10 - - 310 10 30268 11 111 211 311 - - - - - - 30269 12 112 212 312 112 12 212 12 - - 30270 13 113 213 313 - - - - - - 30271 14 114 214 314 114 14 - - - - 30272 15 115 215 315 - - 215 15 315 15 30273 16 116 216 316 116 16 - - - - 30274 17 117 217 317 - - - - - - 30275 18 118 218 318 118 18 218 18 - - 30276 19 119 219 319 - - - - - - 30277 20 120 220 320 120 20 - - 320 20 30278 21 121 221 321 - - 221 21 - - 30279 22 122 222 322 122 22 - - - - 30280 23 123 223 323 - - - - - - 30281 24 124 224 324 124 24 224 24 - - 30282 25 125 225 325 - - - - 325 25 30283 26 126 226 326 126 26 - - - - 30284 27 127 227 327 - - 227 27 - - 30285 28 128 228 328 128 28 - - - - 30286 29 129 229 329 - - - - - - 30287 30 130 230 330 130 30 230 30 330 30 30288 31 131 231 331 - - - - - - 30289 32 132 232 332 132 32 - - - - 30290 33 133 233 333 - - 233 33 - - 30291 34 134 234 334 134 34 - - - - 30292 35 135 235 335 - - - - 335 35 30293 36 136 236 336 136 36 236 36 - - 30294 37 137 237 337 - - - - - - 30295 38 138 238 338 138 38 - - - - 30296 39 139 239 339 - - 239 39 - - 30297 40 140 240 340 140 40 - - 340 40 30298 41 141 241 341 - - - - - - 30299 42 142 242 342 142 42 242 42 - - 30300 43 143 243 343 - - - - - - 30301 44 144 244 344 144 44 - - - - 30302 45 145 245 345 - - 245 45 345 45 30303 46 146 246 346 146 46 - - - - 30304 47 147 247 347 - - - - - - 30305 48 148 248 348 148 48 248 48 - - 30306 49 149 249 349 - - - - - - 30307 50 150 250 350 150 50 - - 350 50 30308 51 151 251 351 - - 251 51 - - 30309 52 152 252 352 152 52 - - - - 30310 53 153 253 353 - - - - - - 30311 54 154 254 354 154 54 254 54 - - 30312 55 155 255 355 - - - - 355 55 30313 56 156 256 356 156 56 - - - - 30314 57 157 257 357 - - 257 57 - - 30315 58 158 258 358 158 58 - - - - 30316 59 159 259 359 - - - - - - 30317 60 160 260 360 160 60 260 60 360 60 30318 61 161 261 361 - - - - - - 30319 62 162 262 362 162 62 - - - - 30320 63 163 263 363 - - 263 63 - - 30321 64 164 264 364 164 64 - - - - 30322 65 165 265 365 - - - - 365 65 30323 66 166 266 366 166 66 266 66 - - 30324 67 167 267 367 - - - - - - 30325 68 168 268 368 168 68 - - - - 30326 69 169 269 369 - - 269 69 - - 30327 70 170 270 370 170 70 - - 370 70 30328 71 171 271 371 - - - - - - 30329 72 172 272 372 172 72 272 72 - - 30330 73 173 273 373 - - - - - - 30331 74 174 274 374 174 74 - - - - 30332 75 175 275 375 - - 275 75 375 75 30333 76 176 276 376 176 76 - - - - 30334 77 177 277 377 - - - - - - 30335 78 178 278 378 178 78 278 78 - - 30336 79 179 279 379 - - - - - - 30337 80 180 280 380 180 80 - - 380 80 30338 81 181 281 381 - - 281 81 - - 30339 82 182 282 382 182 82 - - - - 30340 83 183 283 383 - - - - - - 30341 84 184 284 384 184 84 284 84 - - 30342 85 185 285 385 - - - - 385 85 30343 86 186 286 386 186 86 - - - - 30344 87 187 287 387 - - 287 87 - - 30345 88 188 288 388 188 88 - - - - 30346 89 189 289 389 - - - - - - 30347 90 190 290 390 190 90 290 90 390 90 30348 91 191 291 391 - - - - - - 30349 92 192 292 392 192 92 - - - - 30350 93 193 293 393 - - 293 93 - - 30351 94 194 294 394 194 94 - - - - 30352 95 195 295 395 - - - - 395 95 30353 96 - 296 396 - - - - - - 30354 97 197 - 397 - - - - - - 30355 98 198 298 - - - - - - - 30356 99 - - - - - - - - - 30357 - - - - 100 0 - - - - 30358} 30359do_execsql_test joinD-1028 { 30360 SELECT t1.*, t2.*, t3.*, t4.* 30361 FROM t1 FULL JOIN t2 ON t1.b=t2.b 30362 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 30363 FULL JOIN t4 ON t1.d=t4.d 30364 WHERE t2.x>0 AND t4.z>0 30365 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30366} { 30367 10 110 210 310 110 10 - - 310 10 30368 20 120 220 320 120 20 - - 320 20 30369 30 130 230 330 130 30 230 30 330 30 30370 40 140 240 340 140 40 - - 340 40 30371 50 150 250 350 150 50 - - 350 50 30372 60 160 260 360 160 60 260 60 360 60 30373 70 170 270 370 170 70 - - 370 70 30374 80 180 280 380 180 80 - - 380 80 30375 90 190 290 390 190 90 290 90 390 90 30376} 30377do_execsql_test joinD-1029 { 30378 SELECT t1.*, t2.*, t3.*, t4.* 30379 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30380 LEFT JOIN t3 ON t1.c=t3.c 30381 FULL JOIN t4 ON t1.d=t4.d 30382 WHERE t4.z>0 AND t3.y>0 30383 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30384} { 30385 15 115 215 315 - - 215 15 315 15 30386 30 130 230 330 130 30 230 30 330 30 30387 45 145 245 345 - - 245 45 345 45 30388 60 160 260 360 160 60 260 60 360 60 30389 75 175 275 375 - - 275 75 375 75 30390 90 190 290 390 190 90 290 90 390 90 30391} 30392do_execsql_test joinD-1030 { 30393 SELECT t1.*, t2.*, t3.*, t4.* 30394 FROM t1 FULL JOIN t2 ON t1.b=t2.b 30395 LEFT JOIN t3 ON t1.c=t3.c 30396 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 30397 WHERE t2.x>0 AND t3.y>0 30398 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30399} { 30400 6 106 206 306 106 6 206 6 - - 30401 12 112 212 312 112 12 212 12 - - 30402 18 118 218 318 118 18 218 18 - - 30403 24 124 224 324 124 24 224 24 - - 30404 30 130 230 330 130 30 230 30 330 30 30405 36 136 236 336 136 36 236 36 - - 30406 42 142 242 342 142 42 242 42 - - 30407 48 148 248 348 148 48 248 48 - - 30408 54 154 254 354 154 54 254 54 - - 30409 60 160 260 360 160 60 260 60 360 60 30410 66 166 266 366 166 66 266 66 - - 30411 72 172 272 372 172 72 272 72 - - 30412 78 178 278 378 178 78 278 78 - - 30413 84 184 284 384 184 84 284 84 - - 30414 90 190 290 390 190 90 290 90 390 90 30415} 30416do_execsql_test joinD-1031 { 30417 SELECT t1.*, t2.*, t3.*, t4.* 30418 FROM t1 FULL JOIN t2 ON t1.b=t2.b 30419 LEFT JOIN t3 ON t1.c=t3.c 30420 FULL JOIN t4 ON t1.d=t4.d 30421 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 30422 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30423} { 30424 30 130 230 330 130 30 230 30 330 30 30425 60 160 260 360 160 60 260 60 360 60 30426 90 190 290 390 190 90 290 90 390 90 30427} 30428do_execsql_test joinD-1032 { 30429 SELECT t1.*, t2.*, t3.*, t4.* 30430 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 30431 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 30432 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 30433 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30434} { 30435 0 100 200 300 - - - - - - 30436 1 101 201 301 - - - - - - 30437 2 102 202 302 102 2 - - - - 30438 3 103 203 303 - - 203 3 - - 30439 4 104 204 304 104 4 - - - - 30440 5 105 205 305 - - - - 305 5 30441 6 106 206 306 106 6 206 6 - - 30442 7 107 207 307 - - - - - - 30443 8 108 208 308 108 8 - - - - 30444 9 109 209 309 - - 209 9 - - 30445 10 110 210 310 110 10 - - 310 10 30446 11 111 211 311 - - - - - - 30447 12 112 212 312 112 12 212 12 - - 30448 13 113 213 313 - - - - - - 30449 14 114 214 314 114 14 - - - - 30450 15 115 215 315 - - 215 15 315 15 30451 16 116 216 316 116 16 - - - - 30452 17 117 217 317 - - - - - - 30453 18 118 218 318 118 18 218 18 - - 30454 19 119 219 319 - - - - - - 30455 20 120 220 320 120 20 - - 320 20 30456 21 121 221 321 - - 221 21 - - 30457 22 122 222 322 122 22 - - - - 30458 23 123 223 323 - - - - - - 30459 24 124 224 324 124 24 224 24 - - 30460 25 125 225 325 - - - - 325 25 30461 26 126 226 326 126 26 - - - - 30462 27 127 227 327 - - 227 27 - - 30463 28 128 228 328 128 28 - - - - 30464 29 129 229 329 - - - - - - 30465 30 130 230 330 130 30 230 30 330 30 30466 31 131 231 331 - - - - - - 30467 32 132 232 332 132 32 - - - - 30468 33 133 233 333 - - 233 33 - - 30469 34 134 234 334 134 34 - - - - 30470 35 135 235 335 - - - - 335 35 30471 36 136 236 336 136 36 236 36 - - 30472 37 137 237 337 - - - - - - 30473 38 138 238 338 138 38 - - - - 30474 39 139 239 339 - - 239 39 - - 30475 40 140 240 340 140 40 - - 340 40 30476 41 141 241 341 - - - - - - 30477 42 142 242 342 142 42 242 42 - - 30478 43 143 243 343 - - - - - - 30479 44 144 244 344 144 44 - - - - 30480 45 145 245 345 - - 245 45 345 45 30481 46 146 246 346 146 46 - - - - 30482 47 147 247 347 - - - - - - 30483 48 148 248 348 148 48 248 48 - - 30484 49 149 249 349 - - - - - - 30485 50 150 250 350 150 50 - - 350 50 30486 51 151 251 351 - - 251 51 - - 30487 52 152 252 352 152 52 - - - - 30488 53 153 253 353 - - - - - - 30489 54 154 254 354 154 54 254 54 - - 30490 55 155 255 355 - - - - 355 55 30491 56 156 256 356 156 56 - - - - 30492 57 157 257 357 - - 257 57 - - 30493 58 158 258 358 158 58 - - - - 30494 59 159 259 359 - - - - - - 30495 60 160 260 360 160 60 260 60 360 60 30496 61 161 261 361 - - - - - - 30497 62 162 262 362 162 62 - - - - 30498 63 163 263 363 - - 263 63 - - 30499 64 164 264 364 164 64 - - - - 30500 65 165 265 365 - - - - 365 65 30501 66 166 266 366 166 66 266 66 - - 30502 67 167 267 367 - - - - - - 30503 68 168 268 368 168 68 - - - - 30504 69 169 269 369 - - 269 69 - - 30505 70 170 270 370 170 70 - - 370 70 30506 71 171 271 371 - - - - - - 30507 72 172 272 372 172 72 272 72 - - 30508 73 173 273 373 - - - - - - 30509 74 174 274 374 174 74 - - - - 30510 75 175 275 375 - - 275 75 375 75 30511 76 176 276 376 176 76 - - - - 30512 77 177 277 377 - - - - - - 30513 78 178 278 378 178 78 278 78 - - 30514 79 179 279 379 - - - - - - 30515 80 180 280 380 180 80 - - 380 80 30516 81 181 281 381 - - 281 81 - - 30517 82 182 282 382 182 82 - - - - 30518 83 183 283 383 - - - - - - 30519 84 184 284 384 184 84 284 84 - - 30520 85 185 285 385 - - - - 385 85 30521 86 186 286 386 186 86 - - - - 30522 87 187 287 387 - - 287 87 - - 30523 88 188 288 388 188 88 - - - - 30524 89 189 289 389 - - - - - - 30525 90 190 290 390 190 90 290 90 390 90 30526 91 191 291 391 - - - - - - 30527 92 192 292 392 192 92 - - - - 30528 93 193 293 393 - - 293 93 - - 30529 94 194 294 394 194 94 - - - - 30530 95 195 295 395 - - - - 395 95 30531 96 - 296 396 - - - - - - 30532 97 197 - 397 - - - - - - 30533 98 198 298 - - - - - - - 30534 99 - - - - - - - - - 30535 - - - - 100 0 - - - - 30536 - - - - - - - - 300 0 30537} 30538do_execsql_test joinD-1033 { 30539 SELECT t1.*, t2.*, t3.*, t4.* 30540 FROM t1 FULL JOIN t2 ON t2.x>0 30541 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 30542 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 30543 WHERE t1.b = t2.b 30544 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30545} { 30546 2 102 202 302 102 2 - - - - 30547 4 104 204 304 104 4 - - - - 30548 6 106 206 306 106 6 206 6 - - 30549 8 108 208 308 108 8 - - - - 30550 10 110 210 310 110 10 - - 310 10 30551 12 112 212 312 112 12 212 12 - - 30552 14 114 214 314 114 14 - - - - 30553 16 116 216 316 116 16 - - - - 30554 18 118 218 318 118 18 218 18 - - 30555 20 120 220 320 120 20 - - 320 20 30556 22 122 222 322 122 22 - - - - 30557 24 124 224 324 124 24 224 24 - - 30558 26 126 226 326 126 26 - - - - 30559 28 128 228 328 128 28 - - - - 30560 30 130 230 330 130 30 230 30 330 30 30561 32 132 232 332 132 32 - - - - 30562 34 134 234 334 134 34 - - - - 30563 36 136 236 336 136 36 236 36 - - 30564 38 138 238 338 138 38 - - - - 30565 40 140 240 340 140 40 - - 340 40 30566 42 142 242 342 142 42 242 42 - - 30567 44 144 244 344 144 44 - - - - 30568 46 146 246 346 146 46 - - - - 30569 48 148 248 348 148 48 248 48 - - 30570 50 150 250 350 150 50 - - 350 50 30571 52 152 252 352 152 52 - - - - 30572 54 154 254 354 154 54 254 54 - - 30573 56 156 256 356 156 56 - - - - 30574 58 158 258 358 158 58 - - - - 30575 60 160 260 360 160 60 260 60 360 60 30576 62 162 262 362 162 62 - - - - 30577 64 164 264 364 164 64 - - - - 30578 66 166 266 366 166 66 266 66 - - 30579 68 168 268 368 168 68 - - - - 30580 70 170 270 370 170 70 - - 370 70 30581 72 172 272 372 172 72 272 72 - - 30582 74 174 274 374 174 74 - - - - 30583 76 176 276 376 176 76 - - - - 30584 78 178 278 378 178 78 278 78 - - 30585 80 180 280 380 180 80 - - 380 80 30586 82 182 282 382 182 82 - - - - 30587 84 184 284 384 184 84 284 84 - - 30588 86 186 286 386 186 86 - - - - 30589 88 188 288 388 188 88 - - - - 30590 90 190 290 390 190 90 290 90 390 90 30591 92 192 292 392 192 92 - - - - 30592 94 194 294 394 194 94 - - - - 30593} 30594do_execsql_test joinD-1034 { 30595 SELECT t1.*, t2.*, t3.*, t4.* 30596 FROM t1 FULL JOIN t2 ON t2.x>0 30597 LEFT JOIN t3 ON t3.y>0 30598 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 30599 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 30600 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30601} { 30602 6 106 206 306 106 6 206 6 - - 30603 12 112 212 312 112 12 212 12 - - 30604 18 118 218 318 118 18 218 18 - - 30605 24 124 224 324 124 24 224 24 - - 30606 30 130 230 330 130 30 230 30 330 30 30607 36 136 236 336 136 36 236 36 - - 30608 42 142 242 342 142 42 242 42 - - 30609 48 148 248 348 148 48 248 48 - - 30610 54 154 254 354 154 54 254 54 - - 30611 60 160 260 360 160 60 260 60 360 60 30612 66 166 266 366 166 66 266 66 - - 30613 72 172 272 372 172 72 272 72 - - 30614 78 178 278 378 178 78 278 78 - - 30615 84 184 284 384 184 84 284 84 - - 30616 90 190 290 390 190 90 290 90 390 90 30617} 30618do_execsql_test joinD-1035 { 30619 SELECT t1.*, t2.*, t3.*, t4.* 30620 FROM t1 FULL JOIN t2 ON t2.x>0 30621 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 30622 FULL JOIN t4 ON t4.z>0 30623 WHERE t1.b = t2.b AND t1.d = t4.d 30624 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30625} { 30626 10 110 210 310 110 10 - - 310 10 30627 20 120 220 320 120 20 - - 320 20 30628 30 130 230 330 130 30 230 30 330 30 30629 40 140 240 340 140 40 - - 340 40 30630 50 150 250 350 150 50 - - 350 50 30631 60 160 260 360 160 60 260 60 360 60 30632 70 170 270 370 170 70 - - 370 70 30633 80 180 280 380 180 80 - - 380 80 30634 90 190 290 390 190 90 290 90 390 90 30635} 30636do_execsql_test joinD-1036 { 30637 SELECT t1.*, t2.*, t3.*, t4.* 30638 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30639 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 30640 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 30641 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30642} { 30643 0 100 200 300 - - - - - - 30644 1 101 201 301 - - - - - - 30645 2 102 202 302 102 2 - - - - 30646 3 103 203 303 - - 203 3 - - 30647 4 104 204 304 104 4 - - - - 30648 5 105 205 305 - - - - 305 5 30649 6 106 206 306 106 6 206 6 - - 30650 7 107 207 307 - - - - - - 30651 8 108 208 308 108 8 - - - - 30652 9 109 209 309 - - 209 9 - - 30653 10 110 210 310 110 10 - - 310 10 30654 11 111 211 311 - - - - - - 30655 12 112 212 312 112 12 212 12 - - 30656 13 113 213 313 - - - - - - 30657 14 114 214 314 114 14 - - - - 30658 15 115 215 315 - - 215 15 315 15 30659 16 116 216 316 116 16 - - - - 30660 17 117 217 317 - - - - - - 30661 18 118 218 318 118 18 218 18 - - 30662 19 119 219 319 - - - - - - 30663 20 120 220 320 120 20 - - 320 20 30664 21 121 221 321 - - 221 21 - - 30665 22 122 222 322 122 22 - - - - 30666 23 123 223 323 - - - - - - 30667 24 124 224 324 124 24 224 24 - - 30668 25 125 225 325 - - - - 325 25 30669 26 126 226 326 126 26 - - - - 30670 27 127 227 327 - - 227 27 - - 30671 28 128 228 328 128 28 - - - - 30672 29 129 229 329 - - - - - - 30673 30 130 230 330 130 30 230 30 330 30 30674 31 131 231 331 - - - - - - 30675 32 132 232 332 132 32 - - - - 30676 33 133 233 333 - - 233 33 - - 30677 34 134 234 334 134 34 - - - - 30678 35 135 235 335 - - - - 335 35 30679 36 136 236 336 136 36 236 36 - - 30680 37 137 237 337 - - - - - - 30681 38 138 238 338 138 38 - - - - 30682 39 139 239 339 - - 239 39 - - 30683 40 140 240 340 140 40 - - 340 40 30684 41 141 241 341 - - - - - - 30685 42 142 242 342 142 42 242 42 - - 30686 43 143 243 343 - - - - - - 30687 44 144 244 344 144 44 - - - - 30688 45 145 245 345 - - 245 45 345 45 30689 46 146 246 346 146 46 - - - - 30690 47 147 247 347 - - - - - - 30691 48 148 248 348 148 48 248 48 - - 30692 49 149 249 349 - - - - - - 30693 50 150 250 350 150 50 - - 350 50 30694 51 151 251 351 - - 251 51 - - 30695 52 152 252 352 152 52 - - - - 30696 53 153 253 353 - - - - - - 30697 54 154 254 354 154 54 254 54 - - 30698 55 155 255 355 - - - - 355 55 30699 56 156 256 356 156 56 - - - - 30700 57 157 257 357 - - 257 57 - - 30701 58 158 258 358 158 58 - - - - 30702 59 159 259 359 - - - - - - 30703 60 160 260 360 160 60 260 60 360 60 30704 61 161 261 361 - - - - - - 30705 62 162 262 362 162 62 - - - - 30706 63 163 263 363 - - 263 63 - - 30707 64 164 264 364 164 64 - - - - 30708 65 165 265 365 - - - - 365 65 30709 66 166 266 366 166 66 266 66 - - 30710 67 167 267 367 - - - - - - 30711 68 168 268 368 168 68 - - - - 30712 69 169 269 369 - - 269 69 - - 30713 70 170 270 370 170 70 - - 370 70 30714 71 171 271 371 - - - - - - 30715 72 172 272 372 172 72 272 72 - - 30716 73 173 273 373 - - - - - - 30717 74 174 274 374 174 74 - - - - 30718 75 175 275 375 - - 275 75 375 75 30719 76 176 276 376 176 76 - - - - 30720 77 177 277 377 - - - - - - 30721 78 178 278 378 178 78 278 78 - - 30722 79 179 279 379 - - - - - - 30723 80 180 280 380 180 80 - - 380 80 30724 81 181 281 381 - - 281 81 - - 30725 82 182 282 382 182 82 - - - - 30726 83 183 283 383 - - - - - - 30727 84 184 284 384 184 84 284 84 - - 30728 85 185 285 385 - - - - 385 85 30729 86 186 286 386 186 86 - - - - 30730 87 187 287 387 - - 287 87 - - 30731 88 188 288 388 188 88 - - - - 30732 89 189 289 389 - - - - - - 30733 90 190 290 390 190 90 290 90 390 90 30734 91 191 291 391 - - - - - - 30735 92 192 292 392 192 92 - - - - 30736 93 193 293 393 - - 293 93 - - 30737 94 194 294 394 194 94 - - - - 30738 95 195 295 395 - - - - 395 95 30739 96 - 296 396 - - - - - - 30740 97 197 - 397 - - - - - - 30741 98 198 298 - - - - - - - 30742 99 - - - - - - - - - 30743 - - - - 100 0 - - - - 30744 - - - - - - - - 300 0 30745} 30746do_execsql_test joinD-1037 { 30747 SELECT t1.*, t2.*, t3.*, t4.* 30748 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30749 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 30750 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 30751 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30752} { 30753 15 115 215 315 - - 215 15 315 15 30754 30 130 230 330 130 30 230 30 330 30 30755 45 145 245 345 - - 245 45 345 45 30756 60 160 260 360 160 60 260 60 360 60 30757 75 175 275 375 - - 275 75 375 75 30758 90 190 290 390 190 90 290 90 390 90 30759} 30760do_execsql_test joinD-1038 { 30761 SELECT t1.*, t2.*, t3.*, t4.* 30762 FROM t1 FULL JOIN t2 ON t1.b=t2.b 30763 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 30764 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 30765 WHERE t2.x>0 30766 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30767} { 30768 30 130 230 330 130 30 230 30 330 30 30769 60 160 260 360 160 60 260 60 360 60 30770 90 190 290 390 190 90 290 90 390 90 30771} 30772do_execsql_test joinD-1039 { 30773 SELECT t1.*, t2.*, t3.*, t4.* 30774 FROM t1 FULL JOIN t2 ON t1.b=t2.b 30775 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 30776 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 30777 WHERE (t2.x>0 OR t2.x IS NULL) 30778 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30779} { 30780 15 115 215 315 - - 215 15 315 15 30781 30 130 230 330 130 30 230 30 330 30 30782 45 145 245 345 - - 245 45 345 45 30783 60 160 260 360 160 60 260 60 360 60 30784 75 175 275 375 - - 275 75 375 75 30785 90 190 290 390 190 90 290 90 390 90 30786} 30787do_execsql_test joinD-1040 { 30788 SELECT t1.*, t2.*, t3.*, t4.* 30789 FROM t1 FULL JOIN t2 ON true 30790 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 30791 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 30792 WHERE t1.b=t2.b AND t2.x>0 30793 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30794} { 30795 30 130 230 330 130 30 230 30 330 30 30796 60 160 260 360 160 60 260 60 360 60 30797 90 190 290 390 190 90 290 90 390 90 30798} 30799do_execsql_test joinD-1041 { 30800 SELECT t1.*, t2.*, t3.*, t4.* 30801 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30802 RIGHT JOIN t3 ON t1.c=t3.c 30803 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 30804 WHERE t3.y>0 30805 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30806} { 30807 15 115 215 315 - - 215 15 315 15 30808 30 130 230 330 130 30 230 30 330 30 30809 45 145 245 345 - - 245 45 345 45 30810 60 160 260 360 160 60 260 60 360 60 30811 75 175 275 375 - - 275 75 375 75 30812 90 190 290 390 190 90 290 90 390 90 30813} 30814do_execsql_test joinD-1042 { 30815 SELECT t1.*, t2.*, t3.*, t4.* 30816 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30817 RIGHT JOIN t3 ON t1.c=t3.c 30818 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 30819 WHERE t3.y>0 OR t3.y IS NULL 30820 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30821} { 30822 15 115 215 315 - - 215 15 315 15 30823 30 130 230 330 130 30 230 30 330 30 30824 45 145 245 345 - - 245 45 345 45 30825 60 160 260 360 160 60 260 60 360 60 30826 75 175 275 375 - - 275 75 375 75 30827 90 190 290 390 190 90 290 90 390 90 30828} 30829do_execsql_test joinD-1043 { 30830 SELECT t1.*, t2.*, t3.*, t4.* 30831 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30832 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 30833 INNER JOIN t4 ON t1.d=t4.d 30834 WHERE t4.z>0 30835 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30836} { 30837 15 115 215 315 - - 215 15 315 15 30838 30 130 230 330 130 30 230 30 330 30 30839 45 145 245 345 - - 245 45 345 45 30840 60 160 260 360 160 60 260 60 360 60 30841 75 175 275 375 - - 275 75 375 75 30842 90 190 290 390 190 90 290 90 390 90 30843} 30844do_execsql_test joinD-1044 { 30845 SELECT t1.*, t2.*, t3.*, t4.* 30846 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30847 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 30848 INNER JOIN t4 ON t1.d=t4.d 30849 WHERE t4.z IS NULL OR t4.z>0 30850 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30851} { 30852 15 115 215 315 - - 215 15 315 15 30853 30 130 230 330 130 30 230 30 330 30 30854 45 145 245 345 - - 245 45 345 45 30855 60 160 260 360 160 60 260 60 360 60 30856 75 175 275 375 - - 275 75 375 75 30857 90 190 290 390 190 90 290 90 390 90 30858} 30859do_execsql_test joinD-1045 { 30860 SELECT t1.*, t2.*, t3.*, t4.* 30861 FROM t1 FULL JOIN t2 ON t1.b=t2.b 30862 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 30863 INNER JOIN t4 ON t1.d=t4.d 30864 WHERE t2.x>0 AND t4.z>0 30865 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30866} { 30867 30 130 230 330 130 30 230 30 330 30 30868 60 160 260 360 160 60 260 60 360 60 30869 90 190 290 390 190 90 290 90 390 90 30870} 30871do_execsql_test joinD-1046 { 30872 SELECT t1.*, t2.*, t3.*, t4.* 30873 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30874 RIGHT JOIN t3 ON t1.c=t3.c 30875 INNER JOIN t4 ON t1.d=t4.d 30876 WHERE t4.z>0 AND t3.y>0 30877 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30878} { 30879 15 115 215 315 - - 215 15 315 15 30880 30 130 230 330 130 30 230 30 330 30 30881 45 145 245 345 - - 245 45 345 45 30882 60 160 260 360 160 60 260 60 360 60 30883 75 175 275 375 - - 275 75 375 75 30884 90 190 290 390 190 90 290 90 390 90 30885} 30886do_execsql_test joinD-1047 { 30887 SELECT t1.*, t2.*, t3.*, t4.* 30888 FROM t1 FULL JOIN t2 ON t1.b=t2.b 30889 RIGHT JOIN t3 ON t1.c=t3.c 30890 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 30891 WHERE t2.x>0 AND t3.y>0 30892 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30893} { 30894 30 130 230 330 130 30 230 30 330 30 30895 60 160 260 360 160 60 260 60 360 60 30896 90 190 290 390 190 90 290 90 390 90 30897} 30898do_execsql_test joinD-1048 { 30899 SELECT t1.*, t2.*, t3.*, t4.* 30900 FROM t1 FULL JOIN t2 ON t1.b=t2.b 30901 RIGHT JOIN t3 ON t1.c=t3.c 30902 INNER JOIN t4 ON t1.d=t4.d 30903 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 30904 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30905} { 30906 30 130 230 330 130 30 230 30 330 30 30907 60 160 260 360 160 60 260 60 360 60 30908 90 190 290 390 190 90 290 90 390 90 30909} 30910do_execsql_test joinD-1049 { 30911 SELECT t1.*, t2.*, t3.*, t4.* 30912 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 30913 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 30914 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 30915 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30916} { 30917 15 115 215 315 - - 215 15 315 15 30918 30 130 230 330 130 30 230 30 330 30 30919 45 145 245 345 - - 245 45 345 45 30920 60 160 260 360 160 60 260 60 360 60 30921 75 175 275 375 - - 275 75 375 75 30922 90 190 290 390 190 90 290 90 390 90 30923} 30924do_execsql_test joinD-1050 { 30925 SELECT t1.*, t2.*, t3.*, t4.* 30926 FROM t1 FULL JOIN t2 ON t2.x>0 30927 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 30928 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 30929 WHERE t1.b = t2.b 30930 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30931} { 30932 30 130 230 330 130 30 230 30 330 30 30933 60 160 260 360 160 60 260 60 360 60 30934 90 190 290 390 190 90 290 90 390 90 30935} 30936do_execsql_test joinD-1051 { 30937 SELECT t1.*, t2.*, t3.*, t4.* 30938 FROM t1 FULL JOIN t2 ON t2.x>0 30939 RIGHT JOIN t3 ON t3.y>0 30940 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 30941 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 30942 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30943} { 30944 30 130 230 330 130 30 230 30 330 30 30945 60 160 260 360 160 60 260 60 360 60 30946 90 190 290 390 190 90 290 90 390 90 30947} 30948do_execsql_test joinD-1052 { 30949 SELECT t1.*, t2.*, t3.*, t4.* 30950 FROM t1 FULL JOIN t2 ON t2.x>0 30951 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 30952 INNER JOIN t4 ON t4.z>0 30953 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 30954 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30955} { 30956 30 130 230 330 130 30 230 30 330 30 30957 60 160 260 360 160 60 260 60 360 60 30958 90 190 290 390 190 90 290 90 390 90 30959} 30960do_execsql_test joinD-1053 { 30961 SELECT t1.*, t2.*, t3.*, t4.* 30962 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30963 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 30964 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 30965 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30966} { 30967 15 115 215 315 - - 215 15 315 15 30968 30 130 230 330 130 30 230 30 330 30 30969 45 145 245 345 - - 245 45 345 45 30970 60 160 260 360 160 60 260 60 360 60 30971 75 175 275 375 - - 275 75 375 75 30972 90 190 290 390 190 90 290 90 390 90 30973} 30974do_execsql_test joinD-1054 { 30975 SELECT t1.*, t2.*, t3.*, t4.* 30976 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30977 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 30978 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 30979 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30980} { 30981 3 103 203 303 - - 203 3 - - 30982 6 106 206 306 106 6 206 6 - - 30983 9 109 209 309 - - 209 9 - - 30984 12 112 212 312 112 12 212 12 - - 30985 15 115 215 315 - - 215 15 315 15 30986 18 118 218 318 118 18 218 18 - - 30987 21 121 221 321 - - 221 21 - - 30988 24 124 224 324 124 24 224 24 - - 30989 27 127 227 327 - - 227 27 - - 30990 30 130 230 330 130 30 230 30 330 30 30991 33 133 233 333 - - 233 33 - - 30992 36 136 236 336 136 36 236 36 - - 30993 39 139 239 339 - - 239 39 - - 30994 42 142 242 342 142 42 242 42 - - 30995 45 145 245 345 - - 245 45 345 45 30996 48 148 248 348 148 48 248 48 - - 30997 51 151 251 351 - - 251 51 - - 30998 54 154 254 354 154 54 254 54 - - 30999 57 157 257 357 - - 257 57 - - 31000 60 160 260 360 160 60 260 60 360 60 31001 63 163 263 363 - - 263 63 - - 31002 66 166 266 366 166 66 266 66 - - 31003 69 169 269 369 - - 269 69 - - 31004 72 172 272 372 172 72 272 72 - - 31005 75 175 275 375 - - 275 75 375 75 31006 78 178 278 378 178 78 278 78 - - 31007 81 181 281 381 - - 281 81 - - 31008 84 184 284 384 184 84 284 84 - - 31009 87 187 287 387 - - 287 87 - - 31010 90 190 290 390 190 90 290 90 390 90 31011 93 193 293 393 - - 293 93 - - 31012 - - - - - - 200 0 - - 31013} 31014do_execsql_test joinD-1055 { 31015 SELECT t1.*, t2.*, t3.*, t4.* 31016 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31017 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31018 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 31019 WHERE t2.x>0 31020 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31021} { 31022 6 106 206 306 106 6 206 6 - - 31023 12 112 212 312 112 12 212 12 - - 31024 18 118 218 318 118 18 218 18 - - 31025 24 124 224 324 124 24 224 24 - - 31026 30 130 230 330 130 30 230 30 330 30 31027 36 136 236 336 136 36 236 36 - - 31028 42 142 242 342 142 42 242 42 - - 31029 48 148 248 348 148 48 248 48 - - 31030 54 154 254 354 154 54 254 54 - - 31031 60 160 260 360 160 60 260 60 360 60 31032 66 166 266 366 166 66 266 66 - - 31033 72 172 272 372 172 72 272 72 - - 31034 78 178 278 378 178 78 278 78 - - 31035 84 184 284 384 184 84 284 84 - - 31036 90 190 290 390 190 90 290 90 390 90 31037} 31038do_execsql_test joinD-1056 { 31039 SELECT t1.*, t2.*, t3.*, t4.* 31040 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31041 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31042 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 31043 WHERE (t2.x>0 OR t2.x IS NULL) 31044 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31045} { 31046 3 103 203 303 - - 203 3 - - 31047 6 106 206 306 106 6 206 6 - - 31048 9 109 209 309 - - 209 9 - - 31049 12 112 212 312 112 12 212 12 - - 31050 15 115 215 315 - - 215 15 315 15 31051 18 118 218 318 118 18 218 18 - - 31052 21 121 221 321 - - 221 21 - - 31053 24 124 224 324 124 24 224 24 - - 31054 27 127 227 327 - - 227 27 - - 31055 30 130 230 330 130 30 230 30 330 30 31056 33 133 233 333 - - 233 33 - - 31057 36 136 236 336 136 36 236 36 - - 31058 39 139 239 339 - - 239 39 - - 31059 42 142 242 342 142 42 242 42 - - 31060 45 145 245 345 - - 245 45 345 45 31061 48 148 248 348 148 48 248 48 - - 31062 51 151 251 351 - - 251 51 - - 31063 54 154 254 354 154 54 254 54 - - 31064 57 157 257 357 - - 257 57 - - 31065 60 160 260 360 160 60 260 60 360 60 31066 63 163 263 363 - - 263 63 - - 31067 66 166 266 366 166 66 266 66 - - 31068 69 169 269 369 - - 269 69 - - 31069 72 172 272 372 172 72 272 72 - - 31070 75 175 275 375 - - 275 75 375 75 31071 78 178 278 378 178 78 278 78 - - 31072 81 181 281 381 - - 281 81 - - 31073 84 184 284 384 184 84 284 84 - - 31074 87 187 287 387 - - 287 87 - - 31075 90 190 290 390 190 90 290 90 390 90 31076 93 193 293 393 - - 293 93 - - 31077 - - - - - - 200 0 - - 31078} 31079do_execsql_test joinD-1057 { 31080 SELECT t1.*, t2.*, t3.*, t4.* 31081 FROM t1 FULL JOIN t2 ON true 31082 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31083 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 31084 WHERE t1.b=t2.b AND t2.x>0 31085 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31086} { 31087 6 106 206 306 106 6 206 6 - - 31088 12 112 212 312 112 12 212 12 - - 31089 18 118 218 318 118 18 218 18 - - 31090 24 124 224 324 124 24 224 24 - - 31091 30 130 230 330 130 30 230 30 330 30 31092 36 136 236 336 136 36 236 36 - - 31093 42 142 242 342 142 42 242 42 - - 31094 48 148 248 348 148 48 248 48 - - 31095 54 154 254 354 154 54 254 54 - - 31096 60 160 260 360 160 60 260 60 360 60 31097 66 166 266 366 166 66 266 66 - - 31098 72 172 272 372 172 72 272 72 - - 31099 78 178 278 378 178 78 278 78 - - 31100 84 184 284 384 184 84 284 84 - - 31101 90 190 290 390 190 90 290 90 390 90 31102} 31103do_execsql_test joinD-1058 { 31104 SELECT t1.*, t2.*, t3.*, t4.* 31105 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31106 RIGHT JOIN t3 ON t1.c=t3.c 31107 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 31108 WHERE t3.y>0 31109 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31110} { 31111 3 103 203 303 - - 203 3 - - 31112 6 106 206 306 106 6 206 6 - - 31113 9 109 209 309 - - 209 9 - - 31114 12 112 212 312 112 12 212 12 - - 31115 15 115 215 315 - - 215 15 315 15 31116 18 118 218 318 118 18 218 18 - - 31117 21 121 221 321 - - 221 21 - - 31118 24 124 224 324 124 24 224 24 - - 31119 27 127 227 327 - - 227 27 - - 31120 30 130 230 330 130 30 230 30 330 30 31121 33 133 233 333 - - 233 33 - - 31122 36 136 236 336 136 36 236 36 - - 31123 39 139 239 339 - - 239 39 - - 31124 42 142 242 342 142 42 242 42 - - 31125 45 145 245 345 - - 245 45 345 45 31126 48 148 248 348 148 48 248 48 - - 31127 51 151 251 351 - - 251 51 - - 31128 54 154 254 354 154 54 254 54 - - 31129 57 157 257 357 - - 257 57 - - 31130 60 160 260 360 160 60 260 60 360 60 31131 63 163 263 363 - - 263 63 - - 31132 66 166 266 366 166 66 266 66 - - 31133 69 169 269 369 - - 269 69 - - 31134 72 172 272 372 172 72 272 72 - - 31135 75 175 275 375 - - 275 75 375 75 31136 78 178 278 378 178 78 278 78 - - 31137 81 181 281 381 - - 281 81 - - 31138 84 184 284 384 184 84 284 84 - - 31139 87 187 287 387 - - 287 87 - - 31140 90 190 290 390 190 90 290 90 390 90 31141 93 193 293 393 - - 293 93 - - 31142} 31143do_execsql_test joinD-1059 { 31144 SELECT t1.*, t2.*, t3.*, t4.* 31145 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31146 RIGHT JOIN t3 ON t1.c=t3.c 31147 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 31148 WHERE t3.y>0 OR t3.y IS NULL 31149 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31150} { 31151 3 103 203 303 - - 203 3 - - 31152 6 106 206 306 106 6 206 6 - - 31153 9 109 209 309 - - 209 9 - - 31154 12 112 212 312 112 12 212 12 - - 31155 15 115 215 315 - - 215 15 315 15 31156 18 118 218 318 118 18 218 18 - - 31157 21 121 221 321 - - 221 21 - - 31158 24 124 224 324 124 24 224 24 - - 31159 27 127 227 327 - - 227 27 - - 31160 30 130 230 330 130 30 230 30 330 30 31161 33 133 233 333 - - 233 33 - - 31162 36 136 236 336 136 36 236 36 - - 31163 39 139 239 339 - - 239 39 - - 31164 42 142 242 342 142 42 242 42 - - 31165 45 145 245 345 - - 245 45 345 45 31166 48 148 248 348 148 48 248 48 - - 31167 51 151 251 351 - - 251 51 - - 31168 54 154 254 354 154 54 254 54 - - 31169 57 157 257 357 - - 257 57 - - 31170 60 160 260 360 160 60 260 60 360 60 31171 63 163 263 363 - - 263 63 - - 31172 66 166 266 366 166 66 266 66 - - 31173 69 169 269 369 - - 269 69 - - 31174 72 172 272 372 172 72 272 72 - - 31175 75 175 275 375 - - 275 75 375 75 31176 78 178 278 378 178 78 278 78 - - 31177 81 181 281 381 - - 281 81 - - 31178 84 184 284 384 184 84 284 84 - - 31179 87 187 287 387 - - 287 87 - - 31180 90 190 290 390 190 90 290 90 390 90 31181 93 193 293 393 - - 293 93 - - 31182} 31183do_execsql_test joinD-1060 { 31184 SELECT t1.*, t2.*, t3.*, t4.* 31185 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31186 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31187 LEFT JOIN t4 ON t1.d=t4.d 31188 WHERE t4.z>0 31189 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31190} { 31191 15 115 215 315 - - 215 15 315 15 31192 30 130 230 330 130 30 230 30 330 30 31193 45 145 245 345 - - 245 45 345 45 31194 60 160 260 360 160 60 260 60 360 60 31195 75 175 275 375 - - 275 75 375 75 31196 90 190 290 390 190 90 290 90 390 90 31197} 31198do_execsql_test joinD-1061 { 31199 SELECT t1.*, t2.*, t3.*, t4.* 31200 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31201 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31202 LEFT JOIN t4 ON t1.d=t4.d 31203 WHERE t4.z IS NULL OR t4.z>0 31204 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31205} { 31206 3 103 203 303 - - 203 3 - - 31207 6 106 206 306 106 6 206 6 - - 31208 9 109 209 309 - - 209 9 - - 31209 12 112 212 312 112 12 212 12 - - 31210 15 115 215 315 - - 215 15 315 15 31211 18 118 218 318 118 18 218 18 - - 31212 21 121 221 321 - - 221 21 - - 31213 24 124 224 324 124 24 224 24 - - 31214 27 127 227 327 - - 227 27 - - 31215 30 130 230 330 130 30 230 30 330 30 31216 33 133 233 333 - - 233 33 - - 31217 36 136 236 336 136 36 236 36 - - 31218 39 139 239 339 - - 239 39 - - 31219 42 142 242 342 142 42 242 42 - - 31220 45 145 245 345 - - 245 45 345 45 31221 48 148 248 348 148 48 248 48 - - 31222 51 151 251 351 - - 251 51 - - 31223 54 154 254 354 154 54 254 54 - - 31224 57 157 257 357 - - 257 57 - - 31225 60 160 260 360 160 60 260 60 360 60 31226 63 163 263 363 - - 263 63 - - 31227 66 166 266 366 166 66 266 66 - - 31228 69 169 269 369 - - 269 69 - - 31229 72 172 272 372 172 72 272 72 - - 31230 75 175 275 375 - - 275 75 375 75 31231 78 178 278 378 178 78 278 78 - - 31232 81 181 281 381 - - 281 81 - - 31233 84 184 284 384 184 84 284 84 - - 31234 87 187 287 387 - - 287 87 - - 31235 90 190 290 390 190 90 290 90 390 90 31236 93 193 293 393 - - 293 93 - - 31237 - - - - - - 200 0 - - 31238} 31239do_execsql_test joinD-1062 { 31240 SELECT t1.*, t2.*, t3.*, t4.* 31241 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31242 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31243 LEFT JOIN t4 ON t1.d=t4.d 31244 WHERE t2.x>0 AND t4.z>0 31245 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31246} { 31247 30 130 230 330 130 30 230 30 330 30 31248 60 160 260 360 160 60 260 60 360 60 31249 90 190 290 390 190 90 290 90 390 90 31250} 31251do_execsql_test joinD-1063 { 31252 SELECT t1.*, t2.*, t3.*, t4.* 31253 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31254 RIGHT JOIN t3 ON t1.c=t3.c 31255 LEFT JOIN t4 ON t1.d=t4.d 31256 WHERE t4.z>0 AND t3.y>0 31257 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31258} { 31259 15 115 215 315 - - 215 15 315 15 31260 30 130 230 330 130 30 230 30 330 30 31261 45 145 245 345 - - 245 45 345 45 31262 60 160 260 360 160 60 260 60 360 60 31263 75 175 275 375 - - 275 75 375 75 31264 90 190 290 390 190 90 290 90 390 90 31265} 31266do_execsql_test joinD-1064 { 31267 SELECT t1.*, t2.*, t3.*, t4.* 31268 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31269 RIGHT JOIN t3 ON t1.c=t3.c 31270 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 31271 WHERE t2.x>0 AND t3.y>0 31272 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31273} { 31274 6 106 206 306 106 6 206 6 - - 31275 12 112 212 312 112 12 212 12 - - 31276 18 118 218 318 118 18 218 18 - - 31277 24 124 224 324 124 24 224 24 - - 31278 30 130 230 330 130 30 230 30 330 30 31279 36 136 236 336 136 36 236 36 - - 31280 42 142 242 342 142 42 242 42 - - 31281 48 148 248 348 148 48 248 48 - - 31282 54 154 254 354 154 54 254 54 - - 31283 60 160 260 360 160 60 260 60 360 60 31284 66 166 266 366 166 66 266 66 - - 31285 72 172 272 372 172 72 272 72 - - 31286 78 178 278 378 178 78 278 78 - - 31287 84 184 284 384 184 84 284 84 - - 31288 90 190 290 390 190 90 290 90 390 90 31289} 31290do_execsql_test joinD-1065 { 31291 SELECT t1.*, t2.*, t3.*, t4.* 31292 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31293 RIGHT JOIN t3 ON t1.c=t3.c 31294 LEFT JOIN t4 ON t1.d=t4.d 31295 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 31296 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31297} { 31298 30 130 230 330 130 30 230 30 330 30 31299 60 160 260 360 160 60 260 60 360 60 31300 90 190 290 390 190 90 290 90 390 90 31301} 31302do_execsql_test joinD-1066 { 31303 SELECT t1.*, t2.*, t3.*, t4.* 31304 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 31305 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 31306 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 31307 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31308} { 31309 3 103 203 303 - - 203 3 - - 31310 6 106 206 306 106 6 206 6 - - 31311 9 109 209 309 - - 209 9 - - 31312 12 112 212 312 112 12 212 12 - - 31313 15 115 215 315 - - 215 15 315 15 31314 18 118 218 318 118 18 218 18 - - 31315 21 121 221 321 - - 221 21 - - 31316 24 124 224 324 124 24 224 24 - - 31317 27 127 227 327 - - 227 27 - - 31318 30 130 230 330 130 30 230 30 330 30 31319 33 133 233 333 - - 233 33 - - 31320 36 136 236 336 136 36 236 36 - - 31321 39 139 239 339 - - 239 39 - - 31322 42 142 242 342 142 42 242 42 - - 31323 45 145 245 345 - - 245 45 345 45 31324 48 148 248 348 148 48 248 48 - - 31325 51 151 251 351 - - 251 51 - - 31326 54 154 254 354 154 54 254 54 - - 31327 57 157 257 357 - - 257 57 - - 31328 60 160 260 360 160 60 260 60 360 60 31329 63 163 263 363 - - 263 63 - - 31330 66 166 266 366 166 66 266 66 - - 31331 69 169 269 369 - - 269 69 - - 31332 72 172 272 372 172 72 272 72 - - 31333 75 175 275 375 - - 275 75 375 75 31334 78 178 278 378 178 78 278 78 - - 31335 81 181 281 381 - - 281 81 - - 31336 84 184 284 384 184 84 284 84 - - 31337 87 187 287 387 - - 287 87 - - 31338 90 190 290 390 190 90 290 90 390 90 31339 93 193 293 393 - - 293 93 - - 31340 - - - - - - 200 0 - - 31341} 31342do_execsql_test joinD-1067 { 31343 SELECT t1.*, t2.*, t3.*, t4.* 31344 FROM t1 FULL JOIN t2 ON t2.x>0 31345 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 31346 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 31347 WHERE t1.b = t2.b 31348 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31349} { 31350 6 106 206 306 106 6 206 6 - - 31351 12 112 212 312 112 12 212 12 - - 31352 18 118 218 318 118 18 218 18 - - 31353 24 124 224 324 124 24 224 24 - - 31354 30 130 230 330 130 30 230 30 330 30 31355 36 136 236 336 136 36 236 36 - - 31356 42 142 242 342 142 42 242 42 - - 31357 48 148 248 348 148 48 248 48 - - 31358 54 154 254 354 154 54 254 54 - - 31359 60 160 260 360 160 60 260 60 360 60 31360 66 166 266 366 166 66 266 66 - - 31361 72 172 272 372 172 72 272 72 - - 31362 78 178 278 378 178 78 278 78 - - 31363 84 184 284 384 184 84 284 84 - - 31364 90 190 290 390 190 90 290 90 390 90 31365} 31366do_execsql_test joinD-1068 { 31367 SELECT t1.*, t2.*, t3.*, t4.* 31368 FROM t1 FULL JOIN t2 ON t2.x>0 31369 RIGHT JOIN t3 ON t3.y>0 31370 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 31371 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 31372 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31373} { 31374 6 106 206 306 106 6 206 6 - - 31375 12 112 212 312 112 12 212 12 - - 31376 18 118 218 318 118 18 218 18 - - 31377 24 124 224 324 124 24 224 24 - - 31378 30 130 230 330 130 30 230 30 330 30 31379 36 136 236 336 136 36 236 36 - - 31380 42 142 242 342 142 42 242 42 - - 31381 48 148 248 348 148 48 248 48 - - 31382 54 154 254 354 154 54 254 54 - - 31383 60 160 260 360 160 60 260 60 360 60 31384 66 166 266 366 166 66 266 66 - - 31385 72 172 272 372 172 72 272 72 - - 31386 78 178 278 378 178 78 278 78 - - 31387 84 184 284 384 184 84 284 84 - - 31388 90 190 290 390 190 90 290 90 390 90 31389} 31390do_execsql_test joinD-1069 { 31391 SELECT t1.*, t2.*, t3.*, t4.* 31392 FROM t1 FULL JOIN t2 ON t2.x>0 31393 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 31394 LEFT JOIN t4 ON t4.z>0 31395 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 31396 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31397} { 31398 30 130 230 330 130 30 230 30 330 30 31399 60 160 260 360 160 60 260 60 360 60 31400 90 190 290 390 190 90 290 90 390 90 31401} 31402do_execsql_test joinD-1070 { 31403 SELECT t1.*, t2.*, t3.*, t4.* 31404 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31405 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 31406 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 31407 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31408} { 31409 3 103 203 303 - - 203 3 - - 31410 6 106 206 306 106 6 206 6 - - 31411 9 109 209 309 - - 209 9 - - 31412 12 112 212 312 112 12 212 12 - - 31413 15 115 215 315 - - 215 15 315 15 31414 18 118 218 318 118 18 218 18 - - 31415 21 121 221 321 - - 221 21 - - 31416 24 124 224 324 124 24 224 24 - - 31417 27 127 227 327 - - 227 27 - - 31418 30 130 230 330 130 30 230 30 330 30 31419 33 133 233 333 - - 233 33 - - 31420 36 136 236 336 136 36 236 36 - - 31421 39 139 239 339 - - 239 39 - - 31422 42 142 242 342 142 42 242 42 - - 31423 45 145 245 345 - - 245 45 345 45 31424 48 148 248 348 148 48 248 48 - - 31425 51 151 251 351 - - 251 51 - - 31426 54 154 254 354 154 54 254 54 - - 31427 57 157 257 357 - - 257 57 - - 31428 60 160 260 360 160 60 260 60 360 60 31429 63 163 263 363 - - 263 63 - - 31430 66 166 266 366 166 66 266 66 - - 31431 69 169 269 369 - - 269 69 - - 31432 72 172 272 372 172 72 272 72 - - 31433 75 175 275 375 - - 275 75 375 75 31434 78 178 278 378 178 78 278 78 - - 31435 81 181 281 381 - - 281 81 - - 31436 84 184 284 384 184 84 284 84 - - 31437 87 187 287 387 - - 287 87 - - 31438 90 190 290 390 190 90 290 90 390 90 31439 93 193 293 393 - - 293 93 - - 31440 - - - - - - 200 0 - - 31441} 31442do_execsql_test joinD-1071 { 31443 SELECT t1.*, t2.*, t3.*, t4.* 31444 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31445 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31446 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 31447 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31448} { 31449 15 115 215 315 - - 215 15 315 15 31450 30 130 230 330 130 30 230 30 330 30 31451 45 145 245 345 - - 245 45 345 45 31452 60 160 260 360 160 60 260 60 360 60 31453 75 175 275 375 - - 275 75 375 75 31454 90 190 290 390 190 90 290 90 390 90 31455 - - - - - - - - 300 0 31456 - - - - - - - - 305 5 31457 - - - - - - - - 310 10 31458 - - - - - - - - 320 20 31459 - - - - - - - - 325 25 31460 - - - - - - - - 335 35 31461 - - - - - - - - 340 40 31462 - - - - - - - - 350 50 31463 - - - - - - - - 355 55 31464 - - - - - - - - 365 65 31465 - - - - - - - - 370 70 31466 - - - - - - - - 380 80 31467 - - - - - - - - 385 85 31468 - - - - - - - - 395 95 31469} 31470do_execsql_test joinD-1072 { 31471 SELECT t1.*, t2.*, t3.*, t4.* 31472 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31473 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31474 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 31475 WHERE t2.x>0 31476 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31477} { 31478 30 130 230 330 130 30 230 30 330 30 31479 60 160 260 360 160 60 260 60 360 60 31480 90 190 290 390 190 90 290 90 390 90 31481} 31482do_execsql_test joinD-1073 { 31483 SELECT t1.*, t2.*, t3.*, t4.* 31484 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31485 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31486 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 31487 WHERE (t2.x>0 OR t2.x IS NULL) 31488 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31489} { 31490 15 115 215 315 - - 215 15 315 15 31491 30 130 230 330 130 30 230 30 330 30 31492 45 145 245 345 - - 245 45 345 45 31493 60 160 260 360 160 60 260 60 360 60 31494 75 175 275 375 - - 275 75 375 75 31495 90 190 290 390 190 90 290 90 390 90 31496 - - - - - - - - 300 0 31497 - - - - - - - - 305 5 31498 - - - - - - - - 310 10 31499 - - - - - - - - 320 20 31500 - - - - - - - - 325 25 31501 - - - - - - - - 335 35 31502 - - - - - - - - 340 40 31503 - - - - - - - - 350 50 31504 - - - - - - - - 355 55 31505 - - - - - - - - 365 65 31506 - - - - - - - - 370 70 31507 - - - - - - - - 380 80 31508 - - - - - - - - 385 85 31509 - - - - - - - - 395 95 31510} 31511do_execsql_test joinD-1074 { 31512 SELECT t1.*, t2.*, t3.*, t4.* 31513 FROM t1 FULL JOIN t2 ON true 31514 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31515 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 31516 WHERE t1.b=t2.b AND t2.x>0 31517 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31518} { 31519 30 130 230 330 130 30 230 30 330 30 31520 60 160 260 360 160 60 260 60 360 60 31521 90 190 290 390 190 90 290 90 390 90 31522} 31523do_execsql_test joinD-1075 { 31524 SELECT t1.*, t2.*, t3.*, t4.* 31525 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31526 RIGHT JOIN t3 ON t1.c=t3.c 31527 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 31528 WHERE t3.y>0 31529 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31530} { 31531 15 115 215 315 - - 215 15 315 15 31532 30 130 230 330 130 30 230 30 330 30 31533 45 145 245 345 - - 245 45 345 45 31534 60 160 260 360 160 60 260 60 360 60 31535 75 175 275 375 - - 275 75 375 75 31536 90 190 290 390 190 90 290 90 390 90 31537} 31538do_execsql_test joinD-1076 { 31539 SELECT t1.*, t2.*, t3.*, t4.* 31540 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31541 RIGHT JOIN t3 ON t1.c=t3.c 31542 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 31543 WHERE t3.y>0 OR t3.y IS NULL 31544 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31545} { 31546 15 115 215 315 - - 215 15 315 15 31547 30 130 230 330 130 30 230 30 330 30 31548 45 145 245 345 - - 245 45 345 45 31549 60 160 260 360 160 60 260 60 360 60 31550 75 175 275 375 - - 275 75 375 75 31551 90 190 290 390 190 90 290 90 390 90 31552 - - - - - - - - 300 0 31553 - - - - - - - - 305 5 31554 - - - - - - - - 310 10 31555 - - - - - - - - 320 20 31556 - - - - - - - - 325 25 31557 - - - - - - - - 335 35 31558 - - - - - - - - 340 40 31559 - - - - - - - - 350 50 31560 - - - - - - - - 355 55 31561 - - - - - - - - 365 65 31562 - - - - - - - - 370 70 31563 - - - - - - - - 380 80 31564 - - - - - - - - 385 85 31565 - - - - - - - - 395 95 31566} 31567do_execsql_test joinD-1077 { 31568 SELECT t1.*, t2.*, t3.*, t4.* 31569 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31570 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31571 RIGHT JOIN t4 ON t1.d=t4.d 31572 WHERE t4.z>0 31573 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31574} { 31575 15 115 215 315 - - 215 15 315 15 31576 30 130 230 330 130 30 230 30 330 30 31577 45 145 245 345 - - 245 45 345 45 31578 60 160 260 360 160 60 260 60 360 60 31579 75 175 275 375 - - 275 75 375 75 31580 90 190 290 390 190 90 290 90 390 90 31581 - - - - - - - - 305 5 31582 - - - - - - - - 310 10 31583 - - - - - - - - 320 20 31584 - - - - - - - - 325 25 31585 - - - - - - - - 335 35 31586 - - - - - - - - 340 40 31587 - - - - - - - - 350 50 31588 - - - - - - - - 355 55 31589 - - - - - - - - 365 65 31590 - - - - - - - - 370 70 31591 - - - - - - - - 380 80 31592 - - - - - - - - 385 85 31593 - - - - - - - - 395 95 31594} 31595do_execsql_test joinD-1078 { 31596 SELECT t1.*, t2.*, t3.*, t4.* 31597 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31598 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31599 RIGHT JOIN t4 ON t1.d=t4.d 31600 WHERE t4.z IS NULL OR t4.z>0 31601 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31602} { 31603 15 115 215 315 - - 215 15 315 15 31604 30 130 230 330 130 30 230 30 330 30 31605 45 145 245 345 - - 245 45 345 45 31606 60 160 260 360 160 60 260 60 360 60 31607 75 175 275 375 - - 275 75 375 75 31608 90 190 290 390 190 90 290 90 390 90 31609 - - - - - - - - 305 5 31610 - - - - - - - - 310 10 31611 - - - - - - - - 320 20 31612 - - - - - - - - 325 25 31613 - - - - - - - - 335 35 31614 - - - - - - - - 340 40 31615 - - - - - - - - 350 50 31616 - - - - - - - - 355 55 31617 - - - - - - - - 365 65 31618 - - - - - - - - 370 70 31619 - - - - - - - - 380 80 31620 - - - - - - - - 385 85 31621 - - - - - - - - 395 95 31622} 31623do_execsql_test joinD-1079 { 31624 SELECT t1.*, t2.*, t3.*, t4.* 31625 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31626 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31627 RIGHT JOIN t4 ON t1.d=t4.d 31628 WHERE t2.x>0 AND t4.z>0 31629 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31630} { 31631 30 130 230 330 130 30 230 30 330 30 31632 60 160 260 360 160 60 260 60 360 60 31633 90 190 290 390 190 90 290 90 390 90 31634} 31635do_execsql_test joinD-1080 { 31636 SELECT t1.*, t2.*, t3.*, t4.* 31637 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31638 RIGHT JOIN t3 ON t1.c=t3.c 31639 RIGHT JOIN t4 ON t1.d=t4.d 31640 WHERE t4.z>0 AND t3.y>0 31641 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31642} { 31643 15 115 215 315 - - 215 15 315 15 31644 30 130 230 330 130 30 230 30 330 30 31645 45 145 245 345 - - 245 45 345 45 31646 60 160 260 360 160 60 260 60 360 60 31647 75 175 275 375 - - 275 75 375 75 31648 90 190 290 390 190 90 290 90 390 90 31649} 31650do_execsql_test joinD-1081 { 31651 SELECT t1.*, t2.*, t3.*, t4.* 31652 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31653 RIGHT JOIN t3 ON t1.c=t3.c 31654 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 31655 WHERE t2.x>0 AND t3.y>0 31656 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31657} { 31658 30 130 230 330 130 30 230 30 330 30 31659 60 160 260 360 160 60 260 60 360 60 31660 90 190 290 390 190 90 290 90 390 90 31661} 31662do_execsql_test joinD-1082 { 31663 SELECT t1.*, t2.*, t3.*, t4.* 31664 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31665 RIGHT JOIN t3 ON t1.c=t3.c 31666 RIGHT JOIN t4 ON t1.d=t4.d 31667 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 31668 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31669} { 31670 30 130 230 330 130 30 230 30 330 30 31671 60 160 260 360 160 60 260 60 360 60 31672 90 190 290 390 190 90 290 90 390 90 31673} 31674do_execsql_test joinD-1083 { 31675 SELECT t1.*, t2.*, t3.*, t4.* 31676 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 31677 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 31678 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 31679 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31680} { 31681 15 115 215 315 - - 215 15 315 15 31682 30 130 230 330 130 30 230 30 330 30 31683 45 145 245 345 - - 245 45 345 45 31684 60 160 260 360 160 60 260 60 360 60 31685 75 175 275 375 - - 275 75 375 75 31686 90 190 290 390 190 90 290 90 390 90 31687 - - - - - - - - 300 0 31688 - - - - - - - - 305 5 31689 - - - - - - - - 310 10 31690 - - - - - - - - 320 20 31691 - - - - - - - - 325 25 31692 - - - - - - - - 335 35 31693 - - - - - - - - 340 40 31694 - - - - - - - - 350 50 31695 - - - - - - - - 355 55 31696 - - - - - - - - 365 65 31697 - - - - - - - - 370 70 31698 - - - - - - - - 380 80 31699 - - - - - - - - 385 85 31700 - - - - - - - - 395 95 31701} 31702do_execsql_test joinD-1084 { 31703 SELECT t1.*, t2.*, t3.*, t4.* 31704 FROM t1 FULL JOIN t2 ON t2.x>0 31705 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 31706 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 31707 WHERE t1.b = t2.b 31708 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31709} { 31710 30 130 230 330 130 30 230 30 330 30 31711 60 160 260 360 160 60 260 60 360 60 31712 90 190 290 390 190 90 290 90 390 90 31713} 31714do_execsql_test joinD-1085 { 31715 SELECT t1.*, t2.*, t3.*, t4.* 31716 FROM t1 FULL JOIN t2 ON t2.x>0 31717 RIGHT JOIN t3 ON t3.y>0 31718 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 31719 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 31720 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31721} { 31722 30 130 230 330 130 30 230 30 330 30 31723 60 160 260 360 160 60 260 60 360 60 31724 90 190 290 390 190 90 290 90 390 90 31725} 31726do_execsql_test joinD-1086 { 31727 SELECT t1.*, t2.*, t3.*, t4.* 31728 FROM t1 FULL JOIN t2 ON t2.x>0 31729 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 31730 RIGHT JOIN t4 ON t4.z>0 31731 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 31732 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31733} { 31734 30 130 230 330 130 30 230 30 330 30 31735 60 160 260 360 160 60 260 60 360 60 31736 90 190 290 390 190 90 290 90 390 90 31737} 31738do_execsql_test joinD-1087 { 31739 SELECT t1.*, t2.*, t3.*, t4.* 31740 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31741 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 31742 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 31743 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31744} { 31745 15 115 215 315 - - 215 15 315 15 31746 30 130 230 330 130 30 230 30 330 30 31747 45 145 245 345 - - 245 45 345 45 31748 60 160 260 360 160 60 260 60 360 60 31749 75 175 275 375 - - 275 75 375 75 31750 90 190 290 390 190 90 290 90 390 90 31751 - - - - - - - - 300 0 31752 - - - - - - - - 305 5 31753 - - - - - - - - 310 10 31754 - - - - - - - - 320 20 31755 - - - - - - - - 325 25 31756 - - - - - - - - 335 35 31757 - - - - - - - - 340 40 31758 - - - - - - - - 350 50 31759 - - - - - - - - 355 55 31760 - - - - - - - - 365 65 31761 - - - - - - - - 370 70 31762 - - - - - - - - 380 80 31763 - - - - - - - - 385 85 31764 - - - - - - - - 395 95 31765} 31766do_execsql_test joinD-1088 { 31767 SELECT t1.*, t2.*, t3.*, t4.* 31768 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31769 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31770 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 31771 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31772} { 31773 3 103 203 303 - - 203 3 - - 31774 6 106 206 306 106 6 206 6 - - 31775 9 109 209 309 - - 209 9 - - 31776 12 112 212 312 112 12 212 12 - - 31777 15 115 215 315 - - 215 15 315 15 31778 18 118 218 318 118 18 218 18 - - 31779 21 121 221 321 - - 221 21 - - 31780 24 124 224 324 124 24 224 24 - - 31781 27 127 227 327 - - 227 27 - - 31782 30 130 230 330 130 30 230 30 330 30 31783 33 133 233 333 - - 233 33 - - 31784 36 136 236 336 136 36 236 36 - - 31785 39 139 239 339 - - 239 39 - - 31786 42 142 242 342 142 42 242 42 - - 31787 45 145 245 345 - - 245 45 345 45 31788 48 148 248 348 148 48 248 48 - - 31789 51 151 251 351 - - 251 51 - - 31790 54 154 254 354 154 54 254 54 - - 31791 57 157 257 357 - - 257 57 - - 31792 60 160 260 360 160 60 260 60 360 60 31793 63 163 263 363 - - 263 63 - - 31794 66 166 266 366 166 66 266 66 - - 31795 69 169 269 369 - - 269 69 - - 31796 72 172 272 372 172 72 272 72 - - 31797 75 175 275 375 - - 275 75 375 75 31798 78 178 278 378 178 78 278 78 - - 31799 81 181 281 381 - - 281 81 - - 31800 84 184 284 384 184 84 284 84 - - 31801 87 187 287 387 - - 287 87 - - 31802 90 190 290 390 190 90 290 90 390 90 31803 93 193 293 393 - - 293 93 - - 31804 - - - - - - 200 0 - - 31805 - - - - - - - - 300 0 31806 - - - - - - - - 305 5 31807 - - - - - - - - 310 10 31808 - - - - - - - - 320 20 31809 - - - - - - - - 325 25 31810 - - - - - - - - 335 35 31811 - - - - - - - - 340 40 31812 - - - - - - - - 350 50 31813 - - - - - - - - 355 55 31814 - - - - - - - - 365 65 31815 - - - - - - - - 370 70 31816 - - - - - - - - 380 80 31817 - - - - - - - - 385 85 31818 - - - - - - - - 395 95 31819} 31820do_execsql_test joinD-1089 { 31821 SELECT t1.*, t2.*, t3.*, t4.* 31822 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31823 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31824 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 31825 WHERE t2.x>0 31826 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31827} { 31828 6 106 206 306 106 6 206 6 - - 31829 12 112 212 312 112 12 212 12 - - 31830 18 118 218 318 118 18 218 18 - - 31831 24 124 224 324 124 24 224 24 - - 31832 30 130 230 330 130 30 230 30 330 30 31833 36 136 236 336 136 36 236 36 - - 31834 42 142 242 342 142 42 242 42 - - 31835 48 148 248 348 148 48 248 48 - - 31836 54 154 254 354 154 54 254 54 - - 31837 60 160 260 360 160 60 260 60 360 60 31838 66 166 266 366 166 66 266 66 - - 31839 72 172 272 372 172 72 272 72 - - 31840 78 178 278 378 178 78 278 78 - - 31841 84 184 284 384 184 84 284 84 - - 31842 90 190 290 390 190 90 290 90 390 90 31843} 31844do_execsql_test joinD-1090 { 31845 SELECT t1.*, t2.*, t3.*, t4.* 31846 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31847 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31848 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 31849 WHERE (t2.x>0 OR t2.x IS NULL) 31850 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31851} { 31852 3 103 203 303 - - 203 3 - - 31853 6 106 206 306 106 6 206 6 - - 31854 9 109 209 309 - - 209 9 - - 31855 12 112 212 312 112 12 212 12 - - 31856 15 115 215 315 - - 215 15 315 15 31857 18 118 218 318 118 18 218 18 - - 31858 21 121 221 321 - - 221 21 - - 31859 24 124 224 324 124 24 224 24 - - 31860 27 127 227 327 - - 227 27 - - 31861 30 130 230 330 130 30 230 30 330 30 31862 33 133 233 333 - - 233 33 - - 31863 36 136 236 336 136 36 236 36 - - 31864 39 139 239 339 - - 239 39 - - 31865 42 142 242 342 142 42 242 42 - - 31866 45 145 245 345 - - 245 45 345 45 31867 48 148 248 348 148 48 248 48 - - 31868 51 151 251 351 - - 251 51 - - 31869 54 154 254 354 154 54 254 54 - - 31870 57 157 257 357 - - 257 57 - - 31871 60 160 260 360 160 60 260 60 360 60 31872 63 163 263 363 - - 263 63 - - 31873 66 166 266 366 166 66 266 66 - - 31874 69 169 269 369 - - 269 69 - - 31875 72 172 272 372 172 72 272 72 - - 31876 75 175 275 375 - - 275 75 375 75 31877 78 178 278 378 178 78 278 78 - - 31878 81 181 281 381 - - 281 81 - - 31879 84 184 284 384 184 84 284 84 - - 31880 87 187 287 387 - - 287 87 - - 31881 90 190 290 390 190 90 290 90 390 90 31882 93 193 293 393 - - 293 93 - - 31883 - - - - - - 200 0 - - 31884 - - - - - - - - 300 0 31885 - - - - - - - - 305 5 31886 - - - - - - - - 310 10 31887 - - - - - - - - 320 20 31888 - - - - - - - - 325 25 31889 - - - - - - - - 335 35 31890 - - - - - - - - 340 40 31891 - - - - - - - - 350 50 31892 - - - - - - - - 355 55 31893 - - - - - - - - 365 65 31894 - - - - - - - - 370 70 31895 - - - - - - - - 380 80 31896 - - - - - - - - 385 85 31897 - - - - - - - - 395 95 31898} 31899do_execsql_test joinD-1091 { 31900 SELECT t1.*, t2.*, t3.*, t4.* 31901 FROM t1 FULL JOIN t2 ON true 31902 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31903 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 31904 WHERE t1.b=t2.b AND t2.x>0 31905 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31906} { 31907 6 106 206 306 106 6 206 6 - - 31908 12 112 212 312 112 12 212 12 - - 31909 18 118 218 318 118 18 218 18 - - 31910 24 124 224 324 124 24 224 24 - - 31911 30 130 230 330 130 30 230 30 330 30 31912 36 136 236 336 136 36 236 36 - - 31913 42 142 242 342 142 42 242 42 - - 31914 48 148 248 348 148 48 248 48 - - 31915 54 154 254 354 154 54 254 54 - - 31916 60 160 260 360 160 60 260 60 360 60 31917 66 166 266 366 166 66 266 66 - - 31918 72 172 272 372 172 72 272 72 - - 31919 78 178 278 378 178 78 278 78 - - 31920 84 184 284 384 184 84 284 84 - - 31921 90 190 290 390 190 90 290 90 390 90 31922} 31923do_execsql_test joinD-1092 { 31924 SELECT t1.*, t2.*, t3.*, t4.* 31925 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31926 RIGHT JOIN t3 ON t1.c=t3.c 31927 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 31928 WHERE t3.y>0 31929 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31930} { 31931 3 103 203 303 - - 203 3 - - 31932 6 106 206 306 106 6 206 6 - - 31933 9 109 209 309 - - 209 9 - - 31934 12 112 212 312 112 12 212 12 - - 31935 15 115 215 315 - - 215 15 315 15 31936 18 118 218 318 118 18 218 18 - - 31937 21 121 221 321 - - 221 21 - - 31938 24 124 224 324 124 24 224 24 - - 31939 27 127 227 327 - - 227 27 - - 31940 30 130 230 330 130 30 230 30 330 30 31941 33 133 233 333 - - 233 33 - - 31942 36 136 236 336 136 36 236 36 - - 31943 39 139 239 339 - - 239 39 - - 31944 42 142 242 342 142 42 242 42 - - 31945 45 145 245 345 - - 245 45 345 45 31946 48 148 248 348 148 48 248 48 - - 31947 51 151 251 351 - - 251 51 - - 31948 54 154 254 354 154 54 254 54 - - 31949 57 157 257 357 - - 257 57 - - 31950 60 160 260 360 160 60 260 60 360 60 31951 63 163 263 363 - - 263 63 - - 31952 66 166 266 366 166 66 266 66 - - 31953 69 169 269 369 - - 269 69 - - 31954 72 172 272 372 172 72 272 72 - - 31955 75 175 275 375 - - 275 75 375 75 31956 78 178 278 378 178 78 278 78 - - 31957 81 181 281 381 - - 281 81 - - 31958 84 184 284 384 184 84 284 84 - - 31959 87 187 287 387 - - 287 87 - - 31960 90 190 290 390 190 90 290 90 390 90 31961 93 193 293 393 - - 293 93 - - 31962} 31963do_execsql_test joinD-1093 { 31964 SELECT t1.*, t2.*, t3.*, t4.* 31965 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31966 RIGHT JOIN t3 ON t1.c=t3.c 31967 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 31968 WHERE t3.y>0 OR t3.y IS NULL 31969 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31970} { 31971 3 103 203 303 - - 203 3 - - 31972 6 106 206 306 106 6 206 6 - - 31973 9 109 209 309 - - 209 9 - - 31974 12 112 212 312 112 12 212 12 - - 31975 15 115 215 315 - - 215 15 315 15 31976 18 118 218 318 118 18 218 18 - - 31977 21 121 221 321 - - 221 21 - - 31978 24 124 224 324 124 24 224 24 - - 31979 27 127 227 327 - - 227 27 - - 31980 30 130 230 330 130 30 230 30 330 30 31981 33 133 233 333 - - 233 33 - - 31982 36 136 236 336 136 36 236 36 - - 31983 39 139 239 339 - - 239 39 - - 31984 42 142 242 342 142 42 242 42 - - 31985 45 145 245 345 - - 245 45 345 45 31986 48 148 248 348 148 48 248 48 - - 31987 51 151 251 351 - - 251 51 - - 31988 54 154 254 354 154 54 254 54 - - 31989 57 157 257 357 - - 257 57 - - 31990 60 160 260 360 160 60 260 60 360 60 31991 63 163 263 363 - - 263 63 - - 31992 66 166 266 366 166 66 266 66 - - 31993 69 169 269 369 - - 269 69 - - 31994 72 172 272 372 172 72 272 72 - - 31995 75 175 275 375 - - 275 75 375 75 31996 78 178 278 378 178 78 278 78 - - 31997 81 181 281 381 - - 281 81 - - 31998 84 184 284 384 184 84 284 84 - - 31999 87 187 287 387 - - 287 87 - - 32000 90 190 290 390 190 90 290 90 390 90 32001 93 193 293 393 - - 293 93 - - 32002 - - - - - - - - 300 0 32003 - - - - - - - - 305 5 32004 - - - - - - - - 310 10 32005 - - - - - - - - 320 20 32006 - - - - - - - - 325 25 32007 - - - - - - - - 335 35 32008 - - - - - - - - 340 40 32009 - - - - - - - - 350 50 32010 - - - - - - - - 355 55 32011 - - - - - - - - 365 65 32012 - - - - - - - - 370 70 32013 - - - - - - - - 380 80 32014 - - - - - - - - 385 85 32015 - - - - - - - - 395 95 32016} 32017do_execsql_test joinD-1094 { 32018 SELECT t1.*, t2.*, t3.*, t4.* 32019 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32020 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 32021 FULL JOIN t4 ON t1.d=t4.d 32022 WHERE t4.z>0 32023 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32024} { 32025 15 115 215 315 - - 215 15 315 15 32026 30 130 230 330 130 30 230 30 330 30 32027 45 145 245 345 - - 245 45 345 45 32028 60 160 260 360 160 60 260 60 360 60 32029 75 175 275 375 - - 275 75 375 75 32030 90 190 290 390 190 90 290 90 390 90 32031 - - - - - - - - 305 5 32032 - - - - - - - - 310 10 32033 - - - - - - - - 320 20 32034 - - - - - - - - 325 25 32035 - - - - - - - - 335 35 32036 - - - - - - - - 340 40 32037 - - - - - - - - 350 50 32038 - - - - - - - - 355 55 32039 - - - - - - - - 365 65 32040 - - - - - - - - 370 70 32041 - - - - - - - - 380 80 32042 - - - - - - - - 385 85 32043 - - - - - - - - 395 95 32044} 32045do_execsql_test joinD-1095 { 32046 SELECT t1.*, t2.*, t3.*, t4.* 32047 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32048 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 32049 FULL JOIN t4 ON t1.d=t4.d 32050 WHERE t4.z IS NULL OR t4.z>0 32051 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32052} { 32053 3 103 203 303 - - 203 3 - - 32054 6 106 206 306 106 6 206 6 - - 32055 9 109 209 309 - - 209 9 - - 32056 12 112 212 312 112 12 212 12 - - 32057 15 115 215 315 - - 215 15 315 15 32058 18 118 218 318 118 18 218 18 - - 32059 21 121 221 321 - - 221 21 - - 32060 24 124 224 324 124 24 224 24 - - 32061 27 127 227 327 - - 227 27 - - 32062 30 130 230 330 130 30 230 30 330 30 32063 33 133 233 333 - - 233 33 - - 32064 36 136 236 336 136 36 236 36 - - 32065 39 139 239 339 - - 239 39 - - 32066 42 142 242 342 142 42 242 42 - - 32067 45 145 245 345 - - 245 45 345 45 32068 48 148 248 348 148 48 248 48 - - 32069 51 151 251 351 - - 251 51 - - 32070 54 154 254 354 154 54 254 54 - - 32071 57 157 257 357 - - 257 57 - - 32072 60 160 260 360 160 60 260 60 360 60 32073 63 163 263 363 - - 263 63 - - 32074 66 166 266 366 166 66 266 66 - - 32075 69 169 269 369 - - 269 69 - - 32076 72 172 272 372 172 72 272 72 - - 32077 75 175 275 375 - - 275 75 375 75 32078 78 178 278 378 178 78 278 78 - - 32079 81 181 281 381 - - 281 81 - - 32080 84 184 284 384 184 84 284 84 - - 32081 87 187 287 387 - - 287 87 - - 32082 90 190 290 390 190 90 290 90 390 90 32083 93 193 293 393 - - 293 93 - - 32084 - - - - - - 200 0 - - 32085 - - - - - - - - 305 5 32086 - - - - - - - - 310 10 32087 - - - - - - - - 320 20 32088 - - - - - - - - 325 25 32089 - - - - - - - - 335 35 32090 - - - - - - - - 340 40 32091 - - - - - - - - 350 50 32092 - - - - - - - - 355 55 32093 - - - - - - - - 365 65 32094 - - - - - - - - 370 70 32095 - - - - - - - - 380 80 32096 - - - - - - - - 385 85 32097 - - - - - - - - 395 95 32098} 32099do_execsql_test joinD-1096 { 32100 SELECT t1.*, t2.*, t3.*, t4.* 32101 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32102 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 32103 FULL JOIN t4 ON t1.d=t4.d 32104 WHERE t2.x>0 AND t4.z>0 32105 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32106} { 32107 30 130 230 330 130 30 230 30 330 30 32108 60 160 260 360 160 60 260 60 360 60 32109 90 190 290 390 190 90 290 90 390 90 32110} 32111do_execsql_test joinD-1097 { 32112 SELECT t1.*, t2.*, t3.*, t4.* 32113 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32114 RIGHT JOIN t3 ON t1.c=t3.c 32115 FULL JOIN t4 ON t1.d=t4.d 32116 WHERE t4.z>0 AND t3.y>0 32117 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32118} { 32119 15 115 215 315 - - 215 15 315 15 32120 30 130 230 330 130 30 230 30 330 30 32121 45 145 245 345 - - 245 45 345 45 32122 60 160 260 360 160 60 260 60 360 60 32123 75 175 275 375 - - 275 75 375 75 32124 90 190 290 390 190 90 290 90 390 90 32125} 32126do_execsql_test joinD-1098 { 32127 SELECT t1.*, t2.*, t3.*, t4.* 32128 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32129 RIGHT JOIN t3 ON t1.c=t3.c 32130 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 32131 WHERE t2.x>0 AND t3.y>0 32132 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32133} { 32134 6 106 206 306 106 6 206 6 - - 32135 12 112 212 312 112 12 212 12 - - 32136 18 118 218 318 118 18 218 18 - - 32137 24 124 224 324 124 24 224 24 - - 32138 30 130 230 330 130 30 230 30 330 30 32139 36 136 236 336 136 36 236 36 - - 32140 42 142 242 342 142 42 242 42 - - 32141 48 148 248 348 148 48 248 48 - - 32142 54 154 254 354 154 54 254 54 - - 32143 60 160 260 360 160 60 260 60 360 60 32144 66 166 266 366 166 66 266 66 - - 32145 72 172 272 372 172 72 272 72 - - 32146 78 178 278 378 178 78 278 78 - - 32147 84 184 284 384 184 84 284 84 - - 32148 90 190 290 390 190 90 290 90 390 90 32149} 32150do_execsql_test joinD-1099 { 32151 SELECT t1.*, t2.*, t3.*, t4.* 32152 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32153 RIGHT JOIN t3 ON t1.c=t3.c 32154 FULL JOIN t4 ON t1.d=t4.d 32155 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 32156 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32157} { 32158 30 130 230 330 130 30 230 30 330 30 32159 60 160 260 360 160 60 260 60 360 60 32160 90 190 290 390 190 90 290 90 390 90 32161} 32162do_execsql_test joinD-1100 { 32163 SELECT t1.*, t2.*, t3.*, t4.* 32164 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 32165 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 32166 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 32167 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32168} { 32169 3 103 203 303 - - 203 3 - - 32170 6 106 206 306 106 6 206 6 - - 32171 9 109 209 309 - - 209 9 - - 32172 12 112 212 312 112 12 212 12 - - 32173 15 115 215 315 - - 215 15 315 15 32174 18 118 218 318 118 18 218 18 - - 32175 21 121 221 321 - - 221 21 - - 32176 24 124 224 324 124 24 224 24 - - 32177 27 127 227 327 - - 227 27 - - 32178 30 130 230 330 130 30 230 30 330 30 32179 33 133 233 333 - - 233 33 - - 32180 36 136 236 336 136 36 236 36 - - 32181 39 139 239 339 - - 239 39 - - 32182 42 142 242 342 142 42 242 42 - - 32183 45 145 245 345 - - 245 45 345 45 32184 48 148 248 348 148 48 248 48 - - 32185 51 151 251 351 - - 251 51 - - 32186 54 154 254 354 154 54 254 54 - - 32187 57 157 257 357 - - 257 57 - - 32188 60 160 260 360 160 60 260 60 360 60 32189 63 163 263 363 - - 263 63 - - 32190 66 166 266 366 166 66 266 66 - - 32191 69 169 269 369 - - 269 69 - - 32192 72 172 272 372 172 72 272 72 - - 32193 75 175 275 375 - - 275 75 375 75 32194 78 178 278 378 178 78 278 78 - - 32195 81 181 281 381 - - 281 81 - - 32196 84 184 284 384 184 84 284 84 - - 32197 87 187 287 387 - - 287 87 - - 32198 90 190 290 390 190 90 290 90 390 90 32199 93 193 293 393 - - 293 93 - - 32200 - - - - - - 200 0 - - 32201 - - - - - - - - 300 0 32202 - - - - - - - - 305 5 32203 - - - - - - - - 310 10 32204 - - - - - - - - 320 20 32205 - - - - - - - - 325 25 32206 - - - - - - - - 335 35 32207 - - - - - - - - 340 40 32208 - - - - - - - - 350 50 32209 - - - - - - - - 355 55 32210 - - - - - - - - 365 65 32211 - - - - - - - - 370 70 32212 - - - - - - - - 380 80 32213 - - - - - - - - 385 85 32214 - - - - - - - - 395 95 32215} 32216do_execsql_test joinD-1101 { 32217 SELECT t1.*, t2.*, t3.*, t4.* 32218 FROM t1 FULL JOIN t2 ON t2.x>0 32219 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 32220 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 32221 WHERE t1.b = t2.b 32222 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32223} { 32224 6 106 206 306 106 6 206 6 - - 32225 12 112 212 312 112 12 212 12 - - 32226 18 118 218 318 118 18 218 18 - - 32227 24 124 224 324 124 24 224 24 - - 32228 30 130 230 330 130 30 230 30 330 30 32229 36 136 236 336 136 36 236 36 - - 32230 42 142 242 342 142 42 242 42 - - 32231 48 148 248 348 148 48 248 48 - - 32232 54 154 254 354 154 54 254 54 - - 32233 60 160 260 360 160 60 260 60 360 60 32234 66 166 266 366 166 66 266 66 - - 32235 72 172 272 372 172 72 272 72 - - 32236 78 178 278 378 178 78 278 78 - - 32237 84 184 284 384 184 84 284 84 - - 32238 90 190 290 390 190 90 290 90 390 90 32239} 32240do_execsql_test joinD-1102 { 32241 SELECT t1.*, t2.*, t3.*, t4.* 32242 FROM t1 FULL JOIN t2 ON t2.x>0 32243 RIGHT JOIN t3 ON t3.y>0 32244 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 32245 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 32246 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32247} { 32248 6 106 206 306 106 6 206 6 - - 32249 12 112 212 312 112 12 212 12 - - 32250 18 118 218 318 118 18 218 18 - - 32251 24 124 224 324 124 24 224 24 - - 32252 30 130 230 330 130 30 230 30 330 30 32253 36 136 236 336 136 36 236 36 - - 32254 42 142 242 342 142 42 242 42 - - 32255 48 148 248 348 148 48 248 48 - - 32256 54 154 254 354 154 54 254 54 - - 32257 60 160 260 360 160 60 260 60 360 60 32258 66 166 266 366 166 66 266 66 - - 32259 72 172 272 372 172 72 272 72 - - 32260 78 178 278 378 178 78 278 78 - - 32261 84 184 284 384 184 84 284 84 - - 32262 90 190 290 390 190 90 290 90 390 90 32263} 32264do_execsql_test joinD-1103 { 32265 SELECT t1.*, t2.*, t3.*, t4.* 32266 FROM t1 FULL JOIN t2 ON t2.x>0 32267 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 32268 FULL JOIN t4 ON t4.z>0 32269 WHERE t1.b = t2.b AND t1.d = t4.d 32270 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32271} { 32272 30 130 230 330 130 30 230 30 330 30 32273 60 160 260 360 160 60 260 60 360 60 32274 90 190 290 390 190 90 290 90 390 90 32275} 32276do_execsql_test joinD-1104 { 32277 SELECT t1.*, t2.*, t3.*, t4.* 32278 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32279 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 32280 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 32281 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32282} { 32283 3 103 203 303 - - 203 3 - - 32284 6 106 206 306 106 6 206 6 - - 32285 9 109 209 309 - - 209 9 - - 32286 12 112 212 312 112 12 212 12 - - 32287 15 115 215 315 - - 215 15 315 15 32288 18 118 218 318 118 18 218 18 - - 32289 21 121 221 321 - - 221 21 - - 32290 24 124 224 324 124 24 224 24 - - 32291 27 127 227 327 - - 227 27 - - 32292 30 130 230 330 130 30 230 30 330 30 32293 33 133 233 333 - - 233 33 - - 32294 36 136 236 336 136 36 236 36 - - 32295 39 139 239 339 - - 239 39 - - 32296 42 142 242 342 142 42 242 42 - - 32297 45 145 245 345 - - 245 45 345 45 32298 48 148 248 348 148 48 248 48 - - 32299 51 151 251 351 - - 251 51 - - 32300 54 154 254 354 154 54 254 54 - - 32301 57 157 257 357 - - 257 57 - - 32302 60 160 260 360 160 60 260 60 360 60 32303 63 163 263 363 - - 263 63 - - 32304 66 166 266 366 166 66 266 66 - - 32305 69 169 269 369 - - 269 69 - - 32306 72 172 272 372 172 72 272 72 - - 32307 75 175 275 375 - - 275 75 375 75 32308 78 178 278 378 178 78 278 78 - - 32309 81 181 281 381 - - 281 81 - - 32310 84 184 284 384 184 84 284 84 - - 32311 87 187 287 387 - - 287 87 - - 32312 90 190 290 390 190 90 290 90 390 90 32313 93 193 293 393 - - 293 93 - - 32314 - - - - - - 200 0 - - 32315 - - - - - - - - 300 0 32316 - - - - - - - - 305 5 32317 - - - - - - - - 310 10 32318 - - - - - - - - 320 20 32319 - - - - - - - - 325 25 32320 - - - - - - - - 335 35 32321 - - - - - - - - 340 40 32322 - - - - - - - - 350 50 32323 - - - - - - - - 355 55 32324 - - - - - - - - 365 65 32325 - - - - - - - - 370 70 32326 - - - - - - - - 380 80 32327 - - - - - - - - 385 85 32328 - - - - - - - - 395 95 32329} 32330do_execsql_test joinD-1105 { 32331 SELECT t1.*, t2.*, t3.*, t4.* 32332 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32333 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32334 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 32335 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32336} { 32337 5 105 205 305 - - - - 305 5 32338 10 110 210 310 110 10 - - 310 10 32339 15 115 215 315 - - 215 15 315 15 32340 20 120 220 320 120 20 - - 320 20 32341 25 125 225 325 - - - - 325 25 32342 30 130 230 330 130 30 230 30 330 30 32343 35 135 235 335 - - - - 335 35 32344 40 140 240 340 140 40 - - 340 40 32345 45 145 245 345 - - 245 45 345 45 32346 50 150 250 350 150 50 - - 350 50 32347 55 155 255 355 - - - - 355 55 32348 60 160 260 360 160 60 260 60 360 60 32349 65 165 265 365 - - - - 365 65 32350 70 170 270 370 170 70 - - 370 70 32351 75 175 275 375 - - 275 75 375 75 32352 80 180 280 380 180 80 - - 380 80 32353 85 185 285 385 - - - - 385 85 32354 90 190 290 390 190 90 290 90 390 90 32355 95 195 295 395 - - - - 395 95 32356} 32357do_execsql_test joinD-1106 { 32358 SELECT t1.*, t2.*, t3.*, t4.* 32359 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32360 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32361 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 32362 WHERE t2.x>0 32363 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32364} { 32365 10 110 210 310 110 10 - - 310 10 32366 20 120 220 320 120 20 - - 320 20 32367 30 130 230 330 130 30 230 30 330 30 32368 40 140 240 340 140 40 - - 340 40 32369 50 150 250 350 150 50 - - 350 50 32370 60 160 260 360 160 60 260 60 360 60 32371 70 170 270 370 170 70 - - 370 70 32372 80 180 280 380 180 80 - - 380 80 32373 90 190 290 390 190 90 290 90 390 90 32374} 32375do_execsql_test joinD-1107 { 32376 SELECT t1.*, t2.*, t3.*, t4.* 32377 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32378 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32379 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 32380 WHERE (t2.x>0 OR t2.x IS NULL) 32381 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32382} { 32383 5 105 205 305 - - - - 305 5 32384 10 110 210 310 110 10 - - 310 10 32385 15 115 215 315 - - 215 15 315 15 32386 20 120 220 320 120 20 - - 320 20 32387 25 125 225 325 - - - - 325 25 32388 30 130 230 330 130 30 230 30 330 30 32389 35 135 235 335 - - - - 335 35 32390 40 140 240 340 140 40 - - 340 40 32391 45 145 245 345 - - 245 45 345 45 32392 50 150 250 350 150 50 - - 350 50 32393 55 155 255 355 - - - - 355 55 32394 60 160 260 360 160 60 260 60 360 60 32395 65 165 265 365 - - - - 365 65 32396 70 170 270 370 170 70 - - 370 70 32397 75 175 275 375 - - 275 75 375 75 32398 80 180 280 380 180 80 - - 380 80 32399 85 185 285 385 - - - - 385 85 32400 90 190 290 390 190 90 290 90 390 90 32401 95 195 295 395 - - - - 395 95 32402} 32403do_execsql_test joinD-1108 { 32404 SELECT t1.*, t2.*, t3.*, t4.* 32405 FROM t1 FULL JOIN t2 ON true 32406 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32407 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 32408 WHERE t1.b=t2.b AND t2.x>0 32409 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32410} { 32411 10 110 210 310 110 10 - - 310 10 32412 20 120 220 320 120 20 - - 320 20 32413 30 130 230 330 130 30 230 30 330 30 32414 40 140 240 340 140 40 - - 340 40 32415 50 150 250 350 150 50 - - 350 50 32416 60 160 260 360 160 60 260 60 360 60 32417 70 170 270 370 170 70 - - 370 70 32418 80 180 280 380 180 80 - - 380 80 32419 90 190 290 390 190 90 290 90 390 90 32420} 32421do_execsql_test joinD-1109 { 32422 SELECT t1.*, t2.*, t3.*, t4.* 32423 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32424 FULL JOIN t3 ON t1.c=t3.c 32425 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 32426 WHERE t3.y>0 32427 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32428} { 32429 15 115 215 315 - - 215 15 315 15 32430 30 130 230 330 130 30 230 30 330 30 32431 45 145 245 345 - - 245 45 345 45 32432 60 160 260 360 160 60 260 60 360 60 32433 75 175 275 375 - - 275 75 375 75 32434 90 190 290 390 190 90 290 90 390 90 32435} 32436do_execsql_test joinD-1110 { 32437 SELECT t1.*, t2.*, t3.*, t4.* 32438 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32439 FULL JOIN t3 ON t1.c=t3.c 32440 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 32441 WHERE t3.y>0 OR t3.y IS NULL 32442 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32443} { 32444 5 105 205 305 - - - - 305 5 32445 10 110 210 310 110 10 - - 310 10 32446 15 115 215 315 - - 215 15 315 15 32447 20 120 220 320 120 20 - - 320 20 32448 25 125 225 325 - - - - 325 25 32449 30 130 230 330 130 30 230 30 330 30 32450 35 135 235 335 - - - - 335 35 32451 40 140 240 340 140 40 - - 340 40 32452 45 145 245 345 - - 245 45 345 45 32453 50 150 250 350 150 50 - - 350 50 32454 55 155 255 355 - - - - 355 55 32455 60 160 260 360 160 60 260 60 360 60 32456 65 165 265 365 - - - - 365 65 32457 70 170 270 370 170 70 - - 370 70 32458 75 175 275 375 - - 275 75 375 75 32459 80 180 280 380 180 80 - - 380 80 32460 85 185 285 385 - - - - 385 85 32461 90 190 290 390 190 90 290 90 390 90 32462 95 195 295 395 - - - - 395 95 32463} 32464do_execsql_test joinD-1111 { 32465 SELECT t1.*, t2.*, t3.*, t4.* 32466 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32467 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32468 INNER JOIN t4 ON t1.d=t4.d 32469 WHERE t4.z>0 32470 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32471} { 32472 5 105 205 305 - - - - 305 5 32473 10 110 210 310 110 10 - - 310 10 32474 15 115 215 315 - - 215 15 315 15 32475 20 120 220 320 120 20 - - 320 20 32476 25 125 225 325 - - - - 325 25 32477 30 130 230 330 130 30 230 30 330 30 32478 35 135 235 335 - - - - 335 35 32479 40 140 240 340 140 40 - - 340 40 32480 45 145 245 345 - - 245 45 345 45 32481 50 150 250 350 150 50 - - 350 50 32482 55 155 255 355 - - - - 355 55 32483 60 160 260 360 160 60 260 60 360 60 32484 65 165 265 365 - - - - 365 65 32485 70 170 270 370 170 70 - - 370 70 32486 75 175 275 375 - - 275 75 375 75 32487 80 180 280 380 180 80 - - 380 80 32488 85 185 285 385 - - - - 385 85 32489 90 190 290 390 190 90 290 90 390 90 32490 95 195 295 395 - - - - 395 95 32491} 32492do_execsql_test joinD-1112 { 32493 SELECT t1.*, t2.*, t3.*, t4.* 32494 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32495 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32496 INNER JOIN t4 ON t1.d=t4.d 32497 WHERE t4.z IS NULL OR t4.z>0 32498 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32499} { 32500 5 105 205 305 - - - - 305 5 32501 10 110 210 310 110 10 - - 310 10 32502 15 115 215 315 - - 215 15 315 15 32503 20 120 220 320 120 20 - - 320 20 32504 25 125 225 325 - - - - 325 25 32505 30 130 230 330 130 30 230 30 330 30 32506 35 135 235 335 - - - - 335 35 32507 40 140 240 340 140 40 - - 340 40 32508 45 145 245 345 - - 245 45 345 45 32509 50 150 250 350 150 50 - - 350 50 32510 55 155 255 355 - - - - 355 55 32511 60 160 260 360 160 60 260 60 360 60 32512 65 165 265 365 - - - - 365 65 32513 70 170 270 370 170 70 - - 370 70 32514 75 175 275 375 - - 275 75 375 75 32515 80 180 280 380 180 80 - - 380 80 32516 85 185 285 385 - - - - 385 85 32517 90 190 290 390 190 90 290 90 390 90 32518 95 195 295 395 - - - - 395 95 32519} 32520do_execsql_test joinD-1113 { 32521 SELECT t1.*, t2.*, t3.*, t4.* 32522 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32523 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32524 INNER JOIN t4 ON t1.d=t4.d 32525 WHERE t2.x>0 AND t4.z>0 32526 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32527} { 32528 10 110 210 310 110 10 - - 310 10 32529 20 120 220 320 120 20 - - 320 20 32530 30 130 230 330 130 30 230 30 330 30 32531 40 140 240 340 140 40 - - 340 40 32532 50 150 250 350 150 50 - - 350 50 32533 60 160 260 360 160 60 260 60 360 60 32534 70 170 270 370 170 70 - - 370 70 32535 80 180 280 380 180 80 - - 380 80 32536 90 190 290 390 190 90 290 90 390 90 32537} 32538do_execsql_test joinD-1114 { 32539 SELECT t1.*, t2.*, t3.*, t4.* 32540 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32541 FULL JOIN t3 ON t1.c=t3.c 32542 INNER JOIN t4 ON t1.d=t4.d 32543 WHERE t4.z>0 AND t3.y>0 32544 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32545} { 32546 15 115 215 315 - - 215 15 315 15 32547 30 130 230 330 130 30 230 30 330 30 32548 45 145 245 345 - - 245 45 345 45 32549 60 160 260 360 160 60 260 60 360 60 32550 75 175 275 375 - - 275 75 375 75 32551 90 190 290 390 190 90 290 90 390 90 32552} 32553do_execsql_test joinD-1115 { 32554 SELECT t1.*, t2.*, t3.*, t4.* 32555 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32556 FULL JOIN t3 ON t1.c=t3.c 32557 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 32558 WHERE t2.x>0 AND t3.y>0 32559 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32560} { 32561 30 130 230 330 130 30 230 30 330 30 32562 60 160 260 360 160 60 260 60 360 60 32563 90 190 290 390 190 90 290 90 390 90 32564} 32565do_execsql_test joinD-1116 { 32566 SELECT t1.*, t2.*, t3.*, t4.* 32567 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32568 FULL JOIN t3 ON t1.c=t3.c 32569 INNER JOIN t4 ON t1.d=t4.d 32570 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 32571 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32572} { 32573 30 130 230 330 130 30 230 30 330 30 32574 60 160 260 360 160 60 260 60 360 60 32575 90 190 290 390 190 90 290 90 390 90 32576} 32577do_execsql_test joinD-1117 { 32578 SELECT t1.*, t2.*, t3.*, t4.* 32579 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 32580 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 32581 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 32582 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32583} { 32584 5 105 205 305 - - - - 305 5 32585 10 110 210 310 110 10 - - 310 10 32586 15 115 215 315 - - 215 15 315 15 32587 20 120 220 320 120 20 - - 320 20 32588 25 125 225 325 - - - - 325 25 32589 30 130 230 330 130 30 230 30 330 30 32590 35 135 235 335 - - - - 335 35 32591 40 140 240 340 140 40 - - 340 40 32592 45 145 245 345 - - 245 45 345 45 32593 50 150 250 350 150 50 - - 350 50 32594 55 155 255 355 - - - - 355 55 32595 60 160 260 360 160 60 260 60 360 60 32596 65 165 265 365 - - - - 365 65 32597 70 170 270 370 170 70 - - 370 70 32598 75 175 275 375 - - 275 75 375 75 32599 80 180 280 380 180 80 - - 380 80 32600 85 185 285 385 - - - - 385 85 32601 90 190 290 390 190 90 290 90 390 90 32602 95 195 295 395 - - - - 395 95 32603} 32604do_execsql_test joinD-1118 { 32605 SELECT t1.*, t2.*, t3.*, t4.* 32606 FROM t1 FULL JOIN t2 ON t2.x>0 32607 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 32608 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 32609 WHERE t1.b = t2.b 32610 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32611} { 32612 10 110 210 310 110 10 - - 310 10 32613 20 120 220 320 120 20 - - 320 20 32614 30 130 230 330 130 30 230 30 330 30 32615 40 140 240 340 140 40 - - 340 40 32616 50 150 250 350 150 50 - - 350 50 32617 60 160 260 360 160 60 260 60 360 60 32618 70 170 270 370 170 70 - - 370 70 32619 80 180 280 380 180 80 - - 380 80 32620 90 190 290 390 190 90 290 90 390 90 32621} 32622do_execsql_test joinD-1119 { 32623 SELECT t1.*, t2.*, t3.*, t4.* 32624 FROM t1 FULL JOIN t2 ON t2.x>0 32625 FULL JOIN t3 ON t3.y>0 32626 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 32627 WHERE t1.b = t2.b AND t1.c = t3.c 32628 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32629} { 32630 30 130 230 330 130 30 230 30 330 30 32631 60 160 260 360 160 60 260 60 360 60 32632 90 190 290 390 190 90 290 90 390 90 32633} 32634do_execsql_test joinD-1120 { 32635 SELECT t1.*, t2.*, t3.*, t4.* 32636 FROM t1 FULL JOIN t2 ON t2.x>0 32637 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 32638 INNER JOIN t4 ON t4.z>0 32639 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 32640 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32641} { 32642 10 110 210 310 110 10 - - 310 10 32643 20 120 220 320 120 20 - - 320 20 32644 30 130 230 330 130 30 230 30 330 30 32645 40 140 240 340 140 40 - - 340 40 32646 50 150 250 350 150 50 - - 350 50 32647 60 160 260 360 160 60 260 60 360 60 32648 70 170 270 370 170 70 - - 370 70 32649 80 180 280 380 180 80 - - 380 80 32650 90 190 290 390 190 90 290 90 390 90 32651} 32652do_execsql_test joinD-1121 { 32653 SELECT t1.*, t2.*, t3.*, t4.* 32654 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32655 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32656 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 32657 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32658} { 32659 0 100 200 300 - - - - - - 32660 1 101 201 301 - - - - - - 32661 2 102 202 302 102 2 - - - - 32662 3 103 203 303 - - 203 3 - - 32663 4 104 204 304 104 4 - - - - 32664 5 105 205 305 - - - - 305 5 32665 6 106 206 306 106 6 206 6 - - 32666 7 107 207 307 - - - - - - 32667 8 108 208 308 108 8 - - - - 32668 9 109 209 309 - - 209 9 - - 32669 10 110 210 310 110 10 - - 310 10 32670 11 111 211 311 - - - - - - 32671 12 112 212 312 112 12 212 12 - - 32672 13 113 213 313 - - - - - - 32673 14 114 214 314 114 14 - - - - 32674 15 115 215 315 - - 215 15 315 15 32675 16 116 216 316 116 16 - - - - 32676 17 117 217 317 - - - - - - 32677 18 118 218 318 118 18 218 18 - - 32678 19 119 219 319 - - - - - - 32679 20 120 220 320 120 20 - - 320 20 32680 21 121 221 321 - - 221 21 - - 32681 22 122 222 322 122 22 - - - - 32682 23 123 223 323 - - - - - - 32683 24 124 224 324 124 24 224 24 - - 32684 25 125 225 325 - - - - 325 25 32685 26 126 226 326 126 26 - - - - 32686 27 127 227 327 - - 227 27 - - 32687 28 128 228 328 128 28 - - - - 32688 29 129 229 329 - - - - - - 32689 30 130 230 330 130 30 230 30 330 30 32690 31 131 231 331 - - - - - - 32691 32 132 232 332 132 32 - - - - 32692 33 133 233 333 - - 233 33 - - 32693 34 134 234 334 134 34 - - - - 32694 35 135 235 335 - - - - 335 35 32695 36 136 236 336 136 36 236 36 - - 32696 37 137 237 337 - - - - - - 32697 38 138 238 338 138 38 - - - - 32698 39 139 239 339 - - 239 39 - - 32699 40 140 240 340 140 40 - - 340 40 32700 41 141 241 341 - - - - - - 32701 42 142 242 342 142 42 242 42 - - 32702 43 143 243 343 - - - - - - 32703 44 144 244 344 144 44 - - - - 32704 45 145 245 345 - - 245 45 345 45 32705 46 146 246 346 146 46 - - - - 32706 47 147 247 347 - - - - - - 32707 48 148 248 348 148 48 248 48 - - 32708 49 149 249 349 - - - - - - 32709 50 150 250 350 150 50 - - 350 50 32710 51 151 251 351 - - 251 51 - - 32711 52 152 252 352 152 52 - - - - 32712 53 153 253 353 - - - - - - 32713 54 154 254 354 154 54 254 54 - - 32714 55 155 255 355 - - - - 355 55 32715 56 156 256 356 156 56 - - - - 32716 57 157 257 357 - - 257 57 - - 32717 58 158 258 358 158 58 - - - - 32718 59 159 259 359 - - - - - - 32719 60 160 260 360 160 60 260 60 360 60 32720 61 161 261 361 - - - - - - 32721 62 162 262 362 162 62 - - - - 32722 63 163 263 363 - - 263 63 - - 32723 64 164 264 364 164 64 - - - - 32724 65 165 265 365 - - - - 365 65 32725 66 166 266 366 166 66 266 66 - - 32726 67 167 267 367 - - - - - - 32727 68 168 268 368 168 68 - - - - 32728 69 169 269 369 - - 269 69 - - 32729 70 170 270 370 170 70 - - 370 70 32730 71 171 271 371 - - - - - - 32731 72 172 272 372 172 72 272 72 - - 32732 73 173 273 373 - - - - - - 32733 74 174 274 374 174 74 - - - - 32734 75 175 275 375 - - 275 75 375 75 32735 76 176 276 376 176 76 - - - - 32736 77 177 277 377 - - - - - - 32737 78 178 278 378 178 78 278 78 - - 32738 79 179 279 379 - - - - - - 32739 80 180 280 380 180 80 - - 380 80 32740 81 181 281 381 - - 281 81 - - 32741 82 182 282 382 182 82 - - - - 32742 83 183 283 383 - - - - - - 32743 84 184 284 384 184 84 284 84 - - 32744 85 185 285 385 - - - - 385 85 32745 86 186 286 386 186 86 - - - - 32746 87 187 287 387 - - 287 87 - - 32747 88 188 288 388 188 88 - - - - 32748 89 189 289 389 - - - - - - 32749 90 190 290 390 190 90 290 90 390 90 32750 91 191 291 391 - - - - - - 32751 92 192 292 392 192 92 - - - - 32752 93 193 293 393 - - 293 93 - - 32753 94 194 294 394 194 94 - - - - 32754 95 195 295 395 - - - - 395 95 32755 96 - 296 396 - - - - - - 32756 97 197 - 397 - - - - - - 32757 98 198 298 - - - - - - - 32758 99 - - - - - - - - - 32759 - - - - 100 0 - - - - 32760 - - - - - - 200 0 - - 32761} 32762do_execsql_test joinD-1122 { 32763 SELECT t1.*, t2.*, t3.*, t4.* 32764 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32765 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32766 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 32767 WHERE t2.x>0 32768 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32769} { 32770 2 102 202 302 102 2 - - - - 32771 4 104 204 304 104 4 - - - - 32772 6 106 206 306 106 6 206 6 - - 32773 8 108 208 308 108 8 - - - - 32774 10 110 210 310 110 10 - - 310 10 32775 12 112 212 312 112 12 212 12 - - 32776 14 114 214 314 114 14 - - - - 32777 16 116 216 316 116 16 - - - - 32778 18 118 218 318 118 18 218 18 - - 32779 20 120 220 320 120 20 - - 320 20 32780 22 122 222 322 122 22 - - - - 32781 24 124 224 324 124 24 224 24 - - 32782 26 126 226 326 126 26 - - - - 32783 28 128 228 328 128 28 - - - - 32784 30 130 230 330 130 30 230 30 330 30 32785 32 132 232 332 132 32 - - - - 32786 34 134 234 334 134 34 - - - - 32787 36 136 236 336 136 36 236 36 - - 32788 38 138 238 338 138 38 - - - - 32789 40 140 240 340 140 40 - - 340 40 32790 42 142 242 342 142 42 242 42 - - 32791 44 144 244 344 144 44 - - - - 32792 46 146 246 346 146 46 - - - - 32793 48 148 248 348 148 48 248 48 - - 32794 50 150 250 350 150 50 - - 350 50 32795 52 152 252 352 152 52 - - - - 32796 54 154 254 354 154 54 254 54 - - 32797 56 156 256 356 156 56 - - - - 32798 58 158 258 358 158 58 - - - - 32799 60 160 260 360 160 60 260 60 360 60 32800 62 162 262 362 162 62 - - - - 32801 64 164 264 364 164 64 - - - - 32802 66 166 266 366 166 66 266 66 - - 32803 68 168 268 368 168 68 - - - - 32804 70 170 270 370 170 70 - - 370 70 32805 72 172 272 372 172 72 272 72 - - 32806 74 174 274 374 174 74 - - - - 32807 76 176 276 376 176 76 - - - - 32808 78 178 278 378 178 78 278 78 - - 32809 80 180 280 380 180 80 - - 380 80 32810 82 182 282 382 182 82 - - - - 32811 84 184 284 384 184 84 284 84 - - 32812 86 186 286 386 186 86 - - - - 32813 88 188 288 388 188 88 - - - - 32814 90 190 290 390 190 90 290 90 390 90 32815 92 192 292 392 192 92 - - - - 32816 94 194 294 394 194 94 - - - - 32817} 32818do_execsql_test joinD-1123 { 32819 SELECT t1.*, t2.*, t3.*, t4.* 32820 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32821 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32822 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 32823 WHERE (t2.x>0 OR t2.x IS NULL) 32824 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32825} { 32826 1 101 201 301 - - - - - - 32827 2 102 202 302 102 2 - - - - 32828 3 103 203 303 - - 203 3 - - 32829 4 104 204 304 104 4 - - - - 32830 5 105 205 305 - - - - 305 5 32831 6 106 206 306 106 6 206 6 - - 32832 7 107 207 307 - - - - - - 32833 8 108 208 308 108 8 - - - - 32834 9 109 209 309 - - 209 9 - - 32835 10 110 210 310 110 10 - - 310 10 32836 11 111 211 311 - - - - - - 32837 12 112 212 312 112 12 212 12 - - 32838 13 113 213 313 - - - - - - 32839 14 114 214 314 114 14 - - - - 32840 15 115 215 315 - - 215 15 315 15 32841 16 116 216 316 116 16 - - - - 32842 17 117 217 317 - - - - - - 32843 18 118 218 318 118 18 218 18 - - 32844 19 119 219 319 - - - - - - 32845 20 120 220 320 120 20 - - 320 20 32846 21 121 221 321 - - 221 21 - - 32847 22 122 222 322 122 22 - - - - 32848 23 123 223 323 - - - - - - 32849 24 124 224 324 124 24 224 24 - - 32850 25 125 225 325 - - - - 325 25 32851 26 126 226 326 126 26 - - - - 32852 27 127 227 327 - - 227 27 - - 32853 28 128 228 328 128 28 - - - - 32854 29 129 229 329 - - - - - - 32855 30 130 230 330 130 30 230 30 330 30 32856 31 131 231 331 - - - - - - 32857 32 132 232 332 132 32 - - - - 32858 33 133 233 333 - - 233 33 - - 32859 34 134 234 334 134 34 - - - - 32860 35 135 235 335 - - - - 335 35 32861 36 136 236 336 136 36 236 36 - - 32862 37 137 237 337 - - - - - - 32863 38 138 238 338 138 38 - - - - 32864 39 139 239 339 - - 239 39 - - 32865 40 140 240 340 140 40 - - 340 40 32866 41 141 241 341 - - - - - - 32867 42 142 242 342 142 42 242 42 - - 32868 43 143 243 343 - - - - - - 32869 44 144 244 344 144 44 - - - - 32870 45 145 245 345 - - 245 45 345 45 32871 46 146 246 346 146 46 - - - - 32872 47 147 247 347 - - - - - - 32873 48 148 248 348 148 48 248 48 - - 32874 49 149 249 349 - - - - - - 32875 50 150 250 350 150 50 - - 350 50 32876 51 151 251 351 - - 251 51 - - 32877 52 152 252 352 152 52 - - - - 32878 53 153 253 353 - - - - - - 32879 54 154 254 354 154 54 254 54 - - 32880 55 155 255 355 - - - - 355 55 32881 56 156 256 356 156 56 - - - - 32882 57 157 257 357 - - 257 57 - - 32883 58 158 258 358 158 58 - - - - 32884 59 159 259 359 - - - - - - 32885 60 160 260 360 160 60 260 60 360 60 32886 61 161 261 361 - - - - - - 32887 62 162 262 362 162 62 - - - - 32888 63 163 263 363 - - 263 63 - - 32889 64 164 264 364 164 64 - - - - 32890 65 165 265 365 - - - - 365 65 32891 66 166 266 366 166 66 266 66 - - 32892 67 167 267 367 - - - - - - 32893 68 168 268 368 168 68 - - - - 32894 69 169 269 369 - - 269 69 - - 32895 70 170 270 370 170 70 - - 370 70 32896 71 171 271 371 - - - - - - 32897 72 172 272 372 172 72 272 72 - - 32898 73 173 273 373 - - - - - - 32899 74 174 274 374 174 74 - - - - 32900 75 175 275 375 - - 275 75 375 75 32901 76 176 276 376 176 76 - - - - 32902 77 177 277 377 - - - - - - 32903 78 178 278 378 178 78 278 78 - - 32904 79 179 279 379 - - - - - - 32905 80 180 280 380 180 80 - - 380 80 32906 81 181 281 381 - - 281 81 - - 32907 82 182 282 382 182 82 - - - - 32908 83 183 283 383 - - - - - - 32909 84 184 284 384 184 84 284 84 - - 32910 85 185 285 385 - - - - 385 85 32911 86 186 286 386 186 86 - - - - 32912 87 187 287 387 - - 287 87 - - 32913 88 188 288 388 188 88 - - - - 32914 89 189 289 389 - - - - - - 32915 90 190 290 390 190 90 290 90 390 90 32916 91 191 291 391 - - - - - - 32917 92 192 292 392 192 92 - - - - 32918 93 193 293 393 - - 293 93 - - 32919 94 194 294 394 194 94 - - - - 32920 95 195 295 395 - - - - 395 95 32921 96 - 296 396 - - - - - - 32922 97 197 - 397 - - - - - - 32923 98 198 298 - - - - - - - 32924 99 - - - - - - - - - 32925 - - - - - - 200 0 - - 32926} 32927do_execsql_test joinD-1124 { 32928 SELECT t1.*, t2.*, t3.*, t4.* 32929 FROM t1 FULL JOIN t2 ON true 32930 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32931 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 32932 WHERE t1.b=t2.b AND t2.x>0 32933 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32934} { 32935 2 102 202 302 102 2 - - - - 32936 4 104 204 304 104 4 - - - - 32937 6 106 206 306 106 6 206 6 - - 32938 8 108 208 308 108 8 - - - - 32939 10 110 210 310 110 10 - - 310 10 32940 12 112 212 312 112 12 212 12 - - 32941 14 114 214 314 114 14 - - - - 32942 16 116 216 316 116 16 - - - - 32943 18 118 218 318 118 18 218 18 - - 32944 20 120 220 320 120 20 - - 320 20 32945 22 122 222 322 122 22 - - - - 32946 24 124 224 324 124 24 224 24 - - 32947 26 126 226 326 126 26 - - - - 32948 28 128 228 328 128 28 - - - - 32949 30 130 230 330 130 30 230 30 330 30 32950 32 132 232 332 132 32 - - - - 32951 34 134 234 334 134 34 - - - - 32952 36 136 236 336 136 36 236 36 - - 32953 38 138 238 338 138 38 - - - - 32954 40 140 240 340 140 40 - - 340 40 32955 42 142 242 342 142 42 242 42 - - 32956 44 144 244 344 144 44 - - - - 32957 46 146 246 346 146 46 - - - - 32958 48 148 248 348 148 48 248 48 - - 32959 50 150 250 350 150 50 - - 350 50 32960 52 152 252 352 152 52 - - - - 32961 54 154 254 354 154 54 254 54 - - 32962 56 156 256 356 156 56 - - - - 32963 58 158 258 358 158 58 - - - - 32964 60 160 260 360 160 60 260 60 360 60 32965 62 162 262 362 162 62 - - - - 32966 64 164 264 364 164 64 - - - - 32967 66 166 266 366 166 66 266 66 - - 32968 68 168 268 368 168 68 - - - - 32969 70 170 270 370 170 70 - - 370 70 32970 72 172 272 372 172 72 272 72 - - 32971 74 174 274 374 174 74 - - - - 32972 76 176 276 376 176 76 - - - - 32973 78 178 278 378 178 78 278 78 - - 32974 80 180 280 380 180 80 - - 380 80 32975 82 182 282 382 182 82 - - - - 32976 84 184 284 384 184 84 284 84 - - 32977 86 186 286 386 186 86 - - - - 32978 88 188 288 388 188 88 - - - - 32979 90 190 290 390 190 90 290 90 390 90 32980 92 192 292 392 192 92 - - - - 32981 94 194 294 394 194 94 - - - - 32982} 32983do_execsql_test joinD-1125 { 32984 SELECT t1.*, t2.*, t3.*, t4.* 32985 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32986 FULL JOIN t3 ON t1.c=t3.c 32987 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 32988 WHERE t3.y>0 32989 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32990} { 32991 3 103 203 303 - - 203 3 - - 32992 6 106 206 306 106 6 206 6 - - 32993 9 109 209 309 - - 209 9 - - 32994 12 112 212 312 112 12 212 12 - - 32995 15 115 215 315 - - 215 15 315 15 32996 18 118 218 318 118 18 218 18 - - 32997 21 121 221 321 - - 221 21 - - 32998 24 124 224 324 124 24 224 24 - - 32999 27 127 227 327 - - 227 27 - - 33000 30 130 230 330 130 30 230 30 330 30 33001 33 133 233 333 - - 233 33 - - 33002 36 136 236 336 136 36 236 36 - - 33003 39 139 239 339 - - 239 39 - - 33004 42 142 242 342 142 42 242 42 - - 33005 45 145 245 345 - - 245 45 345 45 33006 48 148 248 348 148 48 248 48 - - 33007 51 151 251 351 - - 251 51 - - 33008 54 154 254 354 154 54 254 54 - - 33009 57 157 257 357 - - 257 57 - - 33010 60 160 260 360 160 60 260 60 360 60 33011 63 163 263 363 - - 263 63 - - 33012 66 166 266 366 166 66 266 66 - - 33013 69 169 269 369 - - 269 69 - - 33014 72 172 272 372 172 72 272 72 - - 33015 75 175 275 375 - - 275 75 375 75 33016 78 178 278 378 178 78 278 78 - - 33017 81 181 281 381 - - 281 81 - - 33018 84 184 284 384 184 84 284 84 - - 33019 87 187 287 387 - - 287 87 - - 33020 90 190 290 390 190 90 290 90 390 90 33021 93 193 293 393 - - 293 93 - - 33022} 33023do_execsql_test joinD-1126 { 33024 SELECT t1.*, t2.*, t3.*, t4.* 33025 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33026 FULL JOIN t3 ON t1.c=t3.c 33027 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 33028 WHERE t3.y>0 OR t3.y IS NULL 33029 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33030} { 33031 1 101 201 301 - - - - - - 33032 2 102 202 302 102 2 - - - - 33033 3 103 203 303 - - 203 3 - - 33034 4 104 204 304 104 4 - - - - 33035 5 105 205 305 - - - - 305 5 33036 6 106 206 306 106 6 206 6 - - 33037 7 107 207 307 - - - - - - 33038 8 108 208 308 108 8 - - - - 33039 9 109 209 309 - - 209 9 - - 33040 10 110 210 310 110 10 - - 310 10 33041 11 111 211 311 - - - - - - 33042 12 112 212 312 112 12 212 12 - - 33043 13 113 213 313 - - - - - - 33044 14 114 214 314 114 14 - - - - 33045 15 115 215 315 - - 215 15 315 15 33046 16 116 216 316 116 16 - - - - 33047 17 117 217 317 - - - - - - 33048 18 118 218 318 118 18 218 18 - - 33049 19 119 219 319 - - - - - - 33050 20 120 220 320 120 20 - - 320 20 33051 21 121 221 321 - - 221 21 - - 33052 22 122 222 322 122 22 - - - - 33053 23 123 223 323 - - - - - - 33054 24 124 224 324 124 24 224 24 - - 33055 25 125 225 325 - - - - 325 25 33056 26 126 226 326 126 26 - - - - 33057 27 127 227 327 - - 227 27 - - 33058 28 128 228 328 128 28 - - - - 33059 29 129 229 329 - - - - - - 33060 30 130 230 330 130 30 230 30 330 30 33061 31 131 231 331 - - - - - - 33062 32 132 232 332 132 32 - - - - 33063 33 133 233 333 - - 233 33 - - 33064 34 134 234 334 134 34 - - - - 33065 35 135 235 335 - - - - 335 35 33066 36 136 236 336 136 36 236 36 - - 33067 37 137 237 337 - - - - - - 33068 38 138 238 338 138 38 - - - - 33069 39 139 239 339 - - 239 39 - - 33070 40 140 240 340 140 40 - - 340 40 33071 41 141 241 341 - - - - - - 33072 42 142 242 342 142 42 242 42 - - 33073 43 143 243 343 - - - - - - 33074 44 144 244 344 144 44 - - - - 33075 45 145 245 345 - - 245 45 345 45 33076 46 146 246 346 146 46 - - - - 33077 47 147 247 347 - - - - - - 33078 48 148 248 348 148 48 248 48 - - 33079 49 149 249 349 - - - - - - 33080 50 150 250 350 150 50 - - 350 50 33081 51 151 251 351 - - 251 51 - - 33082 52 152 252 352 152 52 - - - - 33083 53 153 253 353 - - - - - - 33084 54 154 254 354 154 54 254 54 - - 33085 55 155 255 355 - - - - 355 55 33086 56 156 256 356 156 56 - - - - 33087 57 157 257 357 - - 257 57 - - 33088 58 158 258 358 158 58 - - - - 33089 59 159 259 359 - - - - - - 33090 60 160 260 360 160 60 260 60 360 60 33091 61 161 261 361 - - - - - - 33092 62 162 262 362 162 62 - - - - 33093 63 163 263 363 - - 263 63 - - 33094 64 164 264 364 164 64 - - - - 33095 65 165 265 365 - - - - 365 65 33096 66 166 266 366 166 66 266 66 - - 33097 67 167 267 367 - - - - - - 33098 68 168 268 368 168 68 - - - - 33099 69 169 269 369 - - 269 69 - - 33100 70 170 270 370 170 70 - - 370 70 33101 71 171 271 371 - - - - - - 33102 72 172 272 372 172 72 272 72 - - 33103 73 173 273 373 - - - - - - 33104 74 174 274 374 174 74 - - - - 33105 75 175 275 375 - - 275 75 375 75 33106 76 176 276 376 176 76 - - - - 33107 77 177 277 377 - - - - - - 33108 78 178 278 378 178 78 278 78 - - 33109 79 179 279 379 - - - - - - 33110 80 180 280 380 180 80 - - 380 80 33111 81 181 281 381 - - 281 81 - - 33112 82 182 282 382 182 82 - - - - 33113 83 183 283 383 - - - - - - 33114 84 184 284 384 184 84 284 84 - - 33115 85 185 285 385 - - - - 385 85 33116 86 186 286 386 186 86 - - - - 33117 87 187 287 387 - - 287 87 - - 33118 88 188 288 388 188 88 - - - - 33119 89 189 289 389 - - - - - - 33120 90 190 290 390 190 90 290 90 390 90 33121 91 191 291 391 - - - - - - 33122 92 192 292 392 192 92 - - - - 33123 93 193 293 393 - - 293 93 - - 33124 94 194 294 394 194 94 - - - - 33125 95 195 295 395 - - - - 395 95 33126 96 - 296 396 - - - - - - 33127 97 197 - 397 - - - - - - 33128 98 198 298 - - - - - - - 33129 99 - - - - - - - - - 33130 - - - - 100 0 - - - - 33131} 33132do_execsql_test joinD-1127 { 33133 SELECT t1.*, t2.*, t3.*, t4.* 33134 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33135 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33136 LEFT JOIN t4 ON t1.d=t4.d 33137 WHERE t4.z>0 33138 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33139} { 33140 5 105 205 305 - - - - 305 5 33141 10 110 210 310 110 10 - - 310 10 33142 15 115 215 315 - - 215 15 315 15 33143 20 120 220 320 120 20 - - 320 20 33144 25 125 225 325 - - - - 325 25 33145 30 130 230 330 130 30 230 30 330 30 33146 35 135 235 335 - - - - 335 35 33147 40 140 240 340 140 40 - - 340 40 33148 45 145 245 345 - - 245 45 345 45 33149 50 150 250 350 150 50 - - 350 50 33150 55 155 255 355 - - - - 355 55 33151 60 160 260 360 160 60 260 60 360 60 33152 65 165 265 365 - - - - 365 65 33153 70 170 270 370 170 70 - - 370 70 33154 75 175 275 375 - - 275 75 375 75 33155 80 180 280 380 180 80 - - 380 80 33156 85 185 285 385 - - - - 385 85 33157 90 190 290 390 190 90 290 90 390 90 33158 95 195 295 395 - - - - 395 95 33159} 33160do_execsql_test joinD-1128 { 33161 SELECT t1.*, t2.*, t3.*, t4.* 33162 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33163 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33164 LEFT JOIN t4 ON t1.d=t4.d 33165 WHERE t4.z IS NULL OR t4.z>0 33166 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33167} { 33168 1 101 201 301 - - - - - - 33169 2 102 202 302 102 2 - - - - 33170 3 103 203 303 - - 203 3 - - 33171 4 104 204 304 104 4 - - - - 33172 5 105 205 305 - - - - 305 5 33173 6 106 206 306 106 6 206 6 - - 33174 7 107 207 307 - - - - - - 33175 8 108 208 308 108 8 - - - - 33176 9 109 209 309 - - 209 9 - - 33177 10 110 210 310 110 10 - - 310 10 33178 11 111 211 311 - - - - - - 33179 12 112 212 312 112 12 212 12 - - 33180 13 113 213 313 - - - - - - 33181 14 114 214 314 114 14 - - - - 33182 15 115 215 315 - - 215 15 315 15 33183 16 116 216 316 116 16 - - - - 33184 17 117 217 317 - - - - - - 33185 18 118 218 318 118 18 218 18 - - 33186 19 119 219 319 - - - - - - 33187 20 120 220 320 120 20 - - 320 20 33188 21 121 221 321 - - 221 21 - - 33189 22 122 222 322 122 22 - - - - 33190 23 123 223 323 - - - - - - 33191 24 124 224 324 124 24 224 24 - - 33192 25 125 225 325 - - - - 325 25 33193 26 126 226 326 126 26 - - - - 33194 27 127 227 327 - - 227 27 - - 33195 28 128 228 328 128 28 - - - - 33196 29 129 229 329 - - - - - - 33197 30 130 230 330 130 30 230 30 330 30 33198 31 131 231 331 - - - - - - 33199 32 132 232 332 132 32 - - - - 33200 33 133 233 333 - - 233 33 - - 33201 34 134 234 334 134 34 - - - - 33202 35 135 235 335 - - - - 335 35 33203 36 136 236 336 136 36 236 36 - - 33204 37 137 237 337 - - - - - - 33205 38 138 238 338 138 38 - - - - 33206 39 139 239 339 - - 239 39 - - 33207 40 140 240 340 140 40 - - 340 40 33208 41 141 241 341 - - - - - - 33209 42 142 242 342 142 42 242 42 - - 33210 43 143 243 343 - - - - - - 33211 44 144 244 344 144 44 - - - - 33212 45 145 245 345 - - 245 45 345 45 33213 46 146 246 346 146 46 - - - - 33214 47 147 247 347 - - - - - - 33215 48 148 248 348 148 48 248 48 - - 33216 49 149 249 349 - - - - - - 33217 50 150 250 350 150 50 - - 350 50 33218 51 151 251 351 - - 251 51 - - 33219 52 152 252 352 152 52 - - - - 33220 53 153 253 353 - - - - - - 33221 54 154 254 354 154 54 254 54 - - 33222 55 155 255 355 - - - - 355 55 33223 56 156 256 356 156 56 - - - - 33224 57 157 257 357 - - 257 57 - - 33225 58 158 258 358 158 58 - - - - 33226 59 159 259 359 - - - - - - 33227 60 160 260 360 160 60 260 60 360 60 33228 61 161 261 361 - - - - - - 33229 62 162 262 362 162 62 - - - - 33230 63 163 263 363 - - 263 63 - - 33231 64 164 264 364 164 64 - - - - 33232 65 165 265 365 - - - - 365 65 33233 66 166 266 366 166 66 266 66 - - 33234 67 167 267 367 - - - - - - 33235 68 168 268 368 168 68 - - - - 33236 69 169 269 369 - - 269 69 - - 33237 70 170 270 370 170 70 - - 370 70 33238 71 171 271 371 - - - - - - 33239 72 172 272 372 172 72 272 72 - - 33240 73 173 273 373 - - - - - - 33241 74 174 274 374 174 74 - - - - 33242 75 175 275 375 - - 275 75 375 75 33243 76 176 276 376 176 76 - - - - 33244 77 177 277 377 - - - - - - 33245 78 178 278 378 178 78 278 78 - - 33246 79 179 279 379 - - - - - - 33247 80 180 280 380 180 80 - - 380 80 33248 81 181 281 381 - - 281 81 - - 33249 82 182 282 382 182 82 - - - - 33250 83 183 283 383 - - - - - - 33251 84 184 284 384 184 84 284 84 - - 33252 85 185 285 385 - - - - 385 85 33253 86 186 286 386 186 86 - - - - 33254 87 187 287 387 - - 287 87 - - 33255 88 188 288 388 188 88 - - - - 33256 89 189 289 389 - - - - - - 33257 90 190 290 390 190 90 290 90 390 90 33258 91 191 291 391 - - - - - - 33259 92 192 292 392 192 92 - - - - 33260 93 193 293 393 - - 293 93 - - 33261 94 194 294 394 194 94 - - - - 33262 95 195 295 395 - - - - 395 95 33263 96 - 296 396 - - - - - - 33264 97 197 - 397 - - - - - - 33265 98 198 298 - - - - - - - 33266 99 - - - - - - - - - 33267 - - - - 100 0 - - - - 33268 - - - - - - 200 0 - - 33269} 33270do_execsql_test joinD-1129 { 33271 SELECT t1.*, t2.*, t3.*, t4.* 33272 FROM t1 FULL JOIN t2 ON t1.b=t2.b 33273 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33274 LEFT JOIN t4 ON t1.d=t4.d 33275 WHERE t2.x>0 AND t4.z>0 33276 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33277} { 33278 10 110 210 310 110 10 - - 310 10 33279 20 120 220 320 120 20 - - 320 20 33280 30 130 230 330 130 30 230 30 330 30 33281 40 140 240 340 140 40 - - 340 40 33282 50 150 250 350 150 50 - - 350 50 33283 60 160 260 360 160 60 260 60 360 60 33284 70 170 270 370 170 70 - - 370 70 33285 80 180 280 380 180 80 - - 380 80 33286 90 190 290 390 190 90 290 90 390 90 33287} 33288do_execsql_test joinD-1130 { 33289 SELECT t1.*, t2.*, t3.*, t4.* 33290 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33291 FULL JOIN t3 ON t1.c=t3.c 33292 LEFT JOIN t4 ON t1.d=t4.d 33293 WHERE t4.z>0 AND t3.y>0 33294 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33295} { 33296 15 115 215 315 - - 215 15 315 15 33297 30 130 230 330 130 30 230 30 330 30 33298 45 145 245 345 - - 245 45 345 45 33299 60 160 260 360 160 60 260 60 360 60 33300 75 175 275 375 - - 275 75 375 75 33301 90 190 290 390 190 90 290 90 390 90 33302} 33303do_execsql_test joinD-1131 { 33304 SELECT t1.*, t2.*, t3.*, t4.* 33305 FROM t1 FULL JOIN t2 ON t1.b=t2.b 33306 FULL JOIN t3 ON t1.c=t3.c 33307 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 33308 WHERE t2.x>0 AND t3.y>0 33309 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33310} { 33311 6 106 206 306 106 6 206 6 - - 33312 12 112 212 312 112 12 212 12 - - 33313 18 118 218 318 118 18 218 18 - - 33314 24 124 224 324 124 24 224 24 - - 33315 30 130 230 330 130 30 230 30 330 30 33316 36 136 236 336 136 36 236 36 - - 33317 42 142 242 342 142 42 242 42 - - 33318 48 148 248 348 148 48 248 48 - - 33319 54 154 254 354 154 54 254 54 - - 33320 60 160 260 360 160 60 260 60 360 60 33321 66 166 266 366 166 66 266 66 - - 33322 72 172 272 372 172 72 272 72 - - 33323 78 178 278 378 178 78 278 78 - - 33324 84 184 284 384 184 84 284 84 - - 33325 90 190 290 390 190 90 290 90 390 90 33326} 33327do_execsql_test joinD-1132 { 33328 SELECT t1.*, t2.*, t3.*, t4.* 33329 FROM t1 FULL JOIN t2 ON t1.b=t2.b 33330 FULL JOIN t3 ON t1.c=t3.c 33331 LEFT JOIN t4 ON t1.d=t4.d 33332 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 33333 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33334} { 33335 30 130 230 330 130 30 230 30 330 30 33336 60 160 260 360 160 60 260 60 360 60 33337 90 190 290 390 190 90 290 90 390 90 33338} 33339do_execsql_test joinD-1133 { 33340 SELECT t1.*, t2.*, t3.*, t4.* 33341 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 33342 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 33343 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 33344 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33345} { 33346 0 100 200 300 - - - - - - 33347 1 101 201 301 - - - - - - 33348 2 102 202 302 102 2 - - - - 33349 3 103 203 303 - - 203 3 - - 33350 4 104 204 304 104 4 - - - - 33351 5 105 205 305 - - - - 305 5 33352 6 106 206 306 106 6 206 6 - - 33353 7 107 207 307 - - - - - - 33354 8 108 208 308 108 8 - - - - 33355 9 109 209 309 - - 209 9 - - 33356 10 110 210 310 110 10 - - 310 10 33357 11 111 211 311 - - - - - - 33358 12 112 212 312 112 12 212 12 - - 33359 13 113 213 313 - - - - - - 33360 14 114 214 314 114 14 - - - - 33361 15 115 215 315 - - 215 15 315 15 33362 16 116 216 316 116 16 - - - - 33363 17 117 217 317 - - - - - - 33364 18 118 218 318 118 18 218 18 - - 33365 19 119 219 319 - - - - - - 33366 20 120 220 320 120 20 - - 320 20 33367 21 121 221 321 - - 221 21 - - 33368 22 122 222 322 122 22 - - - - 33369 23 123 223 323 - - - - - - 33370 24 124 224 324 124 24 224 24 - - 33371 25 125 225 325 - - - - 325 25 33372 26 126 226 326 126 26 - - - - 33373 27 127 227 327 - - 227 27 - - 33374 28 128 228 328 128 28 - - - - 33375 29 129 229 329 - - - - - - 33376 30 130 230 330 130 30 230 30 330 30 33377 31 131 231 331 - - - - - - 33378 32 132 232 332 132 32 - - - - 33379 33 133 233 333 - - 233 33 - - 33380 34 134 234 334 134 34 - - - - 33381 35 135 235 335 - - - - 335 35 33382 36 136 236 336 136 36 236 36 - - 33383 37 137 237 337 - - - - - - 33384 38 138 238 338 138 38 - - - - 33385 39 139 239 339 - - 239 39 - - 33386 40 140 240 340 140 40 - - 340 40 33387 41 141 241 341 - - - - - - 33388 42 142 242 342 142 42 242 42 - - 33389 43 143 243 343 - - - - - - 33390 44 144 244 344 144 44 - - - - 33391 45 145 245 345 - - 245 45 345 45 33392 46 146 246 346 146 46 - - - - 33393 47 147 247 347 - - - - - - 33394 48 148 248 348 148 48 248 48 - - 33395 49 149 249 349 - - - - - - 33396 50 150 250 350 150 50 - - 350 50 33397 51 151 251 351 - - 251 51 - - 33398 52 152 252 352 152 52 - - - - 33399 53 153 253 353 - - - - - - 33400 54 154 254 354 154 54 254 54 - - 33401 55 155 255 355 - - - - 355 55 33402 56 156 256 356 156 56 - - - - 33403 57 157 257 357 - - 257 57 - - 33404 58 158 258 358 158 58 - - - - 33405 59 159 259 359 - - - - - - 33406 60 160 260 360 160 60 260 60 360 60 33407 61 161 261 361 - - - - - - 33408 62 162 262 362 162 62 - - - - 33409 63 163 263 363 - - 263 63 - - 33410 64 164 264 364 164 64 - - - - 33411 65 165 265 365 - - - - 365 65 33412 66 166 266 366 166 66 266 66 - - 33413 67 167 267 367 - - - - - - 33414 68 168 268 368 168 68 - - - - 33415 69 169 269 369 - - 269 69 - - 33416 70 170 270 370 170 70 - - 370 70 33417 71 171 271 371 - - - - - - 33418 72 172 272 372 172 72 272 72 - - 33419 73 173 273 373 - - - - - - 33420 74 174 274 374 174 74 - - - - 33421 75 175 275 375 - - 275 75 375 75 33422 76 176 276 376 176 76 - - - - 33423 77 177 277 377 - - - - - - 33424 78 178 278 378 178 78 278 78 - - 33425 79 179 279 379 - - - - - - 33426 80 180 280 380 180 80 - - 380 80 33427 81 181 281 381 - - 281 81 - - 33428 82 182 282 382 182 82 - - - - 33429 83 183 283 383 - - - - - - 33430 84 184 284 384 184 84 284 84 - - 33431 85 185 285 385 - - - - 385 85 33432 86 186 286 386 186 86 - - - - 33433 87 187 287 387 - - 287 87 - - 33434 88 188 288 388 188 88 - - - - 33435 89 189 289 389 - - - - - - 33436 90 190 290 390 190 90 290 90 390 90 33437 91 191 291 391 - - - - - - 33438 92 192 292 392 192 92 - - - - 33439 93 193 293 393 - - 293 93 - - 33440 94 194 294 394 194 94 - - - - 33441 95 195 295 395 - - - - 395 95 33442 96 - 296 396 - - - - - - 33443 97 197 - 397 - - - - - - 33444 98 198 298 - - - - - - - 33445 99 - - - - - - - - - 33446 - - - - 100 0 - - - - 33447 - - - - - - 200 0 - - 33448} 33449do_execsql_test joinD-1134 { 33450 SELECT t1.*, t2.*, t3.*, t4.* 33451 FROM t1 FULL JOIN t2 ON t2.x>0 33452 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 33453 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 33454 WHERE t1.b = t2.b 33455 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33456} { 33457 2 102 202 302 102 2 - - - - 33458 4 104 204 304 104 4 - - - - 33459 6 106 206 306 106 6 206 6 - - 33460 8 108 208 308 108 8 - - - - 33461 10 110 210 310 110 10 - - 310 10 33462 12 112 212 312 112 12 212 12 - - 33463 14 114 214 314 114 14 - - - - 33464 16 116 216 316 116 16 - - - - 33465 18 118 218 318 118 18 218 18 - - 33466 20 120 220 320 120 20 - - 320 20 33467 22 122 222 322 122 22 - - - - 33468 24 124 224 324 124 24 224 24 - - 33469 26 126 226 326 126 26 - - - - 33470 28 128 228 328 128 28 - - - - 33471 30 130 230 330 130 30 230 30 330 30 33472 32 132 232 332 132 32 - - - - 33473 34 134 234 334 134 34 - - - - 33474 36 136 236 336 136 36 236 36 - - 33475 38 138 238 338 138 38 - - - - 33476 40 140 240 340 140 40 - - 340 40 33477 42 142 242 342 142 42 242 42 - - 33478 44 144 244 344 144 44 - - - - 33479 46 146 246 346 146 46 - - - - 33480 48 148 248 348 148 48 248 48 - - 33481 50 150 250 350 150 50 - - 350 50 33482 52 152 252 352 152 52 - - - - 33483 54 154 254 354 154 54 254 54 - - 33484 56 156 256 356 156 56 - - - - 33485 58 158 258 358 158 58 - - - - 33486 60 160 260 360 160 60 260 60 360 60 33487 62 162 262 362 162 62 - - - - 33488 64 164 264 364 164 64 - - - - 33489 66 166 266 366 166 66 266 66 - - 33490 68 168 268 368 168 68 - - - - 33491 70 170 270 370 170 70 - - 370 70 33492 72 172 272 372 172 72 272 72 - - 33493 74 174 274 374 174 74 - - - - 33494 76 176 276 376 176 76 - - - - 33495 78 178 278 378 178 78 278 78 - - 33496 80 180 280 380 180 80 - - 380 80 33497 82 182 282 382 182 82 - - - - 33498 84 184 284 384 184 84 284 84 - - 33499 86 186 286 386 186 86 - - - - 33500 88 188 288 388 188 88 - - - - 33501 90 190 290 390 190 90 290 90 390 90 33502 92 192 292 392 192 92 - - - - 33503 94 194 294 394 194 94 - - - - 33504} 33505do_execsql_test joinD-1135 { 33506 SELECT t1.*, t2.*, t3.*, t4.* 33507 FROM t1 FULL JOIN t2 ON t2.x>0 33508 FULL JOIN t3 ON t3.y>0 33509 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 33510 WHERE t1.b = t2.b AND t1.c = t3.c 33511 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33512} { 33513 6 106 206 306 106 6 206 6 - - 33514 12 112 212 312 112 12 212 12 - - 33515 18 118 218 318 118 18 218 18 - - 33516 24 124 224 324 124 24 224 24 - - 33517 30 130 230 330 130 30 230 30 330 30 33518 36 136 236 336 136 36 236 36 - - 33519 42 142 242 342 142 42 242 42 - - 33520 48 148 248 348 148 48 248 48 - - 33521 54 154 254 354 154 54 254 54 - - 33522 60 160 260 360 160 60 260 60 360 60 33523 66 166 266 366 166 66 266 66 - - 33524 72 172 272 372 172 72 272 72 - - 33525 78 178 278 378 178 78 278 78 - - 33526 84 184 284 384 184 84 284 84 - - 33527 90 190 290 390 190 90 290 90 390 90 33528} 33529do_execsql_test joinD-1136 { 33530 SELECT t1.*, t2.*, t3.*, t4.* 33531 FROM t1 FULL JOIN t2 ON t2.x>0 33532 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 33533 LEFT JOIN t4 ON t4.z>0 33534 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 33535 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33536} { 33537 10 110 210 310 110 10 - - 310 10 33538 20 120 220 320 120 20 - - 320 20 33539 30 130 230 330 130 30 230 30 330 30 33540 40 140 240 340 140 40 - - 340 40 33541 50 150 250 350 150 50 - - 350 50 33542 60 160 260 360 160 60 260 60 360 60 33543 70 170 270 370 170 70 - - 370 70 33544 80 180 280 380 180 80 - - 380 80 33545 90 190 290 390 190 90 290 90 390 90 33546} 33547do_execsql_test joinD-1137 { 33548 SELECT t1.*, t2.*, t3.*, t4.* 33549 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33550 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33551 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 33552 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33553} { 33554 5 105 205 305 - - - - 305 5 33555 10 110 210 310 110 10 - - 310 10 33556 15 115 215 315 - - 215 15 315 15 33557 20 120 220 320 120 20 - - 320 20 33558 25 125 225 325 - - - - 325 25 33559 30 130 230 330 130 30 230 30 330 30 33560 35 135 235 335 - - - - 335 35 33561 40 140 240 340 140 40 - - 340 40 33562 45 145 245 345 - - 245 45 345 45 33563 50 150 250 350 150 50 - - 350 50 33564 55 155 255 355 - - - - 355 55 33565 60 160 260 360 160 60 260 60 360 60 33566 65 165 265 365 - - - - 365 65 33567 70 170 270 370 170 70 - - 370 70 33568 75 175 275 375 - - 275 75 375 75 33569 80 180 280 380 180 80 - - 380 80 33570 85 185 285 385 - - - - 385 85 33571 90 190 290 390 190 90 290 90 390 90 33572 95 195 295 395 - - - - 395 95 33573 - - - - - - - - 300 0 33574} 33575do_execsql_test joinD-1138 { 33576 SELECT t1.*, t2.*, t3.*, t4.* 33577 FROM t1 FULL JOIN t2 ON t1.b=t2.b 33578 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33579 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 33580 WHERE t2.x>0 33581 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33582} { 33583 10 110 210 310 110 10 - - 310 10 33584 20 120 220 320 120 20 - - 320 20 33585 30 130 230 330 130 30 230 30 330 30 33586 40 140 240 340 140 40 - - 340 40 33587 50 150 250 350 150 50 - - 350 50 33588 60 160 260 360 160 60 260 60 360 60 33589 70 170 270 370 170 70 - - 370 70 33590 80 180 280 380 180 80 - - 380 80 33591 90 190 290 390 190 90 290 90 390 90 33592} 33593do_execsql_test joinD-1139 { 33594 SELECT t1.*, t2.*, t3.*, t4.* 33595 FROM t1 FULL JOIN t2 ON t1.b=t2.b 33596 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33597 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 33598 WHERE (t2.x>0 OR t2.x IS NULL) 33599 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33600} { 33601 5 105 205 305 - - - - 305 5 33602 10 110 210 310 110 10 - - 310 10 33603 15 115 215 315 - - 215 15 315 15 33604 20 120 220 320 120 20 - - 320 20 33605 25 125 225 325 - - - - 325 25 33606 30 130 230 330 130 30 230 30 330 30 33607 35 135 235 335 - - - - 335 35 33608 40 140 240 340 140 40 - - 340 40 33609 45 145 245 345 - - 245 45 345 45 33610 50 150 250 350 150 50 - - 350 50 33611 55 155 255 355 - - - - 355 55 33612 60 160 260 360 160 60 260 60 360 60 33613 65 165 265 365 - - - - 365 65 33614 70 170 270 370 170 70 - - 370 70 33615 75 175 275 375 - - 275 75 375 75 33616 80 180 280 380 180 80 - - 380 80 33617 85 185 285 385 - - - - 385 85 33618 90 190 290 390 190 90 290 90 390 90 33619 95 195 295 395 - - - - 395 95 33620 - - - - - - - - 300 0 33621} 33622do_execsql_test joinD-1140 { 33623 SELECT t1.*, t2.*, t3.*, t4.* 33624 FROM t1 FULL JOIN t2 ON true 33625 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33626 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 33627 WHERE t1.b=t2.b AND t2.x>0 33628 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33629} { 33630 10 110 210 310 110 10 - - 310 10 33631 20 120 220 320 120 20 - - 320 20 33632 30 130 230 330 130 30 230 30 330 30 33633 40 140 240 340 140 40 - - 340 40 33634 50 150 250 350 150 50 - - 350 50 33635 60 160 260 360 160 60 260 60 360 60 33636 70 170 270 370 170 70 - - 370 70 33637 80 180 280 380 180 80 - - 380 80 33638 90 190 290 390 190 90 290 90 390 90 33639} 33640do_execsql_test joinD-1141 { 33641 SELECT t1.*, t2.*, t3.*, t4.* 33642 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33643 FULL JOIN t3 ON t1.c=t3.c 33644 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 33645 WHERE t3.y>0 33646 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33647} { 33648 15 115 215 315 - - 215 15 315 15 33649 30 130 230 330 130 30 230 30 330 30 33650 45 145 245 345 - - 245 45 345 45 33651 60 160 260 360 160 60 260 60 360 60 33652 75 175 275 375 - - 275 75 375 75 33653 90 190 290 390 190 90 290 90 390 90 33654} 33655do_execsql_test joinD-1142 { 33656 SELECT t1.*, t2.*, t3.*, t4.* 33657 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33658 FULL JOIN t3 ON t1.c=t3.c 33659 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 33660 WHERE t3.y>0 OR t3.y IS NULL 33661 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33662} { 33663 5 105 205 305 - - - - 305 5 33664 10 110 210 310 110 10 - - 310 10 33665 15 115 215 315 - - 215 15 315 15 33666 20 120 220 320 120 20 - - 320 20 33667 25 125 225 325 - - - - 325 25 33668 30 130 230 330 130 30 230 30 330 30 33669 35 135 235 335 - - - - 335 35 33670 40 140 240 340 140 40 - - 340 40 33671 45 145 245 345 - - 245 45 345 45 33672 50 150 250 350 150 50 - - 350 50 33673 55 155 255 355 - - - - 355 55 33674 60 160 260 360 160 60 260 60 360 60 33675 65 165 265 365 - - - - 365 65 33676 70 170 270 370 170 70 - - 370 70 33677 75 175 275 375 - - 275 75 375 75 33678 80 180 280 380 180 80 - - 380 80 33679 85 185 285 385 - - - - 385 85 33680 90 190 290 390 190 90 290 90 390 90 33681 95 195 295 395 - - - - 395 95 33682 - - - - - - - - 300 0 33683} 33684do_execsql_test joinD-1143 { 33685 SELECT t1.*, t2.*, t3.*, t4.* 33686 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33687 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33688 RIGHT JOIN t4 ON t1.d=t4.d 33689 WHERE t4.z>0 33690 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33691} { 33692 5 105 205 305 - - - - 305 5 33693 10 110 210 310 110 10 - - 310 10 33694 15 115 215 315 - - 215 15 315 15 33695 20 120 220 320 120 20 - - 320 20 33696 25 125 225 325 - - - - 325 25 33697 30 130 230 330 130 30 230 30 330 30 33698 35 135 235 335 - - - - 335 35 33699 40 140 240 340 140 40 - - 340 40 33700 45 145 245 345 - - 245 45 345 45 33701 50 150 250 350 150 50 - - 350 50 33702 55 155 255 355 - - - - 355 55 33703 60 160 260 360 160 60 260 60 360 60 33704 65 165 265 365 - - - - 365 65 33705 70 170 270 370 170 70 - - 370 70 33706 75 175 275 375 - - 275 75 375 75 33707 80 180 280 380 180 80 - - 380 80 33708 85 185 285 385 - - - - 385 85 33709 90 190 290 390 190 90 290 90 390 90 33710 95 195 295 395 - - - - 395 95 33711} 33712do_execsql_test joinD-1144 { 33713 SELECT t1.*, t2.*, t3.*, t4.* 33714 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33715 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33716 RIGHT JOIN t4 ON t1.d=t4.d 33717 WHERE t4.z IS NULL OR t4.z>0 33718 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33719} { 33720 5 105 205 305 - - - - 305 5 33721 10 110 210 310 110 10 - - 310 10 33722 15 115 215 315 - - 215 15 315 15 33723 20 120 220 320 120 20 - - 320 20 33724 25 125 225 325 - - - - 325 25 33725 30 130 230 330 130 30 230 30 330 30 33726 35 135 235 335 - - - - 335 35 33727 40 140 240 340 140 40 - - 340 40 33728 45 145 245 345 - - 245 45 345 45 33729 50 150 250 350 150 50 - - 350 50 33730 55 155 255 355 - - - - 355 55 33731 60 160 260 360 160 60 260 60 360 60 33732 65 165 265 365 - - - - 365 65 33733 70 170 270 370 170 70 - - 370 70 33734 75 175 275 375 - - 275 75 375 75 33735 80 180 280 380 180 80 - - 380 80 33736 85 185 285 385 - - - - 385 85 33737 90 190 290 390 190 90 290 90 390 90 33738 95 195 295 395 - - - - 395 95 33739} 33740do_execsql_test joinD-1145 { 33741 SELECT t1.*, t2.*, t3.*, t4.* 33742 FROM t1 FULL JOIN t2 ON t1.b=t2.b 33743 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33744 RIGHT JOIN t4 ON t1.d=t4.d 33745 WHERE t2.x>0 AND t4.z>0 33746 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33747} { 33748 10 110 210 310 110 10 - - 310 10 33749 20 120 220 320 120 20 - - 320 20 33750 30 130 230 330 130 30 230 30 330 30 33751 40 140 240 340 140 40 - - 340 40 33752 50 150 250 350 150 50 - - 350 50 33753 60 160 260 360 160 60 260 60 360 60 33754 70 170 270 370 170 70 - - 370 70 33755 80 180 280 380 180 80 - - 380 80 33756 90 190 290 390 190 90 290 90 390 90 33757} 33758do_execsql_test joinD-1146 { 33759 SELECT t1.*, t2.*, t3.*, t4.* 33760 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33761 FULL JOIN t3 ON t1.c=t3.c 33762 RIGHT JOIN t4 ON t1.d=t4.d 33763 WHERE t4.z>0 AND t3.y>0 33764 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33765} { 33766 15 115 215 315 - - 215 15 315 15 33767 30 130 230 330 130 30 230 30 330 30 33768 45 145 245 345 - - 245 45 345 45 33769 60 160 260 360 160 60 260 60 360 60 33770 75 175 275 375 - - 275 75 375 75 33771 90 190 290 390 190 90 290 90 390 90 33772} 33773do_execsql_test joinD-1147 { 33774 SELECT t1.*, t2.*, t3.*, t4.* 33775 FROM t1 FULL JOIN t2 ON t1.b=t2.b 33776 FULL JOIN t3 ON t1.c=t3.c 33777 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 33778 WHERE t2.x>0 AND t3.y>0 33779 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33780} { 33781 30 130 230 330 130 30 230 30 330 30 33782 60 160 260 360 160 60 260 60 360 60 33783 90 190 290 390 190 90 290 90 390 90 33784} 33785do_execsql_test joinD-1148 { 33786 SELECT t1.*, t2.*, t3.*, t4.* 33787 FROM t1 FULL JOIN t2 ON t1.b=t2.b 33788 FULL JOIN t3 ON t1.c=t3.c 33789 RIGHT JOIN t4 ON t1.d=t4.d 33790 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 33791 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33792} { 33793 30 130 230 330 130 30 230 30 330 30 33794 60 160 260 360 160 60 260 60 360 60 33795 90 190 290 390 190 90 290 90 390 90 33796} 33797do_execsql_test joinD-1149 { 33798 SELECT t1.*, t2.*, t3.*, t4.* 33799 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 33800 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 33801 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 33802 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33803} { 33804 5 105 205 305 - - - - 305 5 33805 10 110 210 310 110 10 - - 310 10 33806 15 115 215 315 - - 215 15 315 15 33807 20 120 220 320 120 20 - - 320 20 33808 25 125 225 325 - - - - 325 25 33809 30 130 230 330 130 30 230 30 330 30 33810 35 135 235 335 - - - - 335 35 33811 40 140 240 340 140 40 - - 340 40 33812 45 145 245 345 - - 245 45 345 45 33813 50 150 250 350 150 50 - - 350 50 33814 55 155 255 355 - - - - 355 55 33815 60 160 260 360 160 60 260 60 360 60 33816 65 165 265 365 - - - - 365 65 33817 70 170 270 370 170 70 - - 370 70 33818 75 175 275 375 - - 275 75 375 75 33819 80 180 280 380 180 80 - - 380 80 33820 85 185 285 385 - - - - 385 85 33821 90 190 290 390 190 90 290 90 390 90 33822 95 195 295 395 - - - - 395 95 33823 - - - - - - - - 300 0 33824} 33825do_execsql_test joinD-1150 { 33826 SELECT t1.*, t2.*, t3.*, t4.* 33827 FROM t1 FULL JOIN t2 ON t2.x>0 33828 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 33829 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 33830 WHERE t1.b = t2.b 33831 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33832} { 33833 10 110 210 310 110 10 - - 310 10 33834 20 120 220 320 120 20 - - 320 20 33835 30 130 230 330 130 30 230 30 330 30 33836 40 140 240 340 140 40 - - 340 40 33837 50 150 250 350 150 50 - - 350 50 33838 60 160 260 360 160 60 260 60 360 60 33839 70 170 270 370 170 70 - - 370 70 33840 80 180 280 380 180 80 - - 380 80 33841 90 190 290 390 190 90 290 90 390 90 33842} 33843do_execsql_test joinD-1151 { 33844 SELECT t1.*, t2.*, t3.*, t4.* 33845 FROM t1 FULL JOIN t2 ON t2.x>0 33846 FULL JOIN t3 ON t3.y>0 33847 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 33848 WHERE t1.b = t2.b AND t1.c = t3.c 33849 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33850} { 33851 30 130 230 330 130 30 230 30 330 30 33852 60 160 260 360 160 60 260 60 360 60 33853 90 190 290 390 190 90 290 90 390 90 33854} 33855do_execsql_test joinD-1152 { 33856 SELECT t1.*, t2.*, t3.*, t4.* 33857 FROM t1 FULL JOIN t2 ON t2.x>0 33858 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 33859 RIGHT JOIN t4 ON t4.z>0 33860 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 33861 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33862} { 33863 10 110 210 310 110 10 - - 310 10 33864 20 120 220 320 120 20 - - 320 20 33865 30 130 230 330 130 30 230 30 330 30 33866 40 140 240 340 140 40 - - 340 40 33867 50 150 250 350 150 50 - - 350 50 33868 60 160 260 360 160 60 260 60 360 60 33869 70 170 270 370 170 70 - - 370 70 33870 80 180 280 380 180 80 - - 380 80 33871 90 190 290 390 190 90 290 90 390 90 33872} 33873do_execsql_test joinD-1153 { 33874 SELECT t1.*, t2.*, t3.*, t4.* 33875 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33876 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33877 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 33878 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33879} { 33880 0 100 200 300 - - - - - - 33881 1 101 201 301 - - - - - - 33882 2 102 202 302 102 2 - - - - 33883 3 103 203 303 - - 203 3 - - 33884 4 104 204 304 104 4 - - - - 33885 5 105 205 305 - - - - 305 5 33886 6 106 206 306 106 6 206 6 - - 33887 7 107 207 307 - - - - - - 33888 8 108 208 308 108 8 - - - - 33889 9 109 209 309 - - 209 9 - - 33890 10 110 210 310 110 10 - - 310 10 33891 11 111 211 311 - - - - - - 33892 12 112 212 312 112 12 212 12 - - 33893 13 113 213 313 - - - - - - 33894 14 114 214 314 114 14 - - - - 33895 15 115 215 315 - - 215 15 315 15 33896 16 116 216 316 116 16 - - - - 33897 17 117 217 317 - - - - - - 33898 18 118 218 318 118 18 218 18 - - 33899 19 119 219 319 - - - - - - 33900 20 120 220 320 120 20 - - 320 20 33901 21 121 221 321 - - 221 21 - - 33902 22 122 222 322 122 22 - - - - 33903 23 123 223 323 - - - - - - 33904 24 124 224 324 124 24 224 24 - - 33905 25 125 225 325 - - - - 325 25 33906 26 126 226 326 126 26 - - - - 33907 27 127 227 327 - - 227 27 - - 33908 28 128 228 328 128 28 - - - - 33909 29 129 229 329 - - - - - - 33910 30 130 230 330 130 30 230 30 330 30 33911 31 131 231 331 - - - - - - 33912 32 132 232 332 132 32 - - - - 33913 33 133 233 333 - - 233 33 - - 33914 34 134 234 334 134 34 - - - - 33915 35 135 235 335 - - - - 335 35 33916 36 136 236 336 136 36 236 36 - - 33917 37 137 237 337 - - - - - - 33918 38 138 238 338 138 38 - - - - 33919 39 139 239 339 - - 239 39 - - 33920 40 140 240 340 140 40 - - 340 40 33921 41 141 241 341 - - - - - - 33922 42 142 242 342 142 42 242 42 - - 33923 43 143 243 343 - - - - - - 33924 44 144 244 344 144 44 - - - - 33925 45 145 245 345 - - 245 45 345 45 33926 46 146 246 346 146 46 - - - - 33927 47 147 247 347 - - - - - - 33928 48 148 248 348 148 48 248 48 - - 33929 49 149 249 349 - - - - - - 33930 50 150 250 350 150 50 - - 350 50 33931 51 151 251 351 - - 251 51 - - 33932 52 152 252 352 152 52 - - - - 33933 53 153 253 353 - - - - - - 33934 54 154 254 354 154 54 254 54 - - 33935 55 155 255 355 - - - - 355 55 33936 56 156 256 356 156 56 - - - - 33937 57 157 257 357 - - 257 57 - - 33938 58 158 258 358 158 58 - - - - 33939 59 159 259 359 - - - - - - 33940 60 160 260 360 160 60 260 60 360 60 33941 61 161 261 361 - - - - - - 33942 62 162 262 362 162 62 - - - - 33943 63 163 263 363 - - 263 63 - - 33944 64 164 264 364 164 64 - - - - 33945 65 165 265 365 - - - - 365 65 33946 66 166 266 366 166 66 266 66 - - 33947 67 167 267 367 - - - - - - 33948 68 168 268 368 168 68 - - - - 33949 69 169 269 369 - - 269 69 - - 33950 70 170 270 370 170 70 - - 370 70 33951 71 171 271 371 - - - - - - 33952 72 172 272 372 172 72 272 72 - - 33953 73 173 273 373 - - - - - - 33954 74 174 274 374 174 74 - - - - 33955 75 175 275 375 - - 275 75 375 75 33956 76 176 276 376 176 76 - - - - 33957 77 177 277 377 - - - - - - 33958 78 178 278 378 178 78 278 78 - - 33959 79 179 279 379 - - - - - - 33960 80 180 280 380 180 80 - - 380 80 33961 81 181 281 381 - - 281 81 - - 33962 82 182 282 382 182 82 - - - - 33963 83 183 283 383 - - - - - - 33964 84 184 284 384 184 84 284 84 - - 33965 85 185 285 385 - - - - 385 85 33966 86 186 286 386 186 86 - - - - 33967 87 187 287 387 - - 287 87 - - 33968 88 188 288 388 188 88 - - - - 33969 89 189 289 389 - - - - - - 33970 90 190 290 390 190 90 290 90 390 90 33971 91 191 291 391 - - - - - - 33972 92 192 292 392 192 92 - - - - 33973 93 193 293 393 - - 293 93 - - 33974 94 194 294 394 194 94 - - - - 33975 95 195 295 395 - - - - 395 95 33976 96 - 296 396 - - - - - - 33977 97 197 - 397 - - - - - - 33978 98 198 298 - - - - - - - 33979 99 - - - - - - - - - 33980 - - - - 100 0 - - - - 33981 - - - - - - 200 0 - - 33982 - - - - - - - - 300 0 33983} 33984do_execsql_test joinD-1154 { 33985 SELECT t1.*, t2.*, t3.*, t4.* 33986 FROM t1 FULL JOIN t2 ON t1.b=t2.b 33987 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33988 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 33989 WHERE t2.x>0 33990 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33991} { 33992 2 102 202 302 102 2 - - - - 33993 4 104 204 304 104 4 - - - - 33994 6 106 206 306 106 6 206 6 - - 33995 8 108 208 308 108 8 - - - - 33996 10 110 210 310 110 10 - - 310 10 33997 12 112 212 312 112 12 212 12 - - 33998 14 114 214 314 114 14 - - - - 33999 16 116 216 316 116 16 - - - - 34000 18 118 218 318 118 18 218 18 - - 34001 20 120 220 320 120 20 - - 320 20 34002 22 122 222 322 122 22 - - - - 34003 24 124 224 324 124 24 224 24 - - 34004 26 126 226 326 126 26 - - - - 34005 28 128 228 328 128 28 - - - - 34006 30 130 230 330 130 30 230 30 330 30 34007 32 132 232 332 132 32 - - - - 34008 34 134 234 334 134 34 - - - - 34009 36 136 236 336 136 36 236 36 - - 34010 38 138 238 338 138 38 - - - - 34011 40 140 240 340 140 40 - - 340 40 34012 42 142 242 342 142 42 242 42 - - 34013 44 144 244 344 144 44 - - - - 34014 46 146 246 346 146 46 - - - - 34015 48 148 248 348 148 48 248 48 - - 34016 50 150 250 350 150 50 - - 350 50 34017 52 152 252 352 152 52 - - - - 34018 54 154 254 354 154 54 254 54 - - 34019 56 156 256 356 156 56 - - - - 34020 58 158 258 358 158 58 - - - - 34021 60 160 260 360 160 60 260 60 360 60 34022 62 162 262 362 162 62 - - - - 34023 64 164 264 364 164 64 - - - - 34024 66 166 266 366 166 66 266 66 - - 34025 68 168 268 368 168 68 - - - - 34026 70 170 270 370 170 70 - - 370 70 34027 72 172 272 372 172 72 272 72 - - 34028 74 174 274 374 174 74 - - - - 34029 76 176 276 376 176 76 - - - - 34030 78 178 278 378 178 78 278 78 - - 34031 80 180 280 380 180 80 - - 380 80 34032 82 182 282 382 182 82 - - - - 34033 84 184 284 384 184 84 284 84 - - 34034 86 186 286 386 186 86 - - - - 34035 88 188 288 388 188 88 - - - - 34036 90 190 290 390 190 90 290 90 390 90 34037 92 192 292 392 192 92 - - - - 34038 94 194 294 394 194 94 - - - - 34039} 34040do_execsql_test joinD-1155 { 34041 SELECT t1.*, t2.*, t3.*, t4.* 34042 FROM t1 FULL JOIN t2 ON t1.b=t2.b 34043 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 34044 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 34045 WHERE (t2.x>0 OR t2.x IS NULL) 34046 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34047} { 34048 1 101 201 301 - - - - - - 34049 2 102 202 302 102 2 - - - - 34050 3 103 203 303 - - 203 3 - - 34051 4 104 204 304 104 4 - - - - 34052 5 105 205 305 - - - - 305 5 34053 6 106 206 306 106 6 206 6 - - 34054 7 107 207 307 - - - - - - 34055 8 108 208 308 108 8 - - - - 34056 9 109 209 309 - - 209 9 - - 34057 10 110 210 310 110 10 - - 310 10 34058 11 111 211 311 - - - - - - 34059 12 112 212 312 112 12 212 12 - - 34060 13 113 213 313 - - - - - - 34061 14 114 214 314 114 14 - - - - 34062 15 115 215 315 - - 215 15 315 15 34063 16 116 216 316 116 16 - - - - 34064 17 117 217 317 - - - - - - 34065 18 118 218 318 118 18 218 18 - - 34066 19 119 219 319 - - - - - - 34067 20 120 220 320 120 20 - - 320 20 34068 21 121 221 321 - - 221 21 - - 34069 22 122 222 322 122 22 - - - - 34070 23 123 223 323 - - - - - - 34071 24 124 224 324 124 24 224 24 - - 34072 25 125 225 325 - - - - 325 25 34073 26 126 226 326 126 26 - - - - 34074 27 127 227 327 - - 227 27 - - 34075 28 128 228 328 128 28 - - - - 34076 29 129 229 329 - - - - - - 34077 30 130 230 330 130 30 230 30 330 30 34078 31 131 231 331 - - - - - - 34079 32 132 232 332 132 32 - - - - 34080 33 133 233 333 - - 233 33 - - 34081 34 134 234 334 134 34 - - - - 34082 35 135 235 335 - - - - 335 35 34083 36 136 236 336 136 36 236 36 - - 34084 37 137 237 337 - - - - - - 34085 38 138 238 338 138 38 - - - - 34086 39 139 239 339 - - 239 39 - - 34087 40 140 240 340 140 40 - - 340 40 34088 41 141 241 341 - - - - - - 34089 42 142 242 342 142 42 242 42 - - 34090 43 143 243 343 - - - - - - 34091 44 144 244 344 144 44 - - - - 34092 45 145 245 345 - - 245 45 345 45 34093 46 146 246 346 146 46 - - - - 34094 47 147 247 347 - - - - - - 34095 48 148 248 348 148 48 248 48 - - 34096 49 149 249 349 - - - - - - 34097 50 150 250 350 150 50 - - 350 50 34098 51 151 251 351 - - 251 51 - - 34099 52 152 252 352 152 52 - - - - 34100 53 153 253 353 - - - - - - 34101 54 154 254 354 154 54 254 54 - - 34102 55 155 255 355 - - - - 355 55 34103 56 156 256 356 156 56 - - - - 34104 57 157 257 357 - - 257 57 - - 34105 58 158 258 358 158 58 - - - - 34106 59 159 259 359 - - - - - - 34107 60 160 260 360 160 60 260 60 360 60 34108 61 161 261 361 - - - - - - 34109 62 162 262 362 162 62 - - - - 34110 63 163 263 363 - - 263 63 - - 34111 64 164 264 364 164 64 - - - - 34112 65 165 265 365 - - - - 365 65 34113 66 166 266 366 166 66 266 66 - - 34114 67 167 267 367 - - - - - - 34115 68 168 268 368 168 68 - - - - 34116 69 169 269 369 - - 269 69 - - 34117 70 170 270 370 170 70 - - 370 70 34118 71 171 271 371 - - - - - - 34119 72 172 272 372 172 72 272 72 - - 34120 73 173 273 373 - - - - - - 34121 74 174 274 374 174 74 - - - - 34122 75 175 275 375 - - 275 75 375 75 34123 76 176 276 376 176 76 - - - - 34124 77 177 277 377 - - - - - - 34125 78 178 278 378 178 78 278 78 - - 34126 79 179 279 379 - - - - - - 34127 80 180 280 380 180 80 - - 380 80 34128 81 181 281 381 - - 281 81 - - 34129 82 182 282 382 182 82 - - - - 34130 83 183 283 383 - - - - - - 34131 84 184 284 384 184 84 284 84 - - 34132 85 185 285 385 - - - - 385 85 34133 86 186 286 386 186 86 - - - - 34134 87 187 287 387 - - 287 87 - - 34135 88 188 288 388 188 88 - - - - 34136 89 189 289 389 - - - - - - 34137 90 190 290 390 190 90 290 90 390 90 34138 91 191 291 391 - - - - - - 34139 92 192 292 392 192 92 - - - - 34140 93 193 293 393 - - 293 93 - - 34141 94 194 294 394 194 94 - - - - 34142 95 195 295 395 - - - - 395 95 34143 96 - 296 396 - - - - - - 34144 97 197 - 397 - - - - - - 34145 98 198 298 - - - - - - - 34146 99 - - - - - - - - - 34147 - - - - - - 200 0 - - 34148 - - - - - - - - 300 0 34149} 34150do_execsql_test joinD-1156 { 34151 SELECT t1.*, t2.*, t3.*, t4.* 34152 FROM t1 FULL JOIN t2 ON true 34153 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 34154 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 34155 WHERE t1.b=t2.b AND t2.x>0 34156 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34157} { 34158 2 102 202 302 102 2 - - - - 34159 4 104 204 304 104 4 - - - - 34160 6 106 206 306 106 6 206 6 - - 34161 8 108 208 308 108 8 - - - - 34162 10 110 210 310 110 10 - - 310 10 34163 12 112 212 312 112 12 212 12 - - 34164 14 114 214 314 114 14 - - - - 34165 16 116 216 316 116 16 - - - - 34166 18 118 218 318 118 18 218 18 - - 34167 20 120 220 320 120 20 - - 320 20 34168 22 122 222 322 122 22 - - - - 34169 24 124 224 324 124 24 224 24 - - 34170 26 126 226 326 126 26 - - - - 34171 28 128 228 328 128 28 - - - - 34172 30 130 230 330 130 30 230 30 330 30 34173 32 132 232 332 132 32 - - - - 34174 34 134 234 334 134 34 - - - - 34175 36 136 236 336 136 36 236 36 - - 34176 38 138 238 338 138 38 - - - - 34177 40 140 240 340 140 40 - - 340 40 34178 42 142 242 342 142 42 242 42 - - 34179 44 144 244 344 144 44 - - - - 34180 46 146 246 346 146 46 - - - - 34181 48 148 248 348 148 48 248 48 - - 34182 50 150 250 350 150 50 - - 350 50 34183 52 152 252 352 152 52 - - - - 34184 54 154 254 354 154 54 254 54 - - 34185 56 156 256 356 156 56 - - - - 34186 58 158 258 358 158 58 - - - - 34187 60 160 260 360 160 60 260 60 360 60 34188 62 162 262 362 162 62 - - - - 34189 64 164 264 364 164 64 - - - - 34190 66 166 266 366 166 66 266 66 - - 34191 68 168 268 368 168 68 - - - - 34192 70 170 270 370 170 70 - - 370 70 34193 72 172 272 372 172 72 272 72 - - 34194 74 174 274 374 174 74 - - - - 34195 76 176 276 376 176 76 - - - - 34196 78 178 278 378 178 78 278 78 - - 34197 80 180 280 380 180 80 - - 380 80 34198 82 182 282 382 182 82 - - - - 34199 84 184 284 384 184 84 284 84 - - 34200 86 186 286 386 186 86 - - - - 34201 88 188 288 388 188 88 - - - - 34202 90 190 290 390 190 90 290 90 390 90 34203 92 192 292 392 192 92 - - - - 34204 94 194 294 394 194 94 - - - - 34205} 34206do_execsql_test joinD-1157 { 34207 SELECT t1.*, t2.*, t3.*, t4.* 34208 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 34209 FULL JOIN t3 ON t1.c=t3.c 34210 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 34211 WHERE t3.y>0 34212 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34213} { 34214 3 103 203 303 - - 203 3 - - 34215 6 106 206 306 106 6 206 6 - - 34216 9 109 209 309 - - 209 9 - - 34217 12 112 212 312 112 12 212 12 - - 34218 15 115 215 315 - - 215 15 315 15 34219 18 118 218 318 118 18 218 18 - - 34220 21 121 221 321 - - 221 21 - - 34221 24 124 224 324 124 24 224 24 - - 34222 27 127 227 327 - - 227 27 - - 34223 30 130 230 330 130 30 230 30 330 30 34224 33 133 233 333 - - 233 33 - - 34225 36 136 236 336 136 36 236 36 - - 34226 39 139 239 339 - - 239 39 - - 34227 42 142 242 342 142 42 242 42 - - 34228 45 145 245 345 - - 245 45 345 45 34229 48 148 248 348 148 48 248 48 - - 34230 51 151 251 351 - - 251 51 - - 34231 54 154 254 354 154 54 254 54 - - 34232 57 157 257 357 - - 257 57 - - 34233 60 160 260 360 160 60 260 60 360 60 34234 63 163 263 363 - - 263 63 - - 34235 66 166 266 366 166 66 266 66 - - 34236 69 169 269 369 - - 269 69 - - 34237 72 172 272 372 172 72 272 72 - - 34238 75 175 275 375 - - 275 75 375 75 34239 78 178 278 378 178 78 278 78 - - 34240 81 181 281 381 - - 281 81 - - 34241 84 184 284 384 184 84 284 84 - - 34242 87 187 287 387 - - 287 87 - - 34243 90 190 290 390 190 90 290 90 390 90 34244 93 193 293 393 - - 293 93 - - 34245} 34246do_execsql_test joinD-1158 { 34247 SELECT t1.*, t2.*, t3.*, t4.* 34248 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 34249 FULL JOIN t3 ON t1.c=t3.c 34250 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 34251 WHERE t3.y>0 OR t3.y IS NULL 34252 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34253} { 34254 1 101 201 301 - - - - - - 34255 2 102 202 302 102 2 - - - - 34256 3 103 203 303 - - 203 3 - - 34257 4 104 204 304 104 4 - - - - 34258 5 105 205 305 - - - - 305 5 34259 6 106 206 306 106 6 206 6 - - 34260 7 107 207 307 - - - - - - 34261 8 108 208 308 108 8 - - - - 34262 9 109 209 309 - - 209 9 - - 34263 10 110 210 310 110 10 - - 310 10 34264 11 111 211 311 - - - - - - 34265 12 112 212 312 112 12 212 12 - - 34266 13 113 213 313 - - - - - - 34267 14 114 214 314 114 14 - - - - 34268 15 115 215 315 - - 215 15 315 15 34269 16 116 216 316 116 16 - - - - 34270 17 117 217 317 - - - - - - 34271 18 118 218 318 118 18 218 18 - - 34272 19 119 219 319 - - - - - - 34273 20 120 220 320 120 20 - - 320 20 34274 21 121 221 321 - - 221 21 - - 34275 22 122 222 322 122 22 - - - - 34276 23 123 223 323 - - - - - - 34277 24 124 224 324 124 24 224 24 - - 34278 25 125 225 325 - - - - 325 25 34279 26 126 226 326 126 26 - - - - 34280 27 127 227 327 - - 227 27 - - 34281 28 128 228 328 128 28 - - - - 34282 29 129 229 329 - - - - - - 34283 30 130 230 330 130 30 230 30 330 30 34284 31 131 231 331 - - - - - - 34285 32 132 232 332 132 32 - - - - 34286 33 133 233 333 - - 233 33 - - 34287 34 134 234 334 134 34 - - - - 34288 35 135 235 335 - - - - 335 35 34289 36 136 236 336 136 36 236 36 - - 34290 37 137 237 337 - - - - - - 34291 38 138 238 338 138 38 - - - - 34292 39 139 239 339 - - 239 39 - - 34293 40 140 240 340 140 40 - - 340 40 34294 41 141 241 341 - - - - - - 34295 42 142 242 342 142 42 242 42 - - 34296 43 143 243 343 - - - - - - 34297 44 144 244 344 144 44 - - - - 34298 45 145 245 345 - - 245 45 345 45 34299 46 146 246 346 146 46 - - - - 34300 47 147 247 347 - - - - - - 34301 48 148 248 348 148 48 248 48 - - 34302 49 149 249 349 - - - - - - 34303 50 150 250 350 150 50 - - 350 50 34304 51 151 251 351 - - 251 51 - - 34305 52 152 252 352 152 52 - - - - 34306 53 153 253 353 - - - - - - 34307 54 154 254 354 154 54 254 54 - - 34308 55 155 255 355 - - - - 355 55 34309 56 156 256 356 156 56 - - - - 34310 57 157 257 357 - - 257 57 - - 34311 58 158 258 358 158 58 - - - - 34312 59 159 259 359 - - - - - - 34313 60 160 260 360 160 60 260 60 360 60 34314 61 161 261 361 - - - - - - 34315 62 162 262 362 162 62 - - - - 34316 63 163 263 363 - - 263 63 - - 34317 64 164 264 364 164 64 - - - - 34318 65 165 265 365 - - - - 365 65 34319 66 166 266 366 166 66 266 66 - - 34320 67 167 267 367 - - - - - - 34321 68 168 268 368 168 68 - - - - 34322 69 169 269 369 - - 269 69 - - 34323 70 170 270 370 170 70 - - 370 70 34324 71 171 271 371 - - - - - - 34325 72 172 272 372 172 72 272 72 - - 34326 73 173 273 373 - - - - - - 34327 74 174 274 374 174 74 - - - - 34328 75 175 275 375 - - 275 75 375 75 34329 76 176 276 376 176 76 - - - - 34330 77 177 277 377 - - - - - - 34331 78 178 278 378 178 78 278 78 - - 34332 79 179 279 379 - - - - - - 34333 80 180 280 380 180 80 - - 380 80 34334 81 181 281 381 - - 281 81 - - 34335 82 182 282 382 182 82 - - - - 34336 83 183 283 383 - - - - - - 34337 84 184 284 384 184 84 284 84 - - 34338 85 185 285 385 - - - - 385 85 34339 86 186 286 386 186 86 - - - - 34340 87 187 287 387 - - 287 87 - - 34341 88 188 288 388 188 88 - - - - 34342 89 189 289 389 - - - - - - 34343 90 190 290 390 190 90 290 90 390 90 34344 91 191 291 391 - - - - - - 34345 92 192 292 392 192 92 - - - - 34346 93 193 293 393 - - 293 93 - - 34347 94 194 294 394 194 94 - - - - 34348 95 195 295 395 - - - - 395 95 34349 96 - 296 396 - - - - - - 34350 97 197 - 397 - - - - - - 34351 98 198 298 - - - - - - - 34352 99 - - - - - - - - - 34353 - - - - 100 0 - - - - 34354 - - - - - - - - 300 0 34355} 34356do_execsql_test joinD-1159 { 34357 SELECT t1.*, t2.*, t3.*, t4.* 34358 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 34359 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 34360 FULL JOIN t4 ON t1.d=t4.d 34361 WHERE t4.z>0 34362 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34363} { 34364 5 105 205 305 - - - - 305 5 34365 10 110 210 310 110 10 - - 310 10 34366 15 115 215 315 - - 215 15 315 15 34367 20 120 220 320 120 20 - - 320 20 34368 25 125 225 325 - - - - 325 25 34369 30 130 230 330 130 30 230 30 330 30 34370 35 135 235 335 - - - - 335 35 34371 40 140 240 340 140 40 - - 340 40 34372 45 145 245 345 - - 245 45 345 45 34373 50 150 250 350 150 50 - - 350 50 34374 55 155 255 355 - - - - 355 55 34375 60 160 260 360 160 60 260 60 360 60 34376 65 165 265 365 - - - - 365 65 34377 70 170 270 370 170 70 - - 370 70 34378 75 175 275 375 - - 275 75 375 75 34379 80 180 280 380 180 80 - - 380 80 34380 85 185 285 385 - - - - 385 85 34381 90 190 290 390 190 90 290 90 390 90 34382 95 195 295 395 - - - - 395 95 34383} 34384do_execsql_test joinD-1160 { 34385 SELECT t1.*, t2.*, t3.*, t4.* 34386 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 34387 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 34388 FULL JOIN t4 ON t1.d=t4.d 34389 WHERE t4.z IS NULL OR t4.z>0 34390 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34391} { 34392 1 101 201 301 - - - - - - 34393 2 102 202 302 102 2 - - - - 34394 3 103 203 303 - - 203 3 - - 34395 4 104 204 304 104 4 - - - - 34396 5 105 205 305 - - - - 305 5 34397 6 106 206 306 106 6 206 6 - - 34398 7 107 207 307 - - - - - - 34399 8 108 208 308 108 8 - - - - 34400 9 109 209 309 - - 209 9 - - 34401 10 110 210 310 110 10 - - 310 10 34402 11 111 211 311 - - - - - - 34403 12 112 212 312 112 12 212 12 - - 34404 13 113 213 313 - - - - - - 34405 14 114 214 314 114 14 - - - - 34406 15 115 215 315 - - 215 15 315 15 34407 16 116 216 316 116 16 - - - - 34408 17 117 217 317 - - - - - - 34409 18 118 218 318 118 18 218 18 - - 34410 19 119 219 319 - - - - - - 34411 20 120 220 320 120 20 - - 320 20 34412 21 121 221 321 - - 221 21 - - 34413 22 122 222 322 122 22 - - - - 34414 23 123 223 323 - - - - - - 34415 24 124 224 324 124 24 224 24 - - 34416 25 125 225 325 - - - - 325 25 34417 26 126 226 326 126 26 - - - - 34418 27 127 227 327 - - 227 27 - - 34419 28 128 228 328 128 28 - - - - 34420 29 129 229 329 - - - - - - 34421 30 130 230 330 130 30 230 30 330 30 34422 31 131 231 331 - - - - - - 34423 32 132 232 332 132 32 - - - - 34424 33 133 233 333 - - 233 33 - - 34425 34 134 234 334 134 34 - - - - 34426 35 135 235 335 - - - - 335 35 34427 36 136 236 336 136 36 236 36 - - 34428 37 137 237 337 - - - - - - 34429 38 138 238 338 138 38 - - - - 34430 39 139 239 339 - - 239 39 - - 34431 40 140 240 340 140 40 - - 340 40 34432 41 141 241 341 - - - - - - 34433 42 142 242 342 142 42 242 42 - - 34434 43 143 243 343 - - - - - - 34435 44 144 244 344 144 44 - - - - 34436 45 145 245 345 - - 245 45 345 45 34437 46 146 246 346 146 46 - - - - 34438 47 147 247 347 - - - - - - 34439 48 148 248 348 148 48 248 48 - - 34440 49 149 249 349 - - - - - - 34441 50 150 250 350 150 50 - - 350 50 34442 51 151 251 351 - - 251 51 - - 34443 52 152 252 352 152 52 - - - - 34444 53 153 253 353 - - - - - - 34445 54 154 254 354 154 54 254 54 - - 34446 55 155 255 355 - - - - 355 55 34447 56 156 256 356 156 56 - - - - 34448 57 157 257 357 - - 257 57 - - 34449 58 158 258 358 158 58 - - - - 34450 59 159 259 359 - - - - - - 34451 60 160 260 360 160 60 260 60 360 60 34452 61 161 261 361 - - - - - - 34453 62 162 262 362 162 62 - - - - 34454 63 163 263 363 - - 263 63 - - 34455 64 164 264 364 164 64 - - - - 34456 65 165 265 365 - - - - 365 65 34457 66 166 266 366 166 66 266 66 - - 34458 67 167 267 367 - - - - - - 34459 68 168 268 368 168 68 - - - - 34460 69 169 269 369 - - 269 69 - - 34461 70 170 270 370 170 70 - - 370 70 34462 71 171 271 371 - - - - - - 34463 72 172 272 372 172 72 272 72 - - 34464 73 173 273 373 - - - - - - 34465 74 174 274 374 174 74 - - - - 34466 75 175 275 375 - - 275 75 375 75 34467 76 176 276 376 176 76 - - - - 34468 77 177 277 377 - - - - - - 34469 78 178 278 378 178 78 278 78 - - 34470 79 179 279 379 - - - - - - 34471 80 180 280 380 180 80 - - 380 80 34472 81 181 281 381 - - 281 81 - - 34473 82 182 282 382 182 82 - - - - 34474 83 183 283 383 - - - - - - 34475 84 184 284 384 184 84 284 84 - - 34476 85 185 285 385 - - - - 385 85 34477 86 186 286 386 186 86 - - - - 34478 87 187 287 387 - - 287 87 - - 34479 88 188 288 388 188 88 - - - - 34480 89 189 289 389 - - - - - - 34481 90 190 290 390 190 90 290 90 390 90 34482 91 191 291 391 - - - - - - 34483 92 192 292 392 192 92 - - - - 34484 93 193 293 393 - - 293 93 - - 34485 94 194 294 394 194 94 - - - - 34486 95 195 295 395 - - - - 395 95 34487 96 - 296 396 - - - - - - 34488 97 197 - 397 - - - - - - 34489 98 198 298 - - - - - - - 34490 99 - - - - - - - - - 34491 - - - - 100 0 - - - - 34492 - - - - - - 200 0 - - 34493} 34494do_execsql_test joinD-1161 { 34495 SELECT t1.*, t2.*, t3.*, t4.* 34496 FROM t1 FULL JOIN t2 ON t1.b=t2.b 34497 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 34498 FULL JOIN t4 ON t1.d=t4.d 34499 WHERE t2.x>0 AND t4.z>0 34500 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34501} { 34502 10 110 210 310 110 10 - - 310 10 34503 20 120 220 320 120 20 - - 320 20 34504 30 130 230 330 130 30 230 30 330 30 34505 40 140 240 340 140 40 - - 340 40 34506 50 150 250 350 150 50 - - 350 50 34507 60 160 260 360 160 60 260 60 360 60 34508 70 170 270 370 170 70 - - 370 70 34509 80 180 280 380 180 80 - - 380 80 34510 90 190 290 390 190 90 290 90 390 90 34511} 34512do_execsql_test joinD-1162 { 34513 SELECT t1.*, t2.*, t3.*, t4.* 34514 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 34515 FULL JOIN t3 ON t1.c=t3.c 34516 FULL JOIN t4 ON t1.d=t4.d 34517 WHERE t4.z>0 AND t3.y>0 34518 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34519} { 34520 15 115 215 315 - - 215 15 315 15 34521 30 130 230 330 130 30 230 30 330 30 34522 45 145 245 345 - - 245 45 345 45 34523 60 160 260 360 160 60 260 60 360 60 34524 75 175 275 375 - - 275 75 375 75 34525 90 190 290 390 190 90 290 90 390 90 34526} 34527do_execsql_test joinD-1163 { 34528 SELECT t1.*, t2.*, t3.*, t4.* 34529 FROM t1 FULL JOIN t2 ON t1.b=t2.b 34530 FULL JOIN t3 ON t1.c=t3.c 34531 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 34532 WHERE t2.x>0 AND t3.y>0 34533 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34534} { 34535 6 106 206 306 106 6 206 6 - - 34536 12 112 212 312 112 12 212 12 - - 34537 18 118 218 318 118 18 218 18 - - 34538 24 124 224 324 124 24 224 24 - - 34539 30 130 230 330 130 30 230 30 330 30 34540 36 136 236 336 136 36 236 36 - - 34541 42 142 242 342 142 42 242 42 - - 34542 48 148 248 348 148 48 248 48 - - 34543 54 154 254 354 154 54 254 54 - - 34544 60 160 260 360 160 60 260 60 360 60 34545 66 166 266 366 166 66 266 66 - - 34546 72 172 272 372 172 72 272 72 - - 34547 78 178 278 378 178 78 278 78 - - 34548 84 184 284 384 184 84 284 84 - - 34549 90 190 290 390 190 90 290 90 390 90 34550} 34551do_execsql_test joinD-1164 { 34552 SELECT t1.*, t2.*, t3.*, t4.* 34553 FROM t1 FULL JOIN t2 ON t1.b=t2.b 34554 FULL JOIN t3 ON t1.c=t3.c 34555 FULL JOIN t4 ON t1.d=t4.d 34556 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 34557 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34558} { 34559 30 130 230 330 130 30 230 30 330 30 34560 60 160 260 360 160 60 260 60 360 60 34561 90 190 290 390 190 90 290 90 390 90 34562} 34563do_execsql_test joinD-1165 { 34564 SELECT t1.*, t2.*, t3.*, t4.* 34565 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 34566 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 34567 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 34568 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34569} { 34570 0 100 200 300 - - - - - - 34571 1 101 201 301 - - - - - - 34572 2 102 202 302 102 2 - - - - 34573 3 103 203 303 - - 203 3 - - 34574 4 104 204 304 104 4 - - - - 34575 5 105 205 305 - - - - 305 5 34576 6 106 206 306 106 6 206 6 - - 34577 7 107 207 307 - - - - - - 34578 8 108 208 308 108 8 - - - - 34579 9 109 209 309 - - 209 9 - - 34580 10 110 210 310 110 10 - - 310 10 34581 11 111 211 311 - - - - - - 34582 12 112 212 312 112 12 212 12 - - 34583 13 113 213 313 - - - - - - 34584 14 114 214 314 114 14 - - - - 34585 15 115 215 315 - - 215 15 315 15 34586 16 116 216 316 116 16 - - - - 34587 17 117 217 317 - - - - - - 34588 18 118 218 318 118 18 218 18 - - 34589 19 119 219 319 - - - - - - 34590 20 120 220 320 120 20 - - 320 20 34591 21 121 221 321 - - 221 21 - - 34592 22 122 222 322 122 22 - - - - 34593 23 123 223 323 - - - - - - 34594 24 124 224 324 124 24 224 24 - - 34595 25 125 225 325 - - - - 325 25 34596 26 126 226 326 126 26 - - - - 34597 27 127 227 327 - - 227 27 - - 34598 28 128 228 328 128 28 - - - - 34599 29 129 229 329 - - - - - - 34600 30 130 230 330 130 30 230 30 330 30 34601 31 131 231 331 - - - - - - 34602 32 132 232 332 132 32 - - - - 34603 33 133 233 333 - - 233 33 - - 34604 34 134 234 334 134 34 - - - - 34605 35 135 235 335 - - - - 335 35 34606 36 136 236 336 136 36 236 36 - - 34607 37 137 237 337 - - - - - - 34608 38 138 238 338 138 38 - - - - 34609 39 139 239 339 - - 239 39 - - 34610 40 140 240 340 140 40 - - 340 40 34611 41 141 241 341 - - - - - - 34612 42 142 242 342 142 42 242 42 - - 34613 43 143 243 343 - - - - - - 34614 44 144 244 344 144 44 - - - - 34615 45 145 245 345 - - 245 45 345 45 34616 46 146 246 346 146 46 - - - - 34617 47 147 247 347 - - - - - - 34618 48 148 248 348 148 48 248 48 - - 34619 49 149 249 349 - - - - - - 34620 50 150 250 350 150 50 - - 350 50 34621 51 151 251 351 - - 251 51 - - 34622 52 152 252 352 152 52 - - - - 34623 53 153 253 353 - - - - - - 34624 54 154 254 354 154 54 254 54 - - 34625 55 155 255 355 - - - - 355 55 34626 56 156 256 356 156 56 - - - - 34627 57 157 257 357 - - 257 57 - - 34628 58 158 258 358 158 58 - - - - 34629 59 159 259 359 - - - - - - 34630 60 160 260 360 160 60 260 60 360 60 34631 61 161 261 361 - - - - - - 34632 62 162 262 362 162 62 - - - - 34633 63 163 263 363 - - 263 63 - - 34634 64 164 264 364 164 64 - - - - 34635 65 165 265 365 - - - - 365 65 34636 66 166 266 366 166 66 266 66 - - 34637 67 167 267 367 - - - - - - 34638 68 168 268 368 168 68 - - - - 34639 69 169 269 369 - - 269 69 - - 34640 70 170 270 370 170 70 - - 370 70 34641 71 171 271 371 - - - - - - 34642 72 172 272 372 172 72 272 72 - - 34643 73 173 273 373 - - - - - - 34644 74 174 274 374 174 74 - - - - 34645 75 175 275 375 - - 275 75 375 75 34646 76 176 276 376 176 76 - - - - 34647 77 177 277 377 - - - - - - 34648 78 178 278 378 178 78 278 78 - - 34649 79 179 279 379 - - - - - - 34650 80 180 280 380 180 80 - - 380 80 34651 81 181 281 381 - - 281 81 - - 34652 82 182 282 382 182 82 - - - - 34653 83 183 283 383 - - - - - - 34654 84 184 284 384 184 84 284 84 - - 34655 85 185 285 385 - - - - 385 85 34656 86 186 286 386 186 86 - - - - 34657 87 187 287 387 - - 287 87 - - 34658 88 188 288 388 188 88 - - - - 34659 89 189 289 389 - - - - - - 34660 90 190 290 390 190 90 290 90 390 90 34661 91 191 291 391 - - - - - - 34662 92 192 292 392 192 92 - - - - 34663 93 193 293 393 - - 293 93 - - 34664 94 194 294 394 194 94 - - - - 34665 95 195 295 395 - - - - 395 95 34666 96 - 296 396 - - - - - - 34667 97 197 - 397 - - - - - - 34668 98 198 298 - - - - - - - 34669 99 - - - - - - - - - 34670 - - - - 100 0 - - - - 34671 - - - - - - 200 0 - - 34672 - - - - - - - - 300 0 34673} 34674do_execsql_test joinD-1166 { 34675 SELECT t1.*, t2.*, t3.*, t4.* 34676 FROM t1 FULL JOIN t2 ON t2.x>0 34677 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 34678 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 34679 WHERE t1.b = t2.b 34680 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34681} { 34682 2 102 202 302 102 2 - - - - 34683 4 104 204 304 104 4 - - - - 34684 6 106 206 306 106 6 206 6 - - 34685 8 108 208 308 108 8 - - - - 34686 10 110 210 310 110 10 - - 310 10 34687 12 112 212 312 112 12 212 12 - - 34688 14 114 214 314 114 14 - - - - 34689 16 116 216 316 116 16 - - - - 34690 18 118 218 318 118 18 218 18 - - 34691 20 120 220 320 120 20 - - 320 20 34692 22 122 222 322 122 22 - - - - 34693 24 124 224 324 124 24 224 24 - - 34694 26 126 226 326 126 26 - - - - 34695 28 128 228 328 128 28 - - - - 34696 30 130 230 330 130 30 230 30 330 30 34697 32 132 232 332 132 32 - - - - 34698 34 134 234 334 134 34 - - - - 34699 36 136 236 336 136 36 236 36 - - 34700 38 138 238 338 138 38 - - - - 34701 40 140 240 340 140 40 - - 340 40 34702 42 142 242 342 142 42 242 42 - - 34703 44 144 244 344 144 44 - - - - 34704 46 146 246 346 146 46 - - - - 34705 48 148 248 348 148 48 248 48 - - 34706 50 150 250 350 150 50 - - 350 50 34707 52 152 252 352 152 52 - - - - 34708 54 154 254 354 154 54 254 54 - - 34709 56 156 256 356 156 56 - - - - 34710 58 158 258 358 158 58 - - - - 34711 60 160 260 360 160 60 260 60 360 60 34712 62 162 262 362 162 62 - - - - 34713 64 164 264 364 164 64 - - - - 34714 66 166 266 366 166 66 266 66 - - 34715 68 168 268 368 168 68 - - - - 34716 70 170 270 370 170 70 - - 370 70 34717 72 172 272 372 172 72 272 72 - - 34718 74 174 274 374 174 74 - - - - 34719 76 176 276 376 176 76 - - - - 34720 78 178 278 378 178 78 278 78 - - 34721 80 180 280 380 180 80 - - 380 80 34722 82 182 282 382 182 82 - - - - 34723 84 184 284 384 184 84 284 84 - - 34724 86 186 286 386 186 86 - - - - 34725 88 188 288 388 188 88 - - - - 34726 90 190 290 390 190 90 290 90 390 90 34727 92 192 292 392 192 92 - - - - 34728 94 194 294 394 194 94 - - - - 34729} 34730do_execsql_test joinD-1167 { 34731 SELECT t1.*, t2.*, t3.*, t4.* 34732 FROM t1 FULL JOIN t2 ON t2.x>0 34733 FULL JOIN t3 ON t3.y>0 34734 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 34735 WHERE t1.b = t2.b AND t1.c = t3.c 34736 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34737} { 34738 6 106 206 306 106 6 206 6 - - 34739 12 112 212 312 112 12 212 12 - - 34740 18 118 218 318 118 18 218 18 - - 34741 24 124 224 324 124 24 224 24 - - 34742 30 130 230 330 130 30 230 30 330 30 34743 36 136 236 336 136 36 236 36 - - 34744 42 142 242 342 142 42 242 42 - - 34745 48 148 248 348 148 48 248 48 - - 34746 54 154 254 354 154 54 254 54 - - 34747 60 160 260 360 160 60 260 60 360 60 34748 66 166 266 366 166 66 266 66 - - 34749 72 172 272 372 172 72 272 72 - - 34750 78 178 278 378 178 78 278 78 - - 34751 84 184 284 384 184 84 284 84 - - 34752 90 190 290 390 190 90 290 90 390 90 34753} 34754do_execsql_test joinD-1168 { 34755 SELECT t1.*, t2.*, t3.*, t4.* 34756 FROM t1 FULL JOIN t2 ON t2.x>0 34757 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 34758 FULL JOIN t4 ON t4.z>0 34759 WHERE t1.b = t2.b AND t1.d = t4.d 34760 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34761} { 34762 10 110 210 310 110 10 - - 310 10 34763 20 120 220 320 120 20 - - 320 20 34764 30 130 230 330 130 30 230 30 330 30 34765 40 140 240 340 140 40 - - 340 40 34766 50 150 250 350 150 50 - - 350 50 34767 60 160 260 360 160 60 260 60 360 60 34768 70 170 270 370 170 70 - - 370 70 34769 80 180 280 380 180 80 - - 380 80 34770 90 190 290 390 190 90 290 90 390 90 34771} 34772############################################################################# 34773# The following are extra tests added manually 34774do_execsql_test joinD-extra-1000 { 34775 CREATE VIEW v1 AS 34776 SELECT * 34777 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 34778 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 34779 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0; 34780 CREATE TRIGGER v1r1 INSTEAD OF UPDATE OF c ON v1 BEGIN 34781 UPDATE t1 SET c=new.c WHERE (a,b,c,d) IS (old.a,old.b,old.c,old.d); 34782 UPDATE t3 SET c=new.c WHERE (c,y) IS (old.c,old.y); 34783 END; 34784 SELECT * FROM v1 WHERE y BETWEEN 30 AND 40 ORDER BY y; 34785} { 34786 30 130 230 330 130 30 230 30 330 30 34787 - - - - - - 233 33 - - 34788 36 136 236 336 136 36 236 36 - - 34789 - - - - - - 239 39 - - 34790} 34791do_execsql_test joinD-extra-1010 { 34792 BEGIN; 34793 UPDATE v1 SET c=c+1000 WHERE y BETWEEN 30 and 40; 34794 SELECT * FROM v1 WHERE y BETWEEN 30 AND 40 ORDER BY y; 34795 ROLLBACK; 34796} { 34797 30 130 1230 330 130 30 1230 30 330 30 34798 - - - - - - 233 33 - - 34799 36 136 1236 336 136 36 1236 36 - - 34800 - - - - - - 239 39 - - 34801} 34802finish_test 34803############################################################################# 34804# This is the TCL script used to generate the psql script that generated 34805# the data above. 34806# 34807# puts " 34808# \\pset border off 34809# \\pset tuples_only on 34810# \\pset null - 34811# 34812# DROP TABLE IF EXISTS t1; 34813# DROP TABLE IF EXISTS t2; 34814# DROP TABLE IF EXISTS t3; 34815# DROP TABLE IF EXISTS t4; 34816# CREATE TABLE t1(a INT, b INT, c INT, d INT); 34817# WITH RECURSIVE c(x) AS (VALUES(0) UNION ALL SELECT x+1 FROM c WHERE x<95) 34818# INSERT INTO t1(a,b,c,d) SELECT x, x+100, x+200, x+300 FROM c; 34819# CREATE TABLE t2(b INT, x INT); 34820# INSERT INTO t2(b,x) SELECT b, a FROM t1 WHERE a%2=0; 34821# CREATE INDEX t2b ON t2(b); 34822# CREATE TABLE t3(c INT, y INT); 34823# INSERT INTO t3(c,y) SELECT c, a FROM t1 WHERE a%3=0; 34824# CREATE INDEX t3c ON t3(c); 34825# CREATE TABLE t4(d INT, z INT); 34826# INSERT INTO t4(d,z) SELECT d, a FROM t1 WHERE a%5=0; 34827# CREATE INDEX t4d ON t4(d); 34828# INSERT INTO t1(a,b,c,d) VALUES 34829# (96,NULL,296,396), 34830# (97,197,NULL,397), 34831# (98,198,298,NULL), 34832# (99,NULL,NULL,NULL); 34833# " 34834# 34835# proc echo {prefix txt} { 34836# regsub -all {\n} $txt \n$prefix txt 34837# puts "$prefix$txt" 34838# } 34839# 34840# set n 0 34841# foreach j1 {INNER LEFT RIGHT FULL} { 34842# foreach j2 {INNER LEFT RIGHT FULL} { 34843# foreach j3 {INNER LEFT RIGHT FULL} { 34844# 34845# incr n 34846# set q1 "" 34847# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34848# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" 34849# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" 34850# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 34851# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34852# 34853# echo "\\qecho " "do_execsql_test joinB-$n \{" 34854# echo "\\qecho X " $q1 34855# echo "\\qecho " "\} \{" 34856# puts $q1 34857# echo "\\qecho " "\}" 34858# 34859# if {$j1!="FULL"} { 34860# incr n 34861# set q1 "" 34862# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34863# append q1 " FROM t1 $j1 JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0\n" 34864# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" 34865# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 34866# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34867# 34868# echo "\\qecho " "do_execsql_test joinB-$n \{" 34869# echo "\\qecho X " $q1 34870# echo "\\qecho " "\} \{" 34871# puts $q1 34872# echo "\\qecho " "\}" 34873# } 34874# 34875# incr n 34876# set q1 "" 34877# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34878# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n" 34879# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" 34880# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 34881# append q1 " WHERE t2.x>0\n" 34882# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34883# 34884# echo "\\qecho " "do_execsql_test joinB-$n \{" 34885# echo "\\qecho X " $q1 34886# echo "\\qecho " "\} \{" 34887# puts $q1 34888# echo "\\qecho " "\}" 34889# 34890# incr n 34891# set q1 "" 34892# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34893# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n" 34894# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" 34895# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 34896# append q1 " WHERE (t2.x>0 OR t2.x IS NULL)\n" 34897# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34898# 34899# echo "\\qecho " "do_execsql_test joinB-$n \{" 34900# echo "\\qecho X " $q1 34901# echo "\\qecho " "\} \{" 34902# puts $q1 34903# echo "\\qecho " "\}" 34904# 34905# incr n 34906# set q1 "" 34907# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34908# append q1 " FROM t1 $j1 JOIN t2 ON true\n" 34909# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" 34910# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 34911# append q1 " WHERE t1.b=t2.b AND t2.x>0\n" 34912# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34913# 34914# echo "\\qecho " "do_execsql_test joinB-$n \{" 34915# echo "\\qecho X " $q1 34916# echo "\\qecho " "\} \{" 34917# puts $q1 34918# echo "\\qecho " "\}" 34919# 34920# incr n 34921# set q1 "" 34922# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34923# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" 34924# append q1 " $j2 JOIN t3 ON t1.c=t3.c\n" 34925# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 34926# append q1 " WHERE t3.y>0\n" 34927# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34928# 34929# echo "\\qecho " "do_execsql_test joinB-$n \{" 34930# echo "\\qecho X " $q1 34931# echo "\\qecho " "\} \{" 34932# puts $q1 34933# echo "\\qecho " "\}" 34934# 34935# incr n 34936# set q1 "" 34937# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34938# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" 34939# append q1 " $j2 JOIN t3 ON t1.c=t3.c\n" 34940# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 34941# append q1 " WHERE t3.y>0 OR t3.y IS NULL\n" 34942# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34943# 34944# echo "\\qecho " "do_execsql_test joinB-$n \{" 34945# echo "\\qecho X " $q1 34946# echo "\\qecho " "\} \{" 34947# puts $q1 34948# echo "\\qecho " "\}" 34949# 34950# incr n 34951# set q1 "" 34952# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34953# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" 34954# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" 34955# append q1 " $j3 JOIN t4 ON t1.d=t4.d\n" 34956# append q1 " WHERE t4.z>0\n" 34957# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34958# 34959# echo "\\qecho " "do_execsql_test joinB-$n \{" 34960# echo "\\qecho X " $q1 34961# echo "\\qecho " "\} \{" 34962# puts $q1 34963# echo "\\qecho " "\}" 34964# 34965# incr n 34966# set q1 "" 34967# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34968# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" 34969# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" 34970# append q1 " $j3 JOIN t4 ON t1.d=t4.d\n" 34971# append q1 " WHERE t4.z IS NULL OR t4.z>0\n" 34972# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34973# 34974# echo "\\qecho " "do_execsql_test joinB-$n \{" 34975# echo "\\qecho X " $q1 34976# echo "\\qecho " "\} \{" 34977# puts $q1 34978# echo "\\qecho " "\}" 34979# 34980# incr n 34981# set q1 "" 34982# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34983# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n" 34984# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" 34985# append q1 " $j3 JOIN t4 ON t1.d=t4.d\n" 34986# append q1 " WHERE t2.x>0 AND t4.z>0\n" 34987# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34988# 34989# echo "\\qecho " "do_execsql_test joinB-$n \{" 34990# echo "\\qecho X " $q1 34991# echo "\\qecho " "\} \{" 34992# puts $q1 34993# echo "\\qecho " "\}" 34994# 34995# incr n 34996# set q1 "" 34997# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34998# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" 34999# append q1 " $j2 JOIN t3 ON t1.c=t3.c\n" 35000# append q1 " $j3 JOIN t4 ON t1.d=t4.d\n" 35001# append q1 " WHERE t4.z>0 AND t3.y>0\n" 35002# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 35003# 35004# echo "\\qecho " "do_execsql_test joinB-$n \{" 35005# echo "\\qecho X " $q1 35006# echo "\\qecho " "\} \{" 35007# puts $q1 35008# echo "\\qecho " "\}" 35009# 35010# incr n 35011# set q1 "" 35012# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 35013# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n" 35014# append q1 " $j2 JOIN t3 ON t1.c=t3.c\n" 35015# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 35016# append q1 " WHERE t2.x>0 AND t3.y>0\n" 35017# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 35018# 35019# echo "\\qecho " "do_execsql_test joinB-$n \{" 35020# echo "\\qecho X " $q1 35021# echo "\\qecho " "\} \{" 35022# puts $q1 35023# echo "\\qecho " "\}" 35024# 35025# incr n 35026# set q1 "" 35027# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 35028# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n" 35029# append q1 " $j2 JOIN t3 ON t1.c=t3.c\n" 35030# append q1 " $j3 JOIN t4 ON t1.d=t4.d\n" 35031# append q1 " WHERE t2.x>0 AND t3.y>0 AND t4.z>0\n" 35032# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 35033# 35034# echo "\\qecho " "do_execsql_test joinB-$n \{" 35035# echo "\\qecho X " $q1 35036# echo "\\qecho " "\} \{" 35037# puts $q1 35038# echo "\\qecho " "\}" 35039# 35040# set op1 [expr {$j1=="FULL"?"=":"IS NOT DISTINCT FROM"}] 35041# set op2 [expr {$j2=="FULL"?"=":"IS NOT DISTINCT FROM"}] 35042# set op3 [expr {$j3=="FULL"?"=":"IS NOT DISTINCT FROM"}] 35043# incr n 35044# set q1 "" 35045# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 35046# append q1 " FROM t1 $j1 JOIN t2 ON t1.b $op1 t2.b AND t2.x>0\n" 35047# append q1 " $j2 JOIN t3 ON t1.c $op2 t3.c AND t3.y>0\n" 35048# append q1 " $j3 JOIN t4 ON t1.d $op3 t4.d AND t4.z>0\n" 35049# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 35050# 35051# echo "\\qecho " "do_execsql_test joinB-$n \{" 35052# echo "\\qecho X " $q1 35053# echo "\\qecho " "\} \{" 35054# puts $q1 35055# echo "\\qecho " "\}" 35056# 35057# incr n 35058# set q1 "" 35059# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 35060# append q1 " FROM t1 $j1 JOIN t2 ON t2.x>0\n" 35061# append q1 " $j2 JOIN t3 ON t1.c $op2 t3.c AND t3.y>0\n" 35062# append q1 " $j3 JOIN t4 ON t1.d $op3 t4.d AND t4.z>0\n" 35063# append q1 " WHERE t1.b $op1 t2.b\n" 35064# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 35065# 35066# echo "\\qecho " "do_execsql_test joinB-$n \{" 35067# echo "\\qecho X " $q1 35068# echo "\\qecho " "\} \{" 35069# puts $q1 35070# echo "\\qecho " "\}" 35071# 35072# incr n 35073# set q1 "" 35074# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 35075# append q1 " FROM t1 $j1 JOIN t2 ON t2.x>0\n" 35076# append q1 " $j2 JOIN t3 ON t3.y>0\n" 35077# append q1 " $j3 JOIN t4 ON t1.d $op3 t4.d AND t4.z>0\n" 35078# append q1 " WHERE t1.b $op1 t2.b AND t1.c $op2 t3.c\n" 35079# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 35080# 35081# echo "\\qecho " "do_execsql_test joinB-$n \{" 35082# echo "\\qecho X " $q1 35083# echo "\\qecho " "\} \{" 35084# puts $q1 35085# echo "\\qecho " "\}" 35086# 35087# incr n 35088# set q1 "" 35089# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 35090# append q1 " FROM t1 $j1 JOIN t2 ON t2.x>0\n" 35091# append q1 " $j2 JOIN t3 ON t1.c $op2 t3.c AND t3.y>0\n" 35092# append q1 " $j3 JOIN t4 ON t4.z>0\n" 35093# append q1 " WHERE t1.b $op1 t2.b AND t1.d $op3 t4.d\n" 35094# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 35095# 35096# echo "\\qecho " "do_execsql_test joinB-$n \{" 35097# echo "\\qecho X " $q1 35098# echo "\\qecho " "\} \{" 35099# puts $q1 35100# echo "\\qecho " "\}" 35101# 35102# if {$j1!="FULL"} { 35103# incr n 35104# set q1 "" 35105# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 35106# append q1 " FROM t1 $j1 JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0\n" 35107# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" 35108# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 35109# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 35110# 35111# echo "\\qecho " "do_execsql_test joinB-$n \{" 35112# echo "\\qecho X " $q1 35113# echo "\\qecho " "\} \{" 35114# puts $q1 35115# echo "\\qecho " "\}" 35116# } 35117# 35118# if {$j2!="FULL"} { 35119# incr n 35120# set q1 "" 35121# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 35122# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" 35123# append q1 " $j2 JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0\n" 35124# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 35125# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 35126# 35127# echo "\\qecho " "do_execsql_test joinB-$n \{" 35128# echo "\\qecho X " $q1 35129# echo "\\qecho " "\} \{" 35130# puts $q1 35131# echo "\\qecho " "\}" 35132# } 35133# } 35134# } 35135# } 35136# 35137