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# This file implements tests for JOINs that use Bloom filters. 14# 15# The test case output is (mostly) all generated by PostgreSQL 14. This 16# test module was created as follows: 17# 18# 1. Run a TCL script (included at the bottom of this file) that 19# generates an input script for "psql" that will run man 20# diverse tests on joins. 21# 22# 2. Run the script from step (1) through psql and collect the 23# output. 24# 25# 3. Make a few minor global search-and-replace operations to convert 26# the psql output into a form suitable for this test module. 27# 28# 4. Add this header, and the script content at the footer. 29# 30# A few extra tests that were not generated from postgresql output are 31# added at the end. 32# 33set testdir [file dirname $argv0] 34source $testdir/tester.tcl 35db nullvalue - 36db eval { 37 CREATE TABLE t1(a INT, b INT, c INT, d INT); 38 WITH RECURSIVE c(x) AS (VALUES(0) UNION ALL SELECT x+1 FROM c WHERE x<95) 39 INSERT INTO t1(a,b,c,d) SELECT x, x+100, x+200, x+300 FROM c; 40 CREATE TABLE t2(b INT, x INT); 41 INSERT INTO t2(b,x) SELECT b, a FROM t1 WHERE a%2=0; 42 CREATE INDEX t2b ON t2(b); 43 CREATE TABLE t3(c INT, y INT); 44 INSERT INTO t3(c,y) SELECT c, a FROM t1 WHERE a%3=0; 45 CREATE INDEX t3c ON t3(c); 46 CREATE TABLE t4(d INT, z INT); 47 INSERT INTO t4(d,z) SELECT d, a FROM t1 WHERE a%5=0; 48 CREATE INDEX t4d ON t4(d); 49 INSERT INTO t1(a,b,c,d) VALUES 50 (96,NULL,296,396), 51 (97,197,NULL,397), 52 (98,198,298,NULL), 53 (99,NULL,NULL,NULL); 54 ANALYZE; 55} 56do_execsql_test joinD-1 { 57 SELECT t1.*, t2.*, t3.*, t4.* 58 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 59 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 60 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 61 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 62} { 63 30 130 230 330 130 30 230 30 330 30 64 60 160 260 360 160 60 260 60 360 60 65 90 190 290 390 190 90 290 90 390 90 66} 67do_execsql_test joinD-2 { 68 SELECT t1.*, t2.*, t3.*, t4.* 69 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 70 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 71 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 72 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 73} { 74 30 130 230 330 130 30 230 30 330 30 75 60 160 260 360 160 60 260 60 360 60 76 90 190 290 390 190 90 290 90 390 90 77} 78do_execsql_test joinD-3 { 79 SELECT t1.*, t2.*, t3.*, t4.* 80 FROM t1 INNER JOIN t2 ON t1.b=t2.b 81 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 82 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 83 WHERE t2.x>0 84 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 85} { 86 30 130 230 330 130 30 230 30 330 30 87 60 160 260 360 160 60 260 60 360 60 88 90 190 290 390 190 90 290 90 390 90 89} 90do_execsql_test joinD-4 { 91 SELECT t1.*, t2.*, t3.*, t4.* 92 FROM t1 INNER JOIN t2 ON t1.b=t2.b 93 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 94 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 95 WHERE (t2.x>0 OR t2.x IS NULL) 96 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 97} { 98 30 130 230 330 130 30 230 30 330 30 99 60 160 260 360 160 60 260 60 360 60 100 90 190 290 390 190 90 290 90 390 90 101} 102do_execsql_test joinD-5 { 103 SELECT t1.*, t2.*, t3.*, t4.* 104 FROM t1 INNER JOIN t2 ON true 105 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 106 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 107 WHERE t1.b=t2.b AND t2.x>0 108 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 109} { 110 30 130 230 330 130 30 230 30 330 30 111 60 160 260 360 160 60 260 60 360 60 112 90 190 290 390 190 90 290 90 390 90 113} 114do_execsql_test joinD-6 { 115 SELECT t1.*, t2.*, t3.*, t4.* 116 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 117 INNER JOIN t3 ON t1.c=t3.c 118 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 119 WHERE t3.y>0 120 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 121} { 122 30 130 230 330 130 30 230 30 330 30 123 60 160 260 360 160 60 260 60 360 60 124 90 190 290 390 190 90 290 90 390 90 125} 126do_execsql_test joinD-7 { 127 SELECT t1.*, t2.*, t3.*, t4.* 128 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 129 INNER JOIN t3 ON t1.c=t3.c 130 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 131 WHERE t3.y>0 OR t3.y IS NULL 132 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 133} { 134 30 130 230 330 130 30 230 30 330 30 135 60 160 260 360 160 60 260 60 360 60 136 90 190 290 390 190 90 290 90 390 90 137} 138do_execsql_test joinD-8 { 139 SELECT t1.*, t2.*, t3.*, t4.* 140 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 141 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 142 INNER JOIN t4 ON t1.d=t4.d 143 WHERE t4.z>0 144 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 145} { 146 30 130 230 330 130 30 230 30 330 30 147 60 160 260 360 160 60 260 60 360 60 148 90 190 290 390 190 90 290 90 390 90 149} 150do_execsql_test joinD-9 { 151 SELECT t1.*, t2.*, t3.*, t4.* 152 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 153 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 154 INNER JOIN t4 ON t1.d=t4.d 155 WHERE t4.z IS NULL OR t4.z>0 156 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 157} { 158 30 130 230 330 130 30 230 30 330 30 159 60 160 260 360 160 60 260 60 360 60 160 90 190 290 390 190 90 290 90 390 90 161} 162do_execsql_test joinD-10 { 163 SELECT t1.*, t2.*, t3.*, t4.* 164 FROM t1 INNER JOIN t2 ON t1.b=t2.b 165 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 166 INNER JOIN t4 ON t1.d=t4.d 167 WHERE t2.x>0 AND t4.z>0 168 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 169} { 170 30 130 230 330 130 30 230 30 330 30 171 60 160 260 360 160 60 260 60 360 60 172 90 190 290 390 190 90 290 90 390 90 173} 174do_execsql_test joinD-11 { 175 SELECT t1.*, t2.*, t3.*, t4.* 176 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 177 INNER JOIN t3 ON t1.c=t3.c 178 INNER JOIN t4 ON t1.d=t4.d 179 WHERE t4.z>0 AND t3.y>0 180 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 181} { 182 30 130 230 330 130 30 230 30 330 30 183 60 160 260 360 160 60 260 60 360 60 184 90 190 290 390 190 90 290 90 390 90 185} 186do_execsql_test joinD-12 { 187 SELECT t1.*, t2.*, t3.*, t4.* 188 FROM t1 INNER JOIN t2 ON t1.b=t2.b 189 INNER JOIN t3 ON t1.c=t3.c 190 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 191 WHERE t2.x>0 AND t3.y>0 192 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 193} { 194 30 130 230 330 130 30 230 30 330 30 195 60 160 260 360 160 60 260 60 360 60 196 90 190 290 390 190 90 290 90 390 90 197} 198do_execsql_test joinD-13 { 199 SELECT t1.*, t2.*, t3.*, t4.* 200 FROM t1 INNER JOIN t2 ON t1.b=t2.b 201 INNER JOIN t3 ON t1.c=t3.c 202 INNER JOIN t4 ON t1.d=t4.d 203 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 204 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 205} { 206 30 130 230 330 130 30 230 30 330 30 207 60 160 260 360 160 60 260 60 360 60 208 90 190 290 390 190 90 290 90 390 90 209} 210do_execsql_test joinD-14 { 211 SELECT t1.*, t2.*, t3.*, t4.* 212 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 213 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 214 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 215 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 216} { 217 30 130 230 330 130 30 230 30 330 30 218 60 160 260 360 160 60 260 60 360 60 219 90 190 290 390 190 90 290 90 390 90 220} 221do_execsql_test joinD-15 { 222 SELECT t1.*, t2.*, t3.*, t4.* 223 FROM t1 INNER JOIN t2 ON t2.x>0 224 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 225 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 226 WHERE t1.b IS NOT DISTINCT FROM t2.b 227 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 228} { 229 30 130 230 330 130 30 230 30 330 30 230 60 160 260 360 160 60 260 60 360 60 231 90 190 290 390 190 90 290 90 390 90 232} 233do_execsql_test joinD-16 { 234 SELECT t1.*, t2.*, t3.*, t4.* 235 FROM t1 INNER JOIN t2 ON t2.x>0 236 INNER JOIN t3 ON t3.y>0 237 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 238 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 239 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 240} { 241 30 130 230 330 130 30 230 30 330 30 242 60 160 260 360 160 60 260 60 360 60 243 90 190 290 390 190 90 290 90 390 90 244} 245do_execsql_test joinD-17 { 246 SELECT t1.*, t2.*, t3.*, t4.* 247 FROM t1 INNER JOIN t2 ON t2.x>0 248 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 249 INNER JOIN t4 ON t4.z>0 250 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 251 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 252} { 253 30 130 230 330 130 30 230 30 330 30 254 60 160 260 360 160 60 260 60 360 60 255 90 190 290 390 190 90 290 90 390 90 256} 257do_execsql_test joinD-18 { 258 SELECT t1.*, t2.*, t3.*, t4.* 259 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 260 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 261 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 262 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 263} { 264 30 130 230 330 130 30 230 30 330 30 265 60 160 260 360 160 60 260 60 360 60 266 90 190 290 390 190 90 290 90 390 90 267} 268do_execsql_test joinD-19 { 269 SELECT t1.*, t2.*, t3.*, t4.* 270 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 271 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 272 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 273 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 274} { 275 30 130 230 330 130 30 230 30 330 30 276 60 160 260 360 160 60 260 60 360 60 277 90 190 290 390 190 90 290 90 390 90 278} 279do_execsql_test joinD-20 { 280 SELECT t1.*, t2.*, t3.*, t4.* 281 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 282 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 283 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 284 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 285} { 286 6 106 206 306 106 6 206 6 - - 287 12 112 212 312 112 12 212 12 - - 288 18 118 218 318 118 18 218 18 - - 289 24 124 224 324 124 24 224 24 - - 290 30 130 230 330 130 30 230 30 330 30 291 36 136 236 336 136 36 236 36 - - 292 42 142 242 342 142 42 242 42 - - 293 48 148 248 348 148 48 248 48 - - 294 54 154 254 354 154 54 254 54 - - 295 60 160 260 360 160 60 260 60 360 60 296 66 166 266 366 166 66 266 66 - - 297 72 172 272 372 172 72 272 72 - - 298 78 178 278 378 178 78 278 78 - - 299 84 184 284 384 184 84 284 84 - - 300 90 190 290 390 190 90 290 90 390 90 301} 302do_execsql_test joinD-21 { 303 SELECT t1.*, t2.*, t3.*, t4.* 304 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 305 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 306 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 307 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 308} { 309 6 106 206 306 106 6 206 6 - - 310 12 112 212 312 112 12 212 12 - - 311 18 118 218 318 118 18 218 18 - - 312 24 124 224 324 124 24 224 24 - - 313 30 130 230 330 130 30 230 30 330 30 314 36 136 236 336 136 36 236 36 - - 315 42 142 242 342 142 42 242 42 - - 316 48 148 248 348 148 48 248 48 - - 317 54 154 254 354 154 54 254 54 - - 318 60 160 260 360 160 60 260 60 360 60 319 66 166 266 366 166 66 266 66 - - 320 72 172 272 372 172 72 272 72 - - 321 78 178 278 378 178 78 278 78 - - 322 84 184 284 384 184 84 284 84 - - 323 90 190 290 390 190 90 290 90 390 90 324} 325do_execsql_test joinD-22 { 326 SELECT t1.*, t2.*, t3.*, t4.* 327 FROM t1 INNER JOIN t2 ON t1.b=t2.b 328 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 329 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 330 WHERE t2.x>0 331 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 332} { 333 6 106 206 306 106 6 206 6 - - 334 12 112 212 312 112 12 212 12 - - 335 18 118 218 318 118 18 218 18 - - 336 24 124 224 324 124 24 224 24 - - 337 30 130 230 330 130 30 230 30 330 30 338 36 136 236 336 136 36 236 36 - - 339 42 142 242 342 142 42 242 42 - - 340 48 148 248 348 148 48 248 48 - - 341 54 154 254 354 154 54 254 54 - - 342 60 160 260 360 160 60 260 60 360 60 343 66 166 266 366 166 66 266 66 - - 344 72 172 272 372 172 72 272 72 - - 345 78 178 278 378 178 78 278 78 - - 346 84 184 284 384 184 84 284 84 - - 347 90 190 290 390 190 90 290 90 390 90 348} 349do_execsql_test joinD-23 { 350 SELECT t1.*, t2.*, t3.*, t4.* 351 FROM t1 INNER JOIN t2 ON t1.b=t2.b 352 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 353 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 354 WHERE (t2.x>0 OR t2.x IS NULL) 355 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 356} { 357 6 106 206 306 106 6 206 6 - - 358 12 112 212 312 112 12 212 12 - - 359 18 118 218 318 118 18 218 18 - - 360 24 124 224 324 124 24 224 24 - - 361 30 130 230 330 130 30 230 30 330 30 362 36 136 236 336 136 36 236 36 - - 363 42 142 242 342 142 42 242 42 - - 364 48 148 248 348 148 48 248 48 - - 365 54 154 254 354 154 54 254 54 - - 366 60 160 260 360 160 60 260 60 360 60 367 66 166 266 366 166 66 266 66 - - 368 72 172 272 372 172 72 272 72 - - 369 78 178 278 378 178 78 278 78 - - 370 84 184 284 384 184 84 284 84 - - 371 90 190 290 390 190 90 290 90 390 90 372} 373do_execsql_test joinD-24 { 374 SELECT t1.*, t2.*, t3.*, t4.* 375 FROM t1 INNER JOIN t2 ON true 376 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 377 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 378 WHERE t1.b=t2.b AND t2.x>0 379 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 380} { 381 6 106 206 306 106 6 206 6 - - 382 12 112 212 312 112 12 212 12 - - 383 18 118 218 318 118 18 218 18 - - 384 24 124 224 324 124 24 224 24 - - 385 30 130 230 330 130 30 230 30 330 30 386 36 136 236 336 136 36 236 36 - - 387 42 142 242 342 142 42 242 42 - - 388 48 148 248 348 148 48 248 48 - - 389 54 154 254 354 154 54 254 54 - - 390 60 160 260 360 160 60 260 60 360 60 391 66 166 266 366 166 66 266 66 - - 392 72 172 272 372 172 72 272 72 - - 393 78 178 278 378 178 78 278 78 - - 394 84 184 284 384 184 84 284 84 - - 395 90 190 290 390 190 90 290 90 390 90 396} 397do_execsql_test joinD-25 { 398 SELECT t1.*, t2.*, t3.*, t4.* 399 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 400 INNER JOIN t3 ON t1.c=t3.c 401 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 402 WHERE t3.y>0 403 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 404} { 405 6 106 206 306 106 6 206 6 - - 406 12 112 212 312 112 12 212 12 - - 407 18 118 218 318 118 18 218 18 - - 408 24 124 224 324 124 24 224 24 - - 409 30 130 230 330 130 30 230 30 330 30 410 36 136 236 336 136 36 236 36 - - 411 42 142 242 342 142 42 242 42 - - 412 48 148 248 348 148 48 248 48 - - 413 54 154 254 354 154 54 254 54 - - 414 60 160 260 360 160 60 260 60 360 60 415 66 166 266 366 166 66 266 66 - - 416 72 172 272 372 172 72 272 72 - - 417 78 178 278 378 178 78 278 78 - - 418 84 184 284 384 184 84 284 84 - - 419 90 190 290 390 190 90 290 90 390 90 420} 421do_execsql_test joinD-26 { 422 SELECT t1.*, t2.*, t3.*, t4.* 423 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 424 INNER JOIN t3 ON t1.c=t3.c 425 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 426 WHERE t3.y>0 OR t3.y IS NULL 427 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 428} { 429 6 106 206 306 106 6 206 6 - - 430 12 112 212 312 112 12 212 12 - - 431 18 118 218 318 118 18 218 18 - - 432 24 124 224 324 124 24 224 24 - - 433 30 130 230 330 130 30 230 30 330 30 434 36 136 236 336 136 36 236 36 - - 435 42 142 242 342 142 42 242 42 - - 436 48 148 248 348 148 48 248 48 - - 437 54 154 254 354 154 54 254 54 - - 438 60 160 260 360 160 60 260 60 360 60 439 66 166 266 366 166 66 266 66 - - 440 72 172 272 372 172 72 272 72 - - 441 78 178 278 378 178 78 278 78 - - 442 84 184 284 384 184 84 284 84 - - 443 90 190 290 390 190 90 290 90 390 90 444} 445do_execsql_test joinD-27 { 446 SELECT t1.*, t2.*, t3.*, t4.* 447 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 448 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 449 LEFT JOIN t4 ON t1.d=t4.d 450 WHERE t4.z>0 451 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 452} { 453 30 130 230 330 130 30 230 30 330 30 454 60 160 260 360 160 60 260 60 360 60 455 90 190 290 390 190 90 290 90 390 90 456} 457do_execsql_test joinD-28 { 458 SELECT t1.*, t2.*, t3.*, t4.* 459 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 460 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 461 LEFT JOIN t4 ON t1.d=t4.d 462 WHERE t4.z IS NULL OR t4.z>0 463 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 464} { 465 6 106 206 306 106 6 206 6 - - 466 12 112 212 312 112 12 212 12 - - 467 18 118 218 318 118 18 218 18 - - 468 24 124 224 324 124 24 224 24 - - 469 30 130 230 330 130 30 230 30 330 30 470 36 136 236 336 136 36 236 36 - - 471 42 142 242 342 142 42 242 42 - - 472 48 148 248 348 148 48 248 48 - - 473 54 154 254 354 154 54 254 54 - - 474 60 160 260 360 160 60 260 60 360 60 475 66 166 266 366 166 66 266 66 - - 476 72 172 272 372 172 72 272 72 - - 477 78 178 278 378 178 78 278 78 - - 478 84 184 284 384 184 84 284 84 - - 479 90 190 290 390 190 90 290 90 390 90 480} 481do_execsql_test joinD-29 { 482 SELECT t1.*, t2.*, t3.*, t4.* 483 FROM t1 INNER JOIN t2 ON t1.b=t2.b 484 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 485 LEFT JOIN t4 ON t1.d=t4.d 486 WHERE t2.x>0 AND t4.z>0 487 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 488} { 489 30 130 230 330 130 30 230 30 330 30 490 60 160 260 360 160 60 260 60 360 60 491 90 190 290 390 190 90 290 90 390 90 492} 493do_execsql_test joinD-30 { 494 SELECT t1.*, t2.*, t3.*, t4.* 495 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 496 INNER JOIN t3 ON t1.c=t3.c 497 LEFT JOIN t4 ON t1.d=t4.d 498 WHERE t4.z>0 AND t3.y>0 499 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 500} { 501 30 130 230 330 130 30 230 30 330 30 502 60 160 260 360 160 60 260 60 360 60 503 90 190 290 390 190 90 290 90 390 90 504} 505do_execsql_test joinD-31 { 506 SELECT t1.*, t2.*, t3.*, t4.* 507 FROM t1 INNER JOIN t2 ON t1.b=t2.b 508 INNER JOIN t3 ON t1.c=t3.c 509 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 510 WHERE t2.x>0 AND t3.y>0 511 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 512} { 513 6 106 206 306 106 6 206 6 - - 514 12 112 212 312 112 12 212 12 - - 515 18 118 218 318 118 18 218 18 - - 516 24 124 224 324 124 24 224 24 - - 517 30 130 230 330 130 30 230 30 330 30 518 36 136 236 336 136 36 236 36 - - 519 42 142 242 342 142 42 242 42 - - 520 48 148 248 348 148 48 248 48 - - 521 54 154 254 354 154 54 254 54 - - 522 60 160 260 360 160 60 260 60 360 60 523 66 166 266 366 166 66 266 66 - - 524 72 172 272 372 172 72 272 72 - - 525 78 178 278 378 178 78 278 78 - - 526 84 184 284 384 184 84 284 84 - - 527 90 190 290 390 190 90 290 90 390 90 528} 529do_execsql_test joinD-32 { 530 SELECT t1.*, t2.*, t3.*, t4.* 531 FROM t1 INNER JOIN t2 ON t1.b=t2.b 532 INNER JOIN t3 ON t1.c=t3.c 533 LEFT JOIN t4 ON t1.d=t4.d 534 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 535 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 536} { 537 30 130 230 330 130 30 230 30 330 30 538 60 160 260 360 160 60 260 60 360 60 539 90 190 290 390 190 90 290 90 390 90 540} 541do_execsql_test joinD-33 { 542 SELECT t1.*, t2.*, t3.*, t4.* 543 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 544 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 545 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 546 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 547} { 548 6 106 206 306 106 6 206 6 - - 549 12 112 212 312 112 12 212 12 - - 550 18 118 218 318 118 18 218 18 - - 551 24 124 224 324 124 24 224 24 - - 552 30 130 230 330 130 30 230 30 330 30 553 36 136 236 336 136 36 236 36 - - 554 42 142 242 342 142 42 242 42 - - 555 48 148 248 348 148 48 248 48 - - 556 54 154 254 354 154 54 254 54 - - 557 60 160 260 360 160 60 260 60 360 60 558 66 166 266 366 166 66 266 66 - - 559 72 172 272 372 172 72 272 72 - - 560 78 178 278 378 178 78 278 78 - - 561 84 184 284 384 184 84 284 84 - - 562 90 190 290 390 190 90 290 90 390 90 563} 564do_execsql_test joinD-34 { 565 SELECT t1.*, t2.*, t3.*, t4.* 566 FROM t1 INNER JOIN t2 ON t2.x>0 567 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 568 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 569 WHERE t1.b IS NOT DISTINCT FROM t2.b 570 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 571} { 572 6 106 206 306 106 6 206 6 - - 573 12 112 212 312 112 12 212 12 - - 574 18 118 218 318 118 18 218 18 - - 575 24 124 224 324 124 24 224 24 - - 576 30 130 230 330 130 30 230 30 330 30 577 36 136 236 336 136 36 236 36 - - 578 42 142 242 342 142 42 242 42 - - 579 48 148 248 348 148 48 248 48 - - 580 54 154 254 354 154 54 254 54 - - 581 60 160 260 360 160 60 260 60 360 60 582 66 166 266 366 166 66 266 66 - - 583 72 172 272 372 172 72 272 72 - - 584 78 178 278 378 178 78 278 78 - - 585 84 184 284 384 184 84 284 84 - - 586 90 190 290 390 190 90 290 90 390 90 587} 588do_execsql_test joinD-35 { 589 SELECT t1.*, t2.*, t3.*, t4.* 590 FROM t1 INNER JOIN t2 ON t2.x>0 591 INNER JOIN t3 ON t3.y>0 592 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 593 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 594 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 595} { 596 6 106 206 306 106 6 206 6 - - 597 12 112 212 312 112 12 212 12 - - 598 18 118 218 318 118 18 218 18 - - 599 24 124 224 324 124 24 224 24 - - 600 30 130 230 330 130 30 230 30 330 30 601 36 136 236 336 136 36 236 36 - - 602 42 142 242 342 142 42 242 42 - - 603 48 148 248 348 148 48 248 48 - - 604 54 154 254 354 154 54 254 54 - - 605 60 160 260 360 160 60 260 60 360 60 606 66 166 266 366 166 66 266 66 - - 607 72 172 272 372 172 72 272 72 - - 608 78 178 278 378 178 78 278 78 - - 609 84 184 284 384 184 84 284 84 - - 610 90 190 290 390 190 90 290 90 390 90 611} 612do_execsql_test joinD-36 { 613 SELECT t1.*, t2.*, t3.*, t4.* 614 FROM t1 INNER JOIN t2 ON t2.x>0 615 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 616 LEFT JOIN t4 ON t4.z>0 617 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 618 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 619} { 620 30 130 230 330 130 30 230 30 330 30 621 60 160 260 360 160 60 260 60 360 60 622 90 190 290 390 190 90 290 90 390 90 623} 624do_execsql_test joinD-37 { 625 SELECT t1.*, t2.*, t3.*, t4.* 626 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 627 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 628 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 629 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 630} { 631 6 106 206 306 106 6 206 6 - - 632 12 112 212 312 112 12 212 12 - - 633 18 118 218 318 118 18 218 18 - - 634 24 124 224 324 124 24 224 24 - - 635 30 130 230 330 130 30 230 30 330 30 636 36 136 236 336 136 36 236 36 - - 637 42 142 242 342 142 42 242 42 - - 638 48 148 248 348 148 48 248 48 - - 639 54 154 254 354 154 54 254 54 - - 640 60 160 260 360 160 60 260 60 360 60 641 66 166 266 366 166 66 266 66 - - 642 72 172 272 372 172 72 272 72 - - 643 78 178 278 378 178 78 278 78 - - 644 84 184 284 384 184 84 284 84 - - 645 90 190 290 390 190 90 290 90 390 90 646} 647do_execsql_test joinD-38 { 648 SELECT t1.*, t2.*, t3.*, t4.* 649 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 650 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 651 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 652 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 653} { 654 6 106 206 306 106 6 206 6 - - 655 12 112 212 312 112 12 212 12 - - 656 18 118 218 318 118 18 218 18 - - 657 24 124 224 324 124 24 224 24 - - 658 30 130 230 330 130 30 230 30 330 30 659 36 136 236 336 136 36 236 36 - - 660 42 142 242 342 142 42 242 42 - - 661 48 148 248 348 148 48 248 48 - - 662 54 154 254 354 154 54 254 54 - - 663 60 160 260 360 160 60 260 60 360 60 664 66 166 266 366 166 66 266 66 - - 665 72 172 272 372 172 72 272 72 - - 666 78 178 278 378 178 78 278 78 - - 667 84 184 284 384 184 84 284 84 - - 668 90 190 290 390 190 90 290 90 390 90 669} 670do_execsql_test joinD-39 { 671 SELECT t1.*, t2.*, t3.*, t4.* 672 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 673 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 674 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 675 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 676} { 677 30 130 230 330 130 30 230 30 330 30 678 60 160 260 360 160 60 260 60 360 60 679 90 190 290 390 190 90 290 90 390 90 680 - - - - - - - - 300 0 681 - - - - - - - - 305 5 682 - - - - - - - - 310 10 683 - - - - - - - - 315 15 684 - - - - - - - - 320 20 685 - - - - - - - - 325 25 686 - - - - - - - - 335 35 687 - - - - - - - - 340 40 688 - - - - - - - - 345 45 689 - - - - - - - - 350 50 690 - - - - - - - - 355 55 691 - - - - - - - - 365 65 692 - - - - - - - - 370 70 693 - - - - - - - - 375 75 694 - - - - - - - - 380 80 695 - - - - - - - - 385 85 696 - - - - - - - - 395 95 697} 698do_execsql_test joinD-40 { 699 SELECT t1.*, t2.*, t3.*, t4.* 700 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 701 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 702 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 703 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 704} { 705 30 130 230 330 130 30 230 30 330 30 706 60 160 260 360 160 60 260 60 360 60 707 90 190 290 390 190 90 290 90 390 90 708 - - - - - - - - 300 0 709 - - - - - - - - 305 5 710 - - - - - - - - 310 10 711 - - - - - - - - 315 15 712 - - - - - - - - 320 20 713 - - - - - - - - 325 25 714 - - - - - - - - 335 35 715 - - - - - - - - 340 40 716 - - - - - - - - 345 45 717 - - - - - - - - 350 50 718 - - - - - - - - 355 55 719 - - - - - - - - 365 65 720 - - - - - - - - 370 70 721 - - - - - - - - 375 75 722 - - - - - - - - 380 80 723 - - - - - - - - 385 85 724 - - - - - - - - 395 95 725} 726do_execsql_test joinD-41 { 727 SELECT t1.*, t2.*, t3.*, t4.* 728 FROM t1 INNER JOIN t2 ON t1.b=t2.b 729 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 730 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 731 WHERE t2.x>0 732 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 733} { 734 30 130 230 330 130 30 230 30 330 30 735 60 160 260 360 160 60 260 60 360 60 736 90 190 290 390 190 90 290 90 390 90 737} 738do_execsql_test joinD-42 { 739 SELECT t1.*, t2.*, t3.*, t4.* 740 FROM t1 INNER JOIN t2 ON t1.b=t2.b 741 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 742 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 743 WHERE (t2.x>0 OR t2.x IS NULL) 744 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 745} { 746 30 130 230 330 130 30 230 30 330 30 747 60 160 260 360 160 60 260 60 360 60 748 90 190 290 390 190 90 290 90 390 90 749 - - - - - - - - 300 0 750 - - - - - - - - 305 5 751 - - - - - - - - 310 10 752 - - - - - - - - 315 15 753 - - - - - - - - 320 20 754 - - - - - - - - 325 25 755 - - - - - - - - 335 35 756 - - - - - - - - 340 40 757 - - - - - - - - 345 45 758 - - - - - - - - 350 50 759 - - - - - - - - 355 55 760 - - - - - - - - 365 65 761 - - - - - - - - 370 70 762 - - - - - - - - 375 75 763 - - - - - - - - 380 80 764 - - - - - - - - 385 85 765 - - - - - - - - 395 95 766} 767do_execsql_test joinD-43 { 768 SELECT t1.*, t2.*, t3.*, t4.* 769 FROM t1 INNER JOIN t2 ON true 770 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 771 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 772 WHERE t1.b=t2.b AND t2.x>0 773 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 774} { 775 30 130 230 330 130 30 230 30 330 30 776 60 160 260 360 160 60 260 60 360 60 777 90 190 290 390 190 90 290 90 390 90 778} 779do_execsql_test joinD-44 { 780 SELECT t1.*, t2.*, t3.*, t4.* 781 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 782 INNER JOIN t3 ON t1.c=t3.c 783 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 784 WHERE t3.y>0 785 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 786} { 787 30 130 230 330 130 30 230 30 330 30 788 60 160 260 360 160 60 260 60 360 60 789 90 190 290 390 190 90 290 90 390 90 790} 791do_execsql_test joinD-45 { 792 SELECT t1.*, t2.*, t3.*, t4.* 793 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 794 INNER JOIN t3 ON t1.c=t3.c 795 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 796 WHERE t3.y>0 OR t3.y IS NULL 797 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 798} { 799 30 130 230 330 130 30 230 30 330 30 800 60 160 260 360 160 60 260 60 360 60 801 90 190 290 390 190 90 290 90 390 90 802 - - - - - - - - 300 0 803 - - - - - - - - 305 5 804 - - - - - - - - 310 10 805 - - - - - - - - 315 15 806 - - - - - - - - 320 20 807 - - - - - - - - 325 25 808 - - - - - - - - 335 35 809 - - - - - - - - 340 40 810 - - - - - - - - 345 45 811 - - - - - - - - 350 50 812 - - - - - - - - 355 55 813 - - - - - - - - 365 65 814 - - - - - - - - 370 70 815 - - - - - - - - 375 75 816 - - - - - - - - 380 80 817 - - - - - - - - 385 85 818 - - - - - - - - 395 95 819} 820do_execsql_test joinD-46 { 821 SELECT t1.*, t2.*, t3.*, t4.* 822 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 823 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 824 RIGHT JOIN t4 ON t1.d=t4.d 825 WHERE t4.z>0 826 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 827} { 828 30 130 230 330 130 30 230 30 330 30 829 60 160 260 360 160 60 260 60 360 60 830 90 190 290 390 190 90 290 90 390 90 831 - - - - - - - - 305 5 832 - - - - - - - - 310 10 833 - - - - - - - - 315 15 834 - - - - - - - - 320 20 835 - - - - - - - - 325 25 836 - - - - - - - - 335 35 837 - - - - - - - - 340 40 838 - - - - - - - - 345 45 839 - - - - - - - - 350 50 840 - - - - - - - - 355 55 841 - - - - - - - - 365 65 842 - - - - - - - - 370 70 843 - - - - - - - - 375 75 844 - - - - - - - - 380 80 845 - - - - - - - - 385 85 846 - - - - - - - - 395 95 847} 848do_execsql_test joinD-47 { 849 SELECT t1.*, t2.*, t3.*, t4.* 850 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 851 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 852 RIGHT JOIN t4 ON t1.d=t4.d 853 WHERE t4.z IS NULL OR t4.z>0 854 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 855} { 856 30 130 230 330 130 30 230 30 330 30 857 60 160 260 360 160 60 260 60 360 60 858 90 190 290 390 190 90 290 90 390 90 859 - - - - - - - - 305 5 860 - - - - - - - - 310 10 861 - - - - - - - - 315 15 862 - - - - - - - - 320 20 863 - - - - - - - - 325 25 864 - - - - - - - - 335 35 865 - - - - - - - - 340 40 866 - - - - - - - - 345 45 867 - - - - - - - - 350 50 868 - - - - - - - - 355 55 869 - - - - - - - - 365 65 870 - - - - - - - - 370 70 871 - - - - - - - - 375 75 872 - - - - - - - - 380 80 873 - - - - - - - - 385 85 874 - - - - - - - - 395 95 875} 876do_execsql_test joinD-48 { 877 SELECT t1.*, t2.*, t3.*, t4.* 878 FROM t1 INNER JOIN t2 ON t1.b=t2.b 879 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 880 RIGHT JOIN t4 ON t1.d=t4.d 881 WHERE t2.x>0 AND t4.z>0 882 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 883} { 884 30 130 230 330 130 30 230 30 330 30 885 60 160 260 360 160 60 260 60 360 60 886 90 190 290 390 190 90 290 90 390 90 887} 888do_execsql_test joinD-49 { 889 SELECT t1.*, t2.*, t3.*, t4.* 890 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 891 INNER JOIN t3 ON t1.c=t3.c 892 RIGHT JOIN t4 ON t1.d=t4.d 893 WHERE t4.z>0 AND t3.y>0 894 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 895} { 896 30 130 230 330 130 30 230 30 330 30 897 60 160 260 360 160 60 260 60 360 60 898 90 190 290 390 190 90 290 90 390 90 899} 900do_execsql_test joinD-50 { 901 SELECT t1.*, t2.*, t3.*, t4.* 902 FROM t1 INNER JOIN t2 ON t1.b=t2.b 903 INNER JOIN t3 ON t1.c=t3.c 904 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 905 WHERE t2.x>0 AND t3.y>0 906 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 907} { 908 30 130 230 330 130 30 230 30 330 30 909 60 160 260 360 160 60 260 60 360 60 910 90 190 290 390 190 90 290 90 390 90 911} 912do_execsql_test joinD-51 { 913 SELECT t1.*, t2.*, t3.*, t4.* 914 FROM t1 INNER JOIN t2 ON t1.b=t2.b 915 INNER JOIN t3 ON t1.c=t3.c 916 RIGHT JOIN t4 ON t1.d=t4.d 917 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 918 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 919} { 920 30 130 230 330 130 30 230 30 330 30 921 60 160 260 360 160 60 260 60 360 60 922 90 190 290 390 190 90 290 90 390 90 923} 924do_execsql_test joinD-52 { 925 SELECT t1.*, t2.*, t3.*, t4.* 926 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 927 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 928 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 929 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 930} { 931 30 130 230 330 130 30 230 30 330 30 932 60 160 260 360 160 60 260 60 360 60 933 90 190 290 390 190 90 290 90 390 90 934 - - - - - - - - 300 0 935 - - - - - - - - 305 5 936 - - - - - - - - 310 10 937 - - - - - - - - 315 15 938 - - - - - - - - 320 20 939 - - - - - - - - 325 25 940 - - - - - - - - 335 35 941 - - - - - - - - 340 40 942 - - - - - - - - 345 45 943 - - - - - - - - 350 50 944 - - - - - - - - 355 55 945 - - - - - - - - 365 65 946 - - - - - - - - 370 70 947 - - - - - - - - 375 75 948 - - - - - - - - 380 80 949 - - - - - - - - 385 85 950 - - - - - - - - 395 95 951} 952do_execsql_test joinD-53 { 953 SELECT t1.*, t2.*, t3.*, t4.* 954 FROM t1 INNER JOIN t2 ON t2.x>0 955 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 956 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 957 WHERE t1.b IS NOT DISTINCT FROM t2.b 958 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 959} { 960 30 130 230 330 130 30 230 30 330 30 961 60 160 260 360 160 60 260 60 360 60 962 90 190 290 390 190 90 290 90 390 90 963 - - - - - - - - 300 0 964 - - - - - - - - 305 5 965 - - - - - - - - 310 10 966 - - - - - - - - 320 20 967 - - - - - - - - 325 25 968 - - - - - - - - 335 35 969 - - - - - - - - 340 40 970 - - - - - - - - 350 50 971 - - - - - - - - 355 55 972 - - - - - - - - 365 65 973 - - - - - - - - 370 70 974 - - - - - - - - 380 80 975 - - - - - - - - 385 85 976 - - - - - - - - 395 95 977} 978do_execsql_test joinD-54 { 979 SELECT t1.*, t2.*, t3.*, t4.* 980 FROM t1 INNER JOIN t2 ON t2.x>0 981 INNER JOIN t3 ON t3.y>0 982 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 983 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 984 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 985} { 986 30 130 230 330 130 30 230 30 330 30 987 60 160 260 360 160 60 260 60 360 60 988 90 190 290 390 190 90 290 90 390 90 989 - - - - - - - - 300 0 990} 991do_execsql_test joinD-55 { 992 SELECT t1.*, t2.*, t3.*, t4.* 993 FROM t1 INNER JOIN t2 ON t2.x>0 994 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 995 RIGHT JOIN t4 ON t4.z>0 996 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 997 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 998} { 999 30 130 230 330 130 30 230 30 330 30 1000 60 160 260 360 160 60 260 60 360 60 1001 90 190 290 390 190 90 290 90 390 90 1002} 1003do_execsql_test joinD-56 { 1004 SELECT t1.*, t2.*, t3.*, t4.* 1005 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 1006 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1007 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 1008 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1009} { 1010 30 130 230 330 130 30 230 30 330 30 1011 60 160 260 360 160 60 260 60 360 60 1012 90 190 290 390 190 90 290 90 390 90 1013 - - - - - - - - 300 0 1014 - - - - - - - - 305 5 1015 - - - - - - - - 310 10 1016 - - - - - - - - 315 15 1017 - - - - - - - - 320 20 1018 - - - - - - - - 325 25 1019 - - - - - - - - 335 35 1020 - - - - - - - - 340 40 1021 - - - - - - - - 345 45 1022 - - - - - - - - 350 50 1023 - - - - - - - - 355 55 1024 - - - - - - - - 365 65 1025 - - - - - - - - 370 70 1026 - - - - - - - - 375 75 1027 - - - - - - - - 380 80 1028 - - - - - - - - 385 85 1029 - - - - - - - - 395 95 1030} 1031do_execsql_test joinD-57 { 1032 SELECT t1.*, t2.*, t3.*, t4.* 1033 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1034 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 1035 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 1036 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1037} { 1038 30 130 230 330 130 30 230 30 330 30 1039 60 160 260 360 160 60 260 60 360 60 1040 90 190 290 390 190 90 290 90 390 90 1041 - - - - - - - - 300 0 1042 - - - - - - - - 305 5 1043 - - - - - - - - 310 10 1044 - - - - - - - - 315 15 1045 - - - - - - - - 320 20 1046 - - - - - - - - 325 25 1047 - - - - - - - - 335 35 1048 - - - - - - - - 340 40 1049 - - - - - - - - 345 45 1050 - - - - - - - - 350 50 1051 - - - - - - - - 355 55 1052 - - - - - - - - 365 65 1053 - - - - - - - - 370 70 1054 - - - - - - - - 375 75 1055 - - - - - - - - 380 80 1056 - - - - - - - - 385 85 1057 - - - - - - - - 395 95 1058} 1059do_execsql_test joinD-58 { 1060 SELECT t1.*, t2.*, t3.*, t4.* 1061 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1062 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1063 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1064 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1065} { 1066 6 106 206 306 106 6 206 6 - - 1067 12 112 212 312 112 12 212 12 - - 1068 18 118 218 318 118 18 218 18 - - 1069 24 124 224 324 124 24 224 24 - - 1070 30 130 230 330 130 30 230 30 330 30 1071 36 136 236 336 136 36 236 36 - - 1072 42 142 242 342 142 42 242 42 - - 1073 48 148 248 348 148 48 248 48 - - 1074 54 154 254 354 154 54 254 54 - - 1075 60 160 260 360 160 60 260 60 360 60 1076 66 166 266 366 166 66 266 66 - - 1077 72 172 272 372 172 72 272 72 - - 1078 78 178 278 378 178 78 278 78 - - 1079 84 184 284 384 184 84 284 84 - - 1080 90 190 290 390 190 90 290 90 390 90 1081 - - - - - - - - 300 0 1082 - - - - - - - - 305 5 1083 - - - - - - - - 310 10 1084 - - - - - - - - 315 15 1085 - - - - - - - - 320 20 1086 - - - - - - - - 325 25 1087 - - - - - - - - 335 35 1088 - - - - - - - - 340 40 1089 - - - - - - - - 345 45 1090 - - - - - - - - 350 50 1091 - - - - - - - - 355 55 1092 - - - - - - - - 365 65 1093 - - - - - - - - 370 70 1094 - - - - - - - - 375 75 1095 - - - - - - - - 380 80 1096 - - - - - - - - 385 85 1097 - - - - - - - - 395 95 1098} 1099do_execsql_test joinD-59 { 1100 SELECT t1.*, t2.*, t3.*, t4.* 1101 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 1102 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1103 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1104 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1105} { 1106 6 106 206 306 106 6 206 6 - - 1107 12 112 212 312 112 12 212 12 - - 1108 18 118 218 318 118 18 218 18 - - 1109 24 124 224 324 124 24 224 24 - - 1110 30 130 230 330 130 30 230 30 330 30 1111 36 136 236 336 136 36 236 36 - - 1112 42 142 242 342 142 42 242 42 - - 1113 48 148 248 348 148 48 248 48 - - 1114 54 154 254 354 154 54 254 54 - - 1115 60 160 260 360 160 60 260 60 360 60 1116 66 166 266 366 166 66 266 66 - - 1117 72 172 272 372 172 72 272 72 - - 1118 78 178 278 378 178 78 278 78 - - 1119 84 184 284 384 184 84 284 84 - - 1120 90 190 290 390 190 90 290 90 390 90 1121 - - - - - - - - 300 0 1122 - - - - - - - - 305 5 1123 - - - - - - - - 310 10 1124 - - - - - - - - 315 15 1125 - - - - - - - - 320 20 1126 - - - - - - - - 325 25 1127 - - - - - - - - 335 35 1128 - - - - - - - - 340 40 1129 - - - - - - - - 345 45 1130 - - - - - - - - 350 50 1131 - - - - - - - - 355 55 1132 - - - - - - - - 365 65 1133 - - - - - - - - 370 70 1134 - - - - - - - - 375 75 1135 - - - - - - - - 380 80 1136 - - - - - - - - 385 85 1137 - - - - - - - - 395 95 1138} 1139do_execsql_test joinD-60 { 1140 SELECT t1.*, t2.*, t3.*, t4.* 1141 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1142 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1143 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1144 WHERE t2.x>0 1145 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1146} { 1147 6 106 206 306 106 6 206 6 - - 1148 12 112 212 312 112 12 212 12 - - 1149 18 118 218 318 118 18 218 18 - - 1150 24 124 224 324 124 24 224 24 - - 1151 30 130 230 330 130 30 230 30 330 30 1152 36 136 236 336 136 36 236 36 - - 1153 42 142 242 342 142 42 242 42 - - 1154 48 148 248 348 148 48 248 48 - - 1155 54 154 254 354 154 54 254 54 - - 1156 60 160 260 360 160 60 260 60 360 60 1157 66 166 266 366 166 66 266 66 - - 1158 72 172 272 372 172 72 272 72 - - 1159 78 178 278 378 178 78 278 78 - - 1160 84 184 284 384 184 84 284 84 - - 1161 90 190 290 390 190 90 290 90 390 90 1162} 1163do_execsql_test joinD-61 { 1164 SELECT t1.*, t2.*, t3.*, t4.* 1165 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1166 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1167 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1168 WHERE (t2.x>0 OR t2.x IS NULL) 1169 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1170} { 1171 6 106 206 306 106 6 206 6 - - 1172 12 112 212 312 112 12 212 12 - - 1173 18 118 218 318 118 18 218 18 - - 1174 24 124 224 324 124 24 224 24 - - 1175 30 130 230 330 130 30 230 30 330 30 1176 36 136 236 336 136 36 236 36 - - 1177 42 142 242 342 142 42 242 42 - - 1178 48 148 248 348 148 48 248 48 - - 1179 54 154 254 354 154 54 254 54 - - 1180 60 160 260 360 160 60 260 60 360 60 1181 66 166 266 366 166 66 266 66 - - 1182 72 172 272 372 172 72 272 72 - - 1183 78 178 278 378 178 78 278 78 - - 1184 84 184 284 384 184 84 284 84 - - 1185 90 190 290 390 190 90 290 90 390 90 1186 - - - - - - - - 300 0 1187 - - - - - - - - 305 5 1188 - - - - - - - - 310 10 1189 - - - - - - - - 315 15 1190 - - - - - - - - 320 20 1191 - - - - - - - - 325 25 1192 - - - - - - - - 335 35 1193 - - - - - - - - 340 40 1194 - - - - - - - - 345 45 1195 - - - - - - - - 350 50 1196 - - - - - - - - 355 55 1197 - - - - - - - - 365 65 1198 - - - - - - - - 370 70 1199 - - - - - - - - 375 75 1200 - - - - - - - - 380 80 1201 - - - - - - - - 385 85 1202 - - - - - - - - 395 95 1203} 1204do_execsql_test joinD-62 { 1205 SELECT t1.*, t2.*, t3.*, t4.* 1206 FROM t1 INNER JOIN t2 ON true 1207 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1208 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1209 WHERE t1.b=t2.b AND t2.x>0 1210 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1211} { 1212 6 106 206 306 106 6 206 6 - - 1213 12 112 212 312 112 12 212 12 - - 1214 18 118 218 318 118 18 218 18 - - 1215 24 124 224 324 124 24 224 24 - - 1216 30 130 230 330 130 30 230 30 330 30 1217 36 136 236 336 136 36 236 36 - - 1218 42 142 242 342 142 42 242 42 - - 1219 48 148 248 348 148 48 248 48 - - 1220 54 154 254 354 154 54 254 54 - - 1221 60 160 260 360 160 60 260 60 360 60 1222 66 166 266 366 166 66 266 66 - - 1223 72 172 272 372 172 72 272 72 - - 1224 78 178 278 378 178 78 278 78 - - 1225 84 184 284 384 184 84 284 84 - - 1226 90 190 290 390 190 90 290 90 390 90 1227} 1228do_execsql_test joinD-63 { 1229 SELECT t1.*, t2.*, t3.*, t4.* 1230 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1231 INNER JOIN t3 ON t1.c=t3.c 1232 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1233 WHERE t3.y>0 1234 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1235} { 1236 6 106 206 306 106 6 206 6 - - 1237 12 112 212 312 112 12 212 12 - - 1238 18 118 218 318 118 18 218 18 - - 1239 24 124 224 324 124 24 224 24 - - 1240 30 130 230 330 130 30 230 30 330 30 1241 36 136 236 336 136 36 236 36 - - 1242 42 142 242 342 142 42 242 42 - - 1243 48 148 248 348 148 48 248 48 - - 1244 54 154 254 354 154 54 254 54 - - 1245 60 160 260 360 160 60 260 60 360 60 1246 66 166 266 366 166 66 266 66 - - 1247 72 172 272 372 172 72 272 72 - - 1248 78 178 278 378 178 78 278 78 - - 1249 84 184 284 384 184 84 284 84 - - 1250 90 190 290 390 190 90 290 90 390 90 1251} 1252do_execsql_test joinD-64 { 1253 SELECT t1.*, t2.*, t3.*, t4.* 1254 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1255 INNER JOIN t3 ON t1.c=t3.c 1256 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1257 WHERE t3.y>0 OR t3.y IS NULL 1258 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1259} { 1260 6 106 206 306 106 6 206 6 - - 1261 12 112 212 312 112 12 212 12 - - 1262 18 118 218 318 118 18 218 18 - - 1263 24 124 224 324 124 24 224 24 - - 1264 30 130 230 330 130 30 230 30 330 30 1265 36 136 236 336 136 36 236 36 - - 1266 42 142 242 342 142 42 242 42 - - 1267 48 148 248 348 148 48 248 48 - - 1268 54 154 254 354 154 54 254 54 - - 1269 60 160 260 360 160 60 260 60 360 60 1270 66 166 266 366 166 66 266 66 - - 1271 72 172 272 372 172 72 272 72 - - 1272 78 178 278 378 178 78 278 78 - - 1273 84 184 284 384 184 84 284 84 - - 1274 90 190 290 390 190 90 290 90 390 90 1275 - - - - - - - - 300 0 1276 - - - - - - - - 305 5 1277 - - - - - - - - 310 10 1278 - - - - - - - - 315 15 1279 - - - - - - - - 320 20 1280 - - - - - - - - 325 25 1281 - - - - - - - - 335 35 1282 - - - - - - - - 340 40 1283 - - - - - - - - 345 45 1284 - - - - - - - - 350 50 1285 - - - - - - - - 355 55 1286 - - - - - - - - 365 65 1287 - - - - - - - - 370 70 1288 - - - - - - - - 375 75 1289 - - - - - - - - 380 80 1290 - - - - - - - - 385 85 1291 - - - - - - - - 395 95 1292} 1293do_execsql_test joinD-65 { 1294 SELECT t1.*, t2.*, t3.*, t4.* 1295 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1296 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1297 FULL JOIN t4 ON t1.d=t4.d 1298 WHERE t4.z>0 1299 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1300} { 1301 30 130 230 330 130 30 230 30 330 30 1302 60 160 260 360 160 60 260 60 360 60 1303 90 190 290 390 190 90 290 90 390 90 1304 - - - - - - - - 305 5 1305 - - - - - - - - 310 10 1306 - - - - - - - - 315 15 1307 - - - - - - - - 320 20 1308 - - - - - - - - 325 25 1309 - - - - - - - - 335 35 1310 - - - - - - - - 340 40 1311 - - - - - - - - 345 45 1312 - - - - - - - - 350 50 1313 - - - - - - - - 355 55 1314 - - - - - - - - 365 65 1315 - - - - - - - - 370 70 1316 - - - - - - - - 375 75 1317 - - - - - - - - 380 80 1318 - - - - - - - - 385 85 1319 - - - - - - - - 395 95 1320} 1321do_execsql_test joinD-66 { 1322 SELECT t1.*, t2.*, t3.*, t4.* 1323 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1324 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1325 FULL JOIN t4 ON t1.d=t4.d 1326 WHERE t4.z IS NULL OR t4.z>0 1327 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1328} { 1329 6 106 206 306 106 6 206 6 - - 1330 12 112 212 312 112 12 212 12 - - 1331 18 118 218 318 118 18 218 18 - - 1332 24 124 224 324 124 24 224 24 - - 1333 30 130 230 330 130 30 230 30 330 30 1334 36 136 236 336 136 36 236 36 - - 1335 42 142 242 342 142 42 242 42 - - 1336 48 148 248 348 148 48 248 48 - - 1337 54 154 254 354 154 54 254 54 - - 1338 60 160 260 360 160 60 260 60 360 60 1339 66 166 266 366 166 66 266 66 - - 1340 72 172 272 372 172 72 272 72 - - 1341 78 178 278 378 178 78 278 78 - - 1342 84 184 284 384 184 84 284 84 - - 1343 90 190 290 390 190 90 290 90 390 90 1344 - - - - - - - - 305 5 1345 - - - - - - - - 310 10 1346 - - - - - - - - 315 15 1347 - - - - - - - - 320 20 1348 - - - - - - - - 325 25 1349 - - - - - - - - 335 35 1350 - - - - - - - - 340 40 1351 - - - - - - - - 345 45 1352 - - - - - - - - 350 50 1353 - - - - - - - - 355 55 1354 - - - - - - - - 365 65 1355 - - - - - - - - 370 70 1356 - - - - - - - - 375 75 1357 - - - - - - - - 380 80 1358 - - - - - - - - 385 85 1359 - - - - - - - - 395 95 1360} 1361do_execsql_test joinD-67 { 1362 SELECT t1.*, t2.*, t3.*, t4.* 1363 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1364 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1365 FULL JOIN t4 ON t1.d=t4.d 1366 WHERE t2.x>0 AND t4.z>0 1367 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1368} { 1369 30 130 230 330 130 30 230 30 330 30 1370 60 160 260 360 160 60 260 60 360 60 1371 90 190 290 390 190 90 290 90 390 90 1372} 1373do_execsql_test joinD-68 { 1374 SELECT t1.*, t2.*, t3.*, t4.* 1375 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1376 INNER JOIN t3 ON t1.c=t3.c 1377 FULL JOIN t4 ON t1.d=t4.d 1378 WHERE t4.z>0 AND t3.y>0 1379 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1380} { 1381 30 130 230 330 130 30 230 30 330 30 1382 60 160 260 360 160 60 260 60 360 60 1383 90 190 290 390 190 90 290 90 390 90 1384} 1385do_execsql_test joinD-69 { 1386 SELECT t1.*, t2.*, t3.*, t4.* 1387 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1388 INNER JOIN t3 ON t1.c=t3.c 1389 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1390 WHERE t2.x>0 AND t3.y>0 1391 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1392} { 1393 6 106 206 306 106 6 206 6 - - 1394 12 112 212 312 112 12 212 12 - - 1395 18 118 218 318 118 18 218 18 - - 1396 24 124 224 324 124 24 224 24 - - 1397 30 130 230 330 130 30 230 30 330 30 1398 36 136 236 336 136 36 236 36 - - 1399 42 142 242 342 142 42 242 42 - - 1400 48 148 248 348 148 48 248 48 - - 1401 54 154 254 354 154 54 254 54 - - 1402 60 160 260 360 160 60 260 60 360 60 1403 66 166 266 366 166 66 266 66 - - 1404 72 172 272 372 172 72 272 72 - - 1405 78 178 278 378 178 78 278 78 - - 1406 84 184 284 384 184 84 284 84 - - 1407 90 190 290 390 190 90 290 90 390 90 1408} 1409do_execsql_test joinD-70 { 1410 SELECT t1.*, t2.*, t3.*, t4.* 1411 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1412 INNER JOIN t3 ON t1.c=t3.c 1413 FULL JOIN t4 ON t1.d=t4.d 1414 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 1415 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1416} { 1417 30 130 230 330 130 30 230 30 330 30 1418 60 160 260 360 160 60 260 60 360 60 1419 90 190 290 390 190 90 290 90 390 90 1420} 1421do_execsql_test joinD-71 { 1422 SELECT t1.*, t2.*, t3.*, t4.* 1423 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 1424 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 1425 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 1426 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1427} { 1428 6 106 206 306 106 6 206 6 - - 1429 12 112 212 312 112 12 212 12 - - 1430 18 118 218 318 118 18 218 18 - - 1431 24 124 224 324 124 24 224 24 - - 1432 30 130 230 330 130 30 230 30 330 30 1433 36 136 236 336 136 36 236 36 - - 1434 42 142 242 342 142 42 242 42 - - 1435 48 148 248 348 148 48 248 48 - - 1436 54 154 254 354 154 54 254 54 - - 1437 60 160 260 360 160 60 260 60 360 60 1438 66 166 266 366 166 66 266 66 - - 1439 72 172 272 372 172 72 272 72 - - 1440 78 178 278 378 178 78 278 78 - - 1441 84 184 284 384 184 84 284 84 - - 1442 90 190 290 390 190 90 290 90 390 90 1443 - - - - - - - - 300 0 1444 - - - - - - - - 305 5 1445 - - - - - - - - 310 10 1446 - - - - - - - - 315 15 1447 - - - - - - - - 320 20 1448 - - - - - - - - 325 25 1449 - - - - - - - - 335 35 1450 - - - - - - - - 340 40 1451 - - - - - - - - 345 45 1452 - - - - - - - - 350 50 1453 - - - - - - - - 355 55 1454 - - - - - - - - 365 65 1455 - - - - - - - - 370 70 1456 - - - - - - - - 375 75 1457 - - - - - - - - 380 80 1458 - - - - - - - - 385 85 1459 - - - - - - - - 395 95 1460} 1461do_execsql_test joinD-72 { 1462 SELECT t1.*, t2.*, t3.*, t4.* 1463 FROM t1 INNER JOIN t2 ON t2.x>0 1464 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 1465 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 1466 WHERE t1.b IS NOT DISTINCT FROM t2.b 1467 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1468} { 1469 6 106 206 306 106 6 206 6 - - 1470 12 112 212 312 112 12 212 12 - - 1471 18 118 218 318 118 18 218 18 - - 1472 24 124 224 324 124 24 224 24 - - 1473 30 130 230 330 130 30 230 30 330 30 1474 36 136 236 336 136 36 236 36 - - 1475 42 142 242 342 142 42 242 42 - - 1476 48 148 248 348 148 48 248 48 - - 1477 54 154 254 354 154 54 254 54 - - 1478 60 160 260 360 160 60 260 60 360 60 1479 66 166 266 366 166 66 266 66 - - 1480 72 172 272 372 172 72 272 72 - - 1481 78 178 278 378 178 78 278 78 - - 1482 84 184 284 384 184 84 284 84 - - 1483 90 190 290 390 190 90 290 90 390 90 1484 - - - - - - - - 300 0 1485 - - - - - - - - 305 5 1486 - - - - - - - - 310 10 1487 - - - - - - - - 320 20 1488 - - - - - - - - 325 25 1489 - - - - - - - - 335 35 1490 - - - - - - - - 340 40 1491 - - - - - - - - 350 50 1492 - - - - - - - - 355 55 1493 - - - - - - - - 365 65 1494 - - - - - - - - 370 70 1495 - - - - - - - - 380 80 1496 - - - - - - - - 385 85 1497 - - - - - - - - 395 95 1498} 1499do_execsql_test joinD-73 { 1500 SELECT t1.*, t2.*, t3.*, t4.* 1501 FROM t1 INNER JOIN t2 ON t2.x>0 1502 INNER JOIN t3 ON t3.y>0 1503 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 1504 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 1505 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1506} { 1507 6 106 206 306 106 6 206 6 - - 1508 12 112 212 312 112 12 212 12 - - 1509 18 118 218 318 118 18 218 18 - - 1510 24 124 224 324 124 24 224 24 - - 1511 30 130 230 330 130 30 230 30 330 30 1512 36 136 236 336 136 36 236 36 - - 1513 42 142 242 342 142 42 242 42 - - 1514 48 148 248 348 148 48 248 48 - - 1515 54 154 254 354 154 54 254 54 - - 1516 60 160 260 360 160 60 260 60 360 60 1517 66 166 266 366 166 66 266 66 - - 1518 72 172 272 372 172 72 272 72 - - 1519 78 178 278 378 178 78 278 78 - - 1520 84 184 284 384 184 84 284 84 - - 1521 90 190 290 390 190 90 290 90 390 90 1522 - - - - - - - - 300 0 1523} 1524do_execsql_test joinD-74 { 1525 SELECT t1.*, t2.*, t3.*, t4.* 1526 FROM t1 INNER JOIN t2 ON t2.x>0 1527 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 1528 FULL JOIN t4 ON t4.z>0 1529 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 1530 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1531} { 1532 30 130 230 330 130 30 230 30 330 30 1533 60 160 260 360 160 60 260 60 360 60 1534 90 190 290 390 190 90 290 90 390 90 1535} 1536do_execsql_test joinD-75 { 1537 SELECT t1.*, t2.*, t3.*, t4.* 1538 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 1539 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 1540 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1541 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1542} { 1543 6 106 206 306 106 6 206 6 - - 1544 12 112 212 312 112 12 212 12 - - 1545 18 118 218 318 118 18 218 18 - - 1546 24 124 224 324 124 24 224 24 - - 1547 30 130 230 330 130 30 230 30 330 30 1548 36 136 236 336 136 36 236 36 - - 1549 42 142 242 342 142 42 242 42 - - 1550 48 148 248 348 148 48 248 48 - - 1551 54 154 254 354 154 54 254 54 - - 1552 60 160 260 360 160 60 260 60 360 60 1553 66 166 266 366 166 66 266 66 - - 1554 72 172 272 372 172 72 272 72 - - 1555 78 178 278 378 178 78 278 78 - - 1556 84 184 284 384 184 84 284 84 - - 1557 90 190 290 390 190 90 290 90 390 90 1558 - - - - - - - - 300 0 1559 - - - - - - - - 305 5 1560 - - - - - - - - 310 10 1561 - - - - - - - - 315 15 1562 - - - - - - - - 320 20 1563 - - - - - - - - 325 25 1564 - - - - - - - - 335 35 1565 - - - - - - - - 340 40 1566 - - - - - - - - 345 45 1567 - - - - - - - - 350 50 1568 - - - - - - - - 355 55 1569 - - - - - - - - 365 65 1570 - - - - - - - - 370 70 1571 - - - - - - - - 375 75 1572 - - - - - - - - 380 80 1573 - - - - - - - - 385 85 1574 - - - - - - - - 395 95 1575} 1576do_execsql_test joinD-76 { 1577 SELECT t1.*, t2.*, t3.*, t4.* 1578 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1579 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 1580 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 1581 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1582} { 1583 6 106 206 306 106 6 206 6 - - 1584 12 112 212 312 112 12 212 12 - - 1585 18 118 218 318 118 18 218 18 - - 1586 24 124 224 324 124 24 224 24 - - 1587 30 130 230 330 130 30 230 30 330 30 1588 36 136 236 336 136 36 236 36 - - 1589 42 142 242 342 142 42 242 42 - - 1590 48 148 248 348 148 48 248 48 - - 1591 54 154 254 354 154 54 254 54 - - 1592 60 160 260 360 160 60 260 60 360 60 1593 66 166 266 366 166 66 266 66 - - 1594 72 172 272 372 172 72 272 72 - - 1595 78 178 278 378 178 78 278 78 - - 1596 84 184 284 384 184 84 284 84 - - 1597 90 190 290 390 190 90 290 90 390 90 1598 - - - - - - - - 300 0 1599 - - - - - - - - 305 5 1600 - - - - - - - - 310 10 1601 - - - - - - - - 315 15 1602 - - - - - - - - 320 20 1603 - - - - - - - - 325 25 1604 - - - - - - - - 335 35 1605 - - - - - - - - 340 40 1606 - - - - - - - - 345 45 1607 - - - - - - - - 350 50 1608 - - - - - - - - 355 55 1609 - - - - - - - - 365 65 1610 - - - - - - - - 370 70 1611 - - - - - - - - 375 75 1612 - - - - - - - - 380 80 1613 - - - - - - - - 385 85 1614 - - - - - - - - 395 95 1615} 1616do_execsql_test joinD-77 { 1617 SELECT t1.*, t2.*, t3.*, t4.* 1618 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1619 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1620 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1621 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1622} { 1623 10 110 210 310 110 10 - - 310 10 1624 20 120 220 320 120 20 - - 320 20 1625 30 130 230 330 130 30 230 30 330 30 1626 40 140 240 340 140 40 - - 340 40 1627 50 150 250 350 150 50 - - 350 50 1628 60 160 260 360 160 60 260 60 360 60 1629 70 170 270 370 170 70 - - 370 70 1630 80 180 280 380 180 80 - - 380 80 1631 90 190 290 390 190 90 290 90 390 90 1632} 1633do_execsql_test joinD-78 { 1634 SELECT t1.*, t2.*, t3.*, t4.* 1635 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 1636 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1637 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1638 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1639} { 1640 10 110 210 310 110 10 - - 310 10 1641 20 120 220 320 120 20 - - 320 20 1642 30 130 230 330 130 30 230 30 330 30 1643 40 140 240 340 140 40 - - 340 40 1644 50 150 250 350 150 50 - - 350 50 1645 60 160 260 360 160 60 260 60 360 60 1646 70 170 270 370 170 70 - - 370 70 1647 80 180 280 380 180 80 - - 380 80 1648 90 190 290 390 190 90 290 90 390 90 1649} 1650do_execsql_test joinD-79 { 1651 SELECT t1.*, t2.*, t3.*, t4.* 1652 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1653 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1654 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1655 WHERE t2.x>0 1656 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1657} { 1658 10 110 210 310 110 10 - - 310 10 1659 20 120 220 320 120 20 - - 320 20 1660 30 130 230 330 130 30 230 30 330 30 1661 40 140 240 340 140 40 - - 340 40 1662 50 150 250 350 150 50 - - 350 50 1663 60 160 260 360 160 60 260 60 360 60 1664 70 170 270 370 170 70 - - 370 70 1665 80 180 280 380 180 80 - - 380 80 1666 90 190 290 390 190 90 290 90 390 90 1667} 1668do_execsql_test joinD-80 { 1669 SELECT t1.*, t2.*, t3.*, t4.* 1670 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1671 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1672 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1673 WHERE (t2.x>0 OR t2.x IS NULL) 1674 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1675} { 1676 10 110 210 310 110 10 - - 310 10 1677 20 120 220 320 120 20 - - 320 20 1678 30 130 230 330 130 30 230 30 330 30 1679 40 140 240 340 140 40 - - 340 40 1680 50 150 250 350 150 50 - - 350 50 1681 60 160 260 360 160 60 260 60 360 60 1682 70 170 270 370 170 70 - - 370 70 1683 80 180 280 380 180 80 - - 380 80 1684 90 190 290 390 190 90 290 90 390 90 1685} 1686do_execsql_test joinD-81 { 1687 SELECT t1.*, t2.*, t3.*, t4.* 1688 FROM t1 INNER JOIN t2 ON true 1689 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1690 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1691 WHERE t1.b=t2.b AND t2.x>0 1692 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1693} { 1694 10 110 210 310 110 10 - - 310 10 1695 20 120 220 320 120 20 - - 320 20 1696 30 130 230 330 130 30 230 30 330 30 1697 40 140 240 340 140 40 - - 340 40 1698 50 150 250 350 150 50 - - 350 50 1699 60 160 260 360 160 60 260 60 360 60 1700 70 170 270 370 170 70 - - 370 70 1701 80 180 280 380 180 80 - - 380 80 1702 90 190 290 390 190 90 290 90 390 90 1703} 1704do_execsql_test joinD-82 { 1705 SELECT t1.*, t2.*, t3.*, t4.* 1706 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1707 LEFT JOIN t3 ON t1.c=t3.c 1708 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1709 WHERE t3.y>0 1710 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1711} { 1712 30 130 230 330 130 30 230 30 330 30 1713 60 160 260 360 160 60 260 60 360 60 1714 90 190 290 390 190 90 290 90 390 90 1715} 1716do_execsql_test joinD-83 { 1717 SELECT t1.*, t2.*, t3.*, t4.* 1718 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1719 LEFT JOIN t3 ON t1.c=t3.c 1720 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1721 WHERE t3.y>0 OR t3.y IS NULL 1722 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1723} { 1724 10 110 210 310 110 10 - - 310 10 1725 20 120 220 320 120 20 - - 320 20 1726 30 130 230 330 130 30 230 30 330 30 1727 40 140 240 340 140 40 - - 340 40 1728 50 150 250 350 150 50 - - 350 50 1729 60 160 260 360 160 60 260 60 360 60 1730 70 170 270 370 170 70 - - 370 70 1731 80 180 280 380 180 80 - - 380 80 1732 90 190 290 390 190 90 290 90 390 90 1733} 1734do_execsql_test joinD-84 { 1735 SELECT t1.*, t2.*, t3.*, t4.* 1736 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1737 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1738 INNER JOIN t4 ON t1.d=t4.d 1739 WHERE t4.z>0 1740 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1741} { 1742 10 110 210 310 110 10 - - 310 10 1743 20 120 220 320 120 20 - - 320 20 1744 30 130 230 330 130 30 230 30 330 30 1745 40 140 240 340 140 40 - - 340 40 1746 50 150 250 350 150 50 - - 350 50 1747 60 160 260 360 160 60 260 60 360 60 1748 70 170 270 370 170 70 - - 370 70 1749 80 180 280 380 180 80 - - 380 80 1750 90 190 290 390 190 90 290 90 390 90 1751} 1752do_execsql_test joinD-85 { 1753 SELECT t1.*, t2.*, t3.*, t4.* 1754 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1755 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1756 INNER JOIN t4 ON t1.d=t4.d 1757 WHERE t4.z IS NULL OR t4.z>0 1758 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1759} { 1760 10 110 210 310 110 10 - - 310 10 1761 20 120 220 320 120 20 - - 320 20 1762 30 130 230 330 130 30 230 30 330 30 1763 40 140 240 340 140 40 - - 340 40 1764 50 150 250 350 150 50 - - 350 50 1765 60 160 260 360 160 60 260 60 360 60 1766 70 170 270 370 170 70 - - 370 70 1767 80 180 280 380 180 80 - - 380 80 1768 90 190 290 390 190 90 290 90 390 90 1769} 1770do_execsql_test joinD-86 { 1771 SELECT t1.*, t2.*, t3.*, t4.* 1772 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1773 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1774 INNER JOIN t4 ON t1.d=t4.d 1775 WHERE t2.x>0 AND t4.z>0 1776 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1777} { 1778 10 110 210 310 110 10 - - 310 10 1779 20 120 220 320 120 20 - - 320 20 1780 30 130 230 330 130 30 230 30 330 30 1781 40 140 240 340 140 40 - - 340 40 1782 50 150 250 350 150 50 - - 350 50 1783 60 160 260 360 160 60 260 60 360 60 1784 70 170 270 370 170 70 - - 370 70 1785 80 180 280 380 180 80 - - 380 80 1786 90 190 290 390 190 90 290 90 390 90 1787} 1788do_execsql_test joinD-87 { 1789 SELECT t1.*, t2.*, t3.*, t4.* 1790 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1791 LEFT JOIN t3 ON t1.c=t3.c 1792 INNER JOIN t4 ON t1.d=t4.d 1793 WHERE t4.z>0 AND t3.y>0 1794 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1795} { 1796 30 130 230 330 130 30 230 30 330 30 1797 60 160 260 360 160 60 260 60 360 60 1798 90 190 290 390 190 90 290 90 390 90 1799} 1800do_execsql_test joinD-88 { 1801 SELECT t1.*, t2.*, t3.*, t4.* 1802 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1803 LEFT JOIN t3 ON t1.c=t3.c 1804 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1805 WHERE t2.x>0 AND t3.y>0 1806 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1807} { 1808 30 130 230 330 130 30 230 30 330 30 1809 60 160 260 360 160 60 260 60 360 60 1810 90 190 290 390 190 90 290 90 390 90 1811} 1812do_execsql_test joinD-89 { 1813 SELECT t1.*, t2.*, t3.*, t4.* 1814 FROM t1 INNER JOIN t2 ON t1.b=t2.b 1815 LEFT JOIN t3 ON t1.c=t3.c 1816 INNER JOIN t4 ON t1.d=t4.d 1817 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 1818 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1819} { 1820 30 130 230 330 130 30 230 30 330 30 1821 60 160 260 360 160 60 260 60 360 60 1822 90 190 290 390 190 90 290 90 390 90 1823} 1824do_execsql_test joinD-90 { 1825 SELECT t1.*, t2.*, t3.*, t4.* 1826 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 1827 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 1828 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 1829 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1830} { 1831 10 110 210 310 110 10 - - 310 10 1832 20 120 220 320 120 20 - - 320 20 1833 30 130 230 330 130 30 230 30 330 30 1834 40 140 240 340 140 40 - - 340 40 1835 50 150 250 350 150 50 - - 350 50 1836 60 160 260 360 160 60 260 60 360 60 1837 70 170 270 370 170 70 - - 370 70 1838 80 180 280 380 180 80 - - 380 80 1839 90 190 290 390 190 90 290 90 390 90 1840} 1841do_execsql_test joinD-91 { 1842 SELECT t1.*, t2.*, t3.*, t4.* 1843 FROM t1 INNER JOIN t2 ON t2.x>0 1844 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 1845 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 1846 WHERE t1.b IS NOT DISTINCT FROM t2.b 1847 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1848} { 1849 10 110 210 310 110 10 - - 310 10 1850 20 120 220 320 120 20 - - 320 20 1851 30 130 230 330 130 30 230 30 330 30 1852 40 140 240 340 140 40 - - 340 40 1853 50 150 250 350 150 50 - - 350 50 1854 60 160 260 360 160 60 260 60 360 60 1855 70 170 270 370 170 70 - - 370 70 1856 80 180 280 380 180 80 - - 380 80 1857 90 190 290 390 190 90 290 90 390 90 1858} 1859do_execsql_test joinD-92 { 1860 SELECT t1.*, t2.*, t3.*, t4.* 1861 FROM t1 INNER JOIN t2 ON t2.x>0 1862 LEFT JOIN t3 ON t3.y>0 1863 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 1864 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 1865 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1866} { 1867 30 130 230 330 130 30 230 30 330 30 1868 60 160 260 360 160 60 260 60 360 60 1869 90 190 290 390 190 90 290 90 390 90 1870} 1871do_execsql_test joinD-93 { 1872 SELECT t1.*, t2.*, t3.*, t4.* 1873 FROM t1 INNER JOIN t2 ON t2.x>0 1874 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 1875 INNER JOIN t4 ON t4.z>0 1876 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 1877 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1878} { 1879 10 110 210 310 110 10 - - 310 10 1880 20 120 220 320 120 20 - - 320 20 1881 30 130 230 330 130 30 230 30 330 30 1882 40 140 240 340 140 40 - - 340 40 1883 50 150 250 350 150 50 - - 350 50 1884 60 160 260 360 160 60 260 60 360 60 1885 70 170 270 370 170 70 - - 370 70 1886 80 180 280 380 180 80 - - 380 80 1887 90 190 290 390 190 90 290 90 390 90 1888} 1889do_execsql_test joinD-94 { 1890 SELECT t1.*, t2.*, t3.*, t4.* 1891 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 1892 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1893 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1894 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1895} { 1896 10 110 210 310 110 10 - - 310 10 1897 20 120 220 320 120 20 - - 320 20 1898 30 130 230 330 130 30 230 30 330 30 1899 40 140 240 340 140 40 - - 340 40 1900 50 150 250 350 150 50 - - 350 50 1901 60 160 260 360 160 60 260 60 360 60 1902 70 170 270 370 170 70 - - 370 70 1903 80 180 280 380 180 80 - - 380 80 1904 90 190 290 390 190 90 290 90 390 90 1905} 1906do_execsql_test joinD-95 { 1907 SELECT t1.*, t2.*, t3.*, t4.* 1908 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1909 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 1910 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 1911 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1912} { 1913 10 110 210 310 110 10 - - 310 10 1914 20 120 220 320 120 20 - - 320 20 1915 30 130 230 330 130 30 230 30 330 30 1916 40 140 240 340 140 40 - - 340 40 1917 50 150 250 350 150 50 - - 350 50 1918 60 160 260 360 160 60 260 60 360 60 1919 70 170 270 370 170 70 - - 370 70 1920 80 180 280 380 180 80 - - 380 80 1921 90 190 290 390 190 90 290 90 390 90 1922} 1923do_execsql_test joinD-96 { 1924 SELECT t1.*, t2.*, t3.*, t4.* 1925 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 1926 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1927 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 1928 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1929} { 1930 2 102 202 302 102 2 - - - - 1931 4 104 204 304 104 4 - - - - 1932 6 106 206 306 106 6 206 6 - - 1933 8 108 208 308 108 8 - - - - 1934 10 110 210 310 110 10 - - 310 10 1935 12 112 212 312 112 12 212 12 - - 1936 14 114 214 314 114 14 - - - - 1937 16 116 216 316 116 16 - - - - 1938 18 118 218 318 118 18 218 18 - - 1939 20 120 220 320 120 20 - - 320 20 1940 22 122 222 322 122 22 - - - - 1941 24 124 224 324 124 24 224 24 - - 1942 26 126 226 326 126 26 - - - - 1943 28 128 228 328 128 28 - - - - 1944 30 130 230 330 130 30 230 30 330 30 1945 32 132 232 332 132 32 - - - - 1946 34 134 234 334 134 34 - - - - 1947 36 136 236 336 136 36 236 36 - - 1948 38 138 238 338 138 38 - - - - 1949 40 140 240 340 140 40 - - 340 40 1950 42 142 242 342 142 42 242 42 - - 1951 44 144 244 344 144 44 - - - - 1952 46 146 246 346 146 46 - - - - 1953 48 148 248 348 148 48 248 48 - - 1954 50 150 250 350 150 50 - - 350 50 1955 52 152 252 352 152 52 - - - - 1956 54 154 254 354 154 54 254 54 - - 1957 56 156 256 356 156 56 - - - - 1958 58 158 258 358 158 58 - - - - 1959 60 160 260 360 160 60 260 60 360 60 1960 62 162 262 362 162 62 - - - - 1961 64 164 264 364 164 64 - - - - 1962 66 166 266 366 166 66 266 66 - - 1963 68 168 268 368 168 68 - - - - 1964 70 170 270 370 170 70 - - 370 70 1965 72 172 272 372 172 72 272 72 - - 1966 74 174 274 374 174 74 - - - - 1967 76 176 276 376 176 76 - - - - 1968 78 178 278 378 178 78 278 78 - - 1969 80 180 280 380 180 80 - - 380 80 1970 82 182 282 382 182 82 - - - - 1971 84 184 284 384 184 84 284 84 - - 1972 86 186 286 386 186 86 - - - - 1973 88 188 288 388 188 88 - - - - 1974 90 190 290 390 190 90 290 90 390 90 1975 92 192 292 392 192 92 - - - - 1976 94 194 294 394 194 94 - - - - 1977} 1978do_execsql_test joinD-97 { 1979 SELECT t1.*, t2.*, t3.*, t4.* 1980 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 1981 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 1982 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 1983 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 1984} { 1985 2 102 202 302 102 2 - - - - 1986 4 104 204 304 104 4 - - - - 1987 6 106 206 306 106 6 206 6 - - 1988 8 108 208 308 108 8 - - - - 1989 10 110 210 310 110 10 - - 310 10 1990 12 112 212 312 112 12 212 12 - - 1991 14 114 214 314 114 14 - - - - 1992 16 116 216 316 116 16 - - - - 1993 18 118 218 318 118 18 218 18 - - 1994 20 120 220 320 120 20 - - 320 20 1995 22 122 222 322 122 22 - - - - 1996 24 124 224 324 124 24 224 24 - - 1997 26 126 226 326 126 26 - - - - 1998 28 128 228 328 128 28 - - - - 1999 30 130 230 330 130 30 230 30 330 30 2000 32 132 232 332 132 32 - - - - 2001 34 134 234 334 134 34 - - - - 2002 36 136 236 336 136 36 236 36 - - 2003 38 138 238 338 138 38 - - - - 2004 40 140 240 340 140 40 - - 340 40 2005 42 142 242 342 142 42 242 42 - - 2006 44 144 244 344 144 44 - - - - 2007 46 146 246 346 146 46 - - - - 2008 48 148 248 348 148 48 248 48 - - 2009 50 150 250 350 150 50 - - 350 50 2010 52 152 252 352 152 52 - - - - 2011 54 154 254 354 154 54 254 54 - - 2012 56 156 256 356 156 56 - - - - 2013 58 158 258 358 158 58 - - - - 2014 60 160 260 360 160 60 260 60 360 60 2015 62 162 262 362 162 62 - - - - 2016 64 164 264 364 164 64 - - - - 2017 66 166 266 366 166 66 266 66 - - 2018 68 168 268 368 168 68 - - - - 2019 70 170 270 370 170 70 - - 370 70 2020 72 172 272 372 172 72 272 72 - - 2021 74 174 274 374 174 74 - - - - 2022 76 176 276 376 176 76 - - - - 2023 78 178 278 378 178 78 278 78 - - 2024 80 180 280 380 180 80 - - 380 80 2025 82 182 282 382 182 82 - - - - 2026 84 184 284 384 184 84 284 84 - - 2027 86 186 286 386 186 86 - - - - 2028 88 188 288 388 188 88 - - - - 2029 90 190 290 390 190 90 290 90 390 90 2030 92 192 292 392 192 92 - - - - 2031 94 194 294 394 194 94 - - - - 2032} 2033do_execsql_test joinD-98 { 2034 SELECT t1.*, t2.*, t3.*, t4.* 2035 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2036 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2037 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 2038 WHERE t2.x>0 2039 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2040} { 2041 2 102 202 302 102 2 - - - - 2042 4 104 204 304 104 4 - - - - 2043 6 106 206 306 106 6 206 6 - - 2044 8 108 208 308 108 8 - - - - 2045 10 110 210 310 110 10 - - 310 10 2046 12 112 212 312 112 12 212 12 - - 2047 14 114 214 314 114 14 - - - - 2048 16 116 216 316 116 16 - - - - 2049 18 118 218 318 118 18 218 18 - - 2050 20 120 220 320 120 20 - - 320 20 2051 22 122 222 322 122 22 - - - - 2052 24 124 224 324 124 24 224 24 - - 2053 26 126 226 326 126 26 - - - - 2054 28 128 228 328 128 28 - - - - 2055 30 130 230 330 130 30 230 30 330 30 2056 32 132 232 332 132 32 - - - - 2057 34 134 234 334 134 34 - - - - 2058 36 136 236 336 136 36 236 36 - - 2059 38 138 238 338 138 38 - - - - 2060 40 140 240 340 140 40 - - 340 40 2061 42 142 242 342 142 42 242 42 - - 2062 44 144 244 344 144 44 - - - - 2063 46 146 246 346 146 46 - - - - 2064 48 148 248 348 148 48 248 48 - - 2065 50 150 250 350 150 50 - - 350 50 2066 52 152 252 352 152 52 - - - - 2067 54 154 254 354 154 54 254 54 - - 2068 56 156 256 356 156 56 - - - - 2069 58 158 258 358 158 58 - - - - 2070 60 160 260 360 160 60 260 60 360 60 2071 62 162 262 362 162 62 - - - - 2072 64 164 264 364 164 64 - - - - 2073 66 166 266 366 166 66 266 66 - - 2074 68 168 268 368 168 68 - - - - 2075 70 170 270 370 170 70 - - 370 70 2076 72 172 272 372 172 72 272 72 - - 2077 74 174 274 374 174 74 - - - - 2078 76 176 276 376 176 76 - - - - 2079 78 178 278 378 178 78 278 78 - - 2080 80 180 280 380 180 80 - - 380 80 2081 82 182 282 382 182 82 - - - - 2082 84 184 284 384 184 84 284 84 - - 2083 86 186 286 386 186 86 - - - - 2084 88 188 288 388 188 88 - - - - 2085 90 190 290 390 190 90 290 90 390 90 2086 92 192 292 392 192 92 - - - - 2087 94 194 294 394 194 94 - - - - 2088} 2089do_execsql_test joinD-99 { 2090 SELECT t1.*, t2.*, t3.*, t4.* 2091 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2092 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2093 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 2094 WHERE (t2.x>0 OR t2.x IS NULL) 2095 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2096} { 2097 2 102 202 302 102 2 - - - - 2098 4 104 204 304 104 4 - - - - 2099 6 106 206 306 106 6 206 6 - - 2100 8 108 208 308 108 8 - - - - 2101 10 110 210 310 110 10 - - 310 10 2102 12 112 212 312 112 12 212 12 - - 2103 14 114 214 314 114 14 - - - - 2104 16 116 216 316 116 16 - - - - 2105 18 118 218 318 118 18 218 18 - - 2106 20 120 220 320 120 20 - - 320 20 2107 22 122 222 322 122 22 - - - - 2108 24 124 224 324 124 24 224 24 - - 2109 26 126 226 326 126 26 - - - - 2110 28 128 228 328 128 28 - - - - 2111 30 130 230 330 130 30 230 30 330 30 2112 32 132 232 332 132 32 - - - - 2113 34 134 234 334 134 34 - - - - 2114 36 136 236 336 136 36 236 36 - - 2115 38 138 238 338 138 38 - - - - 2116 40 140 240 340 140 40 - - 340 40 2117 42 142 242 342 142 42 242 42 - - 2118 44 144 244 344 144 44 - - - - 2119 46 146 246 346 146 46 - - - - 2120 48 148 248 348 148 48 248 48 - - 2121 50 150 250 350 150 50 - - 350 50 2122 52 152 252 352 152 52 - - - - 2123 54 154 254 354 154 54 254 54 - - 2124 56 156 256 356 156 56 - - - - 2125 58 158 258 358 158 58 - - - - 2126 60 160 260 360 160 60 260 60 360 60 2127 62 162 262 362 162 62 - - - - 2128 64 164 264 364 164 64 - - - - 2129 66 166 266 366 166 66 266 66 - - 2130 68 168 268 368 168 68 - - - - 2131 70 170 270 370 170 70 - - 370 70 2132 72 172 272 372 172 72 272 72 - - 2133 74 174 274 374 174 74 - - - - 2134 76 176 276 376 176 76 - - - - 2135 78 178 278 378 178 78 278 78 - - 2136 80 180 280 380 180 80 - - 380 80 2137 82 182 282 382 182 82 - - - - 2138 84 184 284 384 184 84 284 84 - - 2139 86 186 286 386 186 86 - - - - 2140 88 188 288 388 188 88 - - - - 2141 90 190 290 390 190 90 290 90 390 90 2142 92 192 292 392 192 92 - - - - 2143 94 194 294 394 194 94 - - - - 2144} 2145do_execsql_test joinD-100 { 2146 SELECT t1.*, t2.*, t3.*, t4.* 2147 FROM t1 INNER JOIN t2 ON true 2148 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2149 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 2150 WHERE t1.b=t2.b AND t2.x>0 2151 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2152} { 2153 2 102 202 302 102 2 - - - - 2154 4 104 204 304 104 4 - - - - 2155 6 106 206 306 106 6 206 6 - - 2156 8 108 208 308 108 8 - - - - 2157 10 110 210 310 110 10 - - 310 10 2158 12 112 212 312 112 12 212 12 - - 2159 14 114 214 314 114 14 - - - - 2160 16 116 216 316 116 16 - - - - 2161 18 118 218 318 118 18 218 18 - - 2162 20 120 220 320 120 20 - - 320 20 2163 22 122 222 322 122 22 - - - - 2164 24 124 224 324 124 24 224 24 - - 2165 26 126 226 326 126 26 - - - - 2166 28 128 228 328 128 28 - - - - 2167 30 130 230 330 130 30 230 30 330 30 2168 32 132 232 332 132 32 - - - - 2169 34 134 234 334 134 34 - - - - 2170 36 136 236 336 136 36 236 36 - - 2171 38 138 238 338 138 38 - - - - 2172 40 140 240 340 140 40 - - 340 40 2173 42 142 242 342 142 42 242 42 - - 2174 44 144 244 344 144 44 - - - - 2175 46 146 246 346 146 46 - - - - 2176 48 148 248 348 148 48 248 48 - - 2177 50 150 250 350 150 50 - - 350 50 2178 52 152 252 352 152 52 - - - - 2179 54 154 254 354 154 54 254 54 - - 2180 56 156 256 356 156 56 - - - - 2181 58 158 258 358 158 58 - - - - 2182 60 160 260 360 160 60 260 60 360 60 2183 62 162 262 362 162 62 - - - - 2184 64 164 264 364 164 64 - - - - 2185 66 166 266 366 166 66 266 66 - - 2186 68 168 268 368 168 68 - - - - 2187 70 170 270 370 170 70 - - 370 70 2188 72 172 272 372 172 72 272 72 - - 2189 74 174 274 374 174 74 - - - - 2190 76 176 276 376 176 76 - - - - 2191 78 178 278 378 178 78 278 78 - - 2192 80 180 280 380 180 80 - - 380 80 2193 82 182 282 382 182 82 - - - - 2194 84 184 284 384 184 84 284 84 - - 2195 86 186 286 386 186 86 - - - - 2196 88 188 288 388 188 88 - - - - 2197 90 190 290 390 190 90 290 90 390 90 2198 92 192 292 392 192 92 - - - - 2199 94 194 294 394 194 94 - - - - 2200} 2201do_execsql_test joinD-101 { 2202 SELECT t1.*, t2.*, t3.*, t4.* 2203 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2204 LEFT JOIN t3 ON t1.c=t3.c 2205 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 2206 WHERE t3.y>0 2207 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2208} { 2209 6 106 206 306 106 6 206 6 - - 2210 12 112 212 312 112 12 212 12 - - 2211 18 118 218 318 118 18 218 18 - - 2212 24 124 224 324 124 24 224 24 - - 2213 30 130 230 330 130 30 230 30 330 30 2214 36 136 236 336 136 36 236 36 - - 2215 42 142 242 342 142 42 242 42 - - 2216 48 148 248 348 148 48 248 48 - - 2217 54 154 254 354 154 54 254 54 - - 2218 60 160 260 360 160 60 260 60 360 60 2219 66 166 266 366 166 66 266 66 - - 2220 72 172 272 372 172 72 272 72 - - 2221 78 178 278 378 178 78 278 78 - - 2222 84 184 284 384 184 84 284 84 - - 2223 90 190 290 390 190 90 290 90 390 90 2224} 2225do_execsql_test joinD-102 { 2226 SELECT t1.*, t2.*, t3.*, t4.* 2227 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2228 LEFT JOIN t3 ON t1.c=t3.c 2229 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 2230 WHERE t3.y>0 OR t3.y IS NULL 2231 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2232} { 2233 2 102 202 302 102 2 - - - - 2234 4 104 204 304 104 4 - - - - 2235 6 106 206 306 106 6 206 6 - - 2236 8 108 208 308 108 8 - - - - 2237 10 110 210 310 110 10 - - 310 10 2238 12 112 212 312 112 12 212 12 - - 2239 14 114 214 314 114 14 - - - - 2240 16 116 216 316 116 16 - - - - 2241 18 118 218 318 118 18 218 18 - - 2242 20 120 220 320 120 20 - - 320 20 2243 22 122 222 322 122 22 - - - - 2244 24 124 224 324 124 24 224 24 - - 2245 26 126 226 326 126 26 - - - - 2246 28 128 228 328 128 28 - - - - 2247 30 130 230 330 130 30 230 30 330 30 2248 32 132 232 332 132 32 - - - - 2249 34 134 234 334 134 34 - - - - 2250 36 136 236 336 136 36 236 36 - - 2251 38 138 238 338 138 38 - - - - 2252 40 140 240 340 140 40 - - 340 40 2253 42 142 242 342 142 42 242 42 - - 2254 44 144 244 344 144 44 - - - - 2255 46 146 246 346 146 46 - - - - 2256 48 148 248 348 148 48 248 48 - - 2257 50 150 250 350 150 50 - - 350 50 2258 52 152 252 352 152 52 - - - - 2259 54 154 254 354 154 54 254 54 - - 2260 56 156 256 356 156 56 - - - - 2261 58 158 258 358 158 58 - - - - 2262 60 160 260 360 160 60 260 60 360 60 2263 62 162 262 362 162 62 - - - - 2264 64 164 264 364 164 64 - - - - 2265 66 166 266 366 166 66 266 66 - - 2266 68 168 268 368 168 68 - - - - 2267 70 170 270 370 170 70 - - 370 70 2268 72 172 272 372 172 72 272 72 - - 2269 74 174 274 374 174 74 - - - - 2270 76 176 276 376 176 76 - - - - 2271 78 178 278 378 178 78 278 78 - - 2272 80 180 280 380 180 80 - - 380 80 2273 82 182 282 382 182 82 - - - - 2274 84 184 284 384 184 84 284 84 - - 2275 86 186 286 386 186 86 - - - - 2276 88 188 288 388 188 88 - - - - 2277 90 190 290 390 190 90 290 90 390 90 2278 92 192 292 392 192 92 - - - - 2279 94 194 294 394 194 94 - - - - 2280} 2281do_execsql_test joinD-103 { 2282 SELECT t1.*, t2.*, t3.*, t4.* 2283 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2284 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2285 LEFT JOIN t4 ON t1.d=t4.d 2286 WHERE t4.z>0 2287 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2288} { 2289 10 110 210 310 110 10 - - 310 10 2290 20 120 220 320 120 20 - - 320 20 2291 30 130 230 330 130 30 230 30 330 30 2292 40 140 240 340 140 40 - - 340 40 2293 50 150 250 350 150 50 - - 350 50 2294 60 160 260 360 160 60 260 60 360 60 2295 70 170 270 370 170 70 - - 370 70 2296 80 180 280 380 180 80 - - 380 80 2297 90 190 290 390 190 90 290 90 390 90 2298} 2299do_execsql_test joinD-104 { 2300 SELECT t1.*, t2.*, t3.*, t4.* 2301 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2302 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2303 LEFT JOIN t4 ON t1.d=t4.d 2304 WHERE t4.z IS NULL OR t4.z>0 2305 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2306} { 2307 2 102 202 302 102 2 - - - - 2308 4 104 204 304 104 4 - - - - 2309 6 106 206 306 106 6 206 6 - - 2310 8 108 208 308 108 8 - - - - 2311 10 110 210 310 110 10 - - 310 10 2312 12 112 212 312 112 12 212 12 - - 2313 14 114 214 314 114 14 - - - - 2314 16 116 216 316 116 16 - - - - 2315 18 118 218 318 118 18 218 18 - - 2316 20 120 220 320 120 20 - - 320 20 2317 22 122 222 322 122 22 - - - - 2318 24 124 224 324 124 24 224 24 - - 2319 26 126 226 326 126 26 - - - - 2320 28 128 228 328 128 28 - - - - 2321 30 130 230 330 130 30 230 30 330 30 2322 32 132 232 332 132 32 - - - - 2323 34 134 234 334 134 34 - - - - 2324 36 136 236 336 136 36 236 36 - - 2325 38 138 238 338 138 38 - - - - 2326 40 140 240 340 140 40 - - 340 40 2327 42 142 242 342 142 42 242 42 - - 2328 44 144 244 344 144 44 - - - - 2329 46 146 246 346 146 46 - - - - 2330 48 148 248 348 148 48 248 48 - - 2331 50 150 250 350 150 50 - - 350 50 2332 52 152 252 352 152 52 - - - - 2333 54 154 254 354 154 54 254 54 - - 2334 56 156 256 356 156 56 - - - - 2335 58 158 258 358 158 58 - - - - 2336 60 160 260 360 160 60 260 60 360 60 2337 62 162 262 362 162 62 - - - - 2338 64 164 264 364 164 64 - - - - 2339 66 166 266 366 166 66 266 66 - - 2340 68 168 268 368 168 68 - - - - 2341 70 170 270 370 170 70 - - 370 70 2342 72 172 272 372 172 72 272 72 - - 2343 74 174 274 374 174 74 - - - - 2344 76 176 276 376 176 76 - - - - 2345 78 178 278 378 178 78 278 78 - - 2346 80 180 280 380 180 80 - - 380 80 2347 82 182 282 382 182 82 - - - - 2348 84 184 284 384 184 84 284 84 - - 2349 86 186 286 386 186 86 - - - - 2350 88 188 288 388 188 88 - - - - 2351 90 190 290 390 190 90 290 90 390 90 2352 92 192 292 392 192 92 - - - - 2353 94 194 294 394 194 94 - - - - 2354} 2355do_execsql_test joinD-105 { 2356 SELECT t1.*, t2.*, t3.*, t4.* 2357 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2358 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2359 LEFT JOIN t4 ON t1.d=t4.d 2360 WHERE t2.x>0 AND t4.z>0 2361 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2362} { 2363 10 110 210 310 110 10 - - 310 10 2364 20 120 220 320 120 20 - - 320 20 2365 30 130 230 330 130 30 230 30 330 30 2366 40 140 240 340 140 40 - - 340 40 2367 50 150 250 350 150 50 - - 350 50 2368 60 160 260 360 160 60 260 60 360 60 2369 70 170 270 370 170 70 - - 370 70 2370 80 180 280 380 180 80 - - 380 80 2371 90 190 290 390 190 90 290 90 390 90 2372} 2373do_execsql_test joinD-106 { 2374 SELECT t1.*, t2.*, t3.*, t4.* 2375 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2376 LEFT JOIN t3 ON t1.c=t3.c 2377 LEFT JOIN t4 ON t1.d=t4.d 2378 WHERE t4.z>0 AND t3.y>0 2379 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2380} { 2381 30 130 230 330 130 30 230 30 330 30 2382 60 160 260 360 160 60 260 60 360 60 2383 90 190 290 390 190 90 290 90 390 90 2384} 2385do_execsql_test joinD-107 { 2386 SELECT t1.*, t2.*, t3.*, t4.* 2387 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2388 LEFT JOIN t3 ON t1.c=t3.c 2389 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 2390 WHERE t2.x>0 AND t3.y>0 2391 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2392} { 2393 6 106 206 306 106 6 206 6 - - 2394 12 112 212 312 112 12 212 12 - - 2395 18 118 218 318 118 18 218 18 - - 2396 24 124 224 324 124 24 224 24 - - 2397 30 130 230 330 130 30 230 30 330 30 2398 36 136 236 336 136 36 236 36 - - 2399 42 142 242 342 142 42 242 42 - - 2400 48 148 248 348 148 48 248 48 - - 2401 54 154 254 354 154 54 254 54 - - 2402 60 160 260 360 160 60 260 60 360 60 2403 66 166 266 366 166 66 266 66 - - 2404 72 172 272 372 172 72 272 72 - - 2405 78 178 278 378 178 78 278 78 - - 2406 84 184 284 384 184 84 284 84 - - 2407 90 190 290 390 190 90 290 90 390 90 2408} 2409do_execsql_test joinD-108 { 2410 SELECT t1.*, t2.*, t3.*, t4.* 2411 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2412 LEFT JOIN t3 ON t1.c=t3.c 2413 LEFT JOIN t4 ON t1.d=t4.d 2414 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 2415 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2416} { 2417 30 130 230 330 130 30 230 30 330 30 2418 60 160 260 360 160 60 260 60 360 60 2419 90 190 290 390 190 90 290 90 390 90 2420} 2421do_execsql_test joinD-109 { 2422 SELECT t1.*, t2.*, t3.*, t4.* 2423 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 2424 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 2425 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 2426 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2427} { 2428 2 102 202 302 102 2 - - - - 2429 4 104 204 304 104 4 - - - - 2430 6 106 206 306 106 6 206 6 - - 2431 8 108 208 308 108 8 - - - - 2432 10 110 210 310 110 10 - - 310 10 2433 12 112 212 312 112 12 212 12 - - 2434 14 114 214 314 114 14 - - - - 2435 16 116 216 316 116 16 - - - - 2436 18 118 218 318 118 18 218 18 - - 2437 20 120 220 320 120 20 - - 320 20 2438 22 122 222 322 122 22 - - - - 2439 24 124 224 324 124 24 224 24 - - 2440 26 126 226 326 126 26 - - - - 2441 28 128 228 328 128 28 - - - - 2442 30 130 230 330 130 30 230 30 330 30 2443 32 132 232 332 132 32 - - - - 2444 34 134 234 334 134 34 - - - - 2445 36 136 236 336 136 36 236 36 - - 2446 38 138 238 338 138 38 - - - - 2447 40 140 240 340 140 40 - - 340 40 2448 42 142 242 342 142 42 242 42 - - 2449 44 144 244 344 144 44 - - - - 2450 46 146 246 346 146 46 - - - - 2451 48 148 248 348 148 48 248 48 - - 2452 50 150 250 350 150 50 - - 350 50 2453 52 152 252 352 152 52 - - - - 2454 54 154 254 354 154 54 254 54 - - 2455 56 156 256 356 156 56 - - - - 2456 58 158 258 358 158 58 - - - - 2457 60 160 260 360 160 60 260 60 360 60 2458 62 162 262 362 162 62 - - - - 2459 64 164 264 364 164 64 - - - - 2460 66 166 266 366 166 66 266 66 - - 2461 68 168 268 368 168 68 - - - - 2462 70 170 270 370 170 70 - - 370 70 2463 72 172 272 372 172 72 272 72 - - 2464 74 174 274 374 174 74 - - - - 2465 76 176 276 376 176 76 - - - - 2466 78 178 278 378 178 78 278 78 - - 2467 80 180 280 380 180 80 - - 380 80 2468 82 182 282 382 182 82 - - - - 2469 84 184 284 384 184 84 284 84 - - 2470 86 186 286 386 186 86 - - - - 2471 88 188 288 388 188 88 - - - - 2472 90 190 290 390 190 90 290 90 390 90 2473 92 192 292 392 192 92 - - - - 2474 94 194 294 394 194 94 - - - - 2475} 2476do_execsql_test joinD-110 { 2477 SELECT t1.*, t2.*, t3.*, t4.* 2478 FROM t1 INNER JOIN t2 ON t2.x>0 2479 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 2480 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 2481 WHERE t1.b IS NOT DISTINCT FROM t2.b 2482 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2483} { 2484 2 102 202 302 102 2 - - - - 2485 4 104 204 304 104 4 - - - - 2486 6 106 206 306 106 6 206 6 - - 2487 8 108 208 308 108 8 - - - - 2488 10 110 210 310 110 10 - - 310 10 2489 12 112 212 312 112 12 212 12 - - 2490 14 114 214 314 114 14 - - - - 2491 16 116 216 316 116 16 - - - - 2492 18 118 218 318 118 18 218 18 - - 2493 20 120 220 320 120 20 - - 320 20 2494 22 122 222 322 122 22 - - - - 2495 24 124 224 324 124 24 224 24 - - 2496 26 126 226 326 126 26 - - - - 2497 28 128 228 328 128 28 - - - - 2498 30 130 230 330 130 30 230 30 330 30 2499 32 132 232 332 132 32 - - - - 2500 34 134 234 334 134 34 - - - - 2501 36 136 236 336 136 36 236 36 - - 2502 38 138 238 338 138 38 - - - - 2503 40 140 240 340 140 40 - - 340 40 2504 42 142 242 342 142 42 242 42 - - 2505 44 144 244 344 144 44 - - - - 2506 46 146 246 346 146 46 - - - - 2507 48 148 248 348 148 48 248 48 - - 2508 50 150 250 350 150 50 - - 350 50 2509 52 152 252 352 152 52 - - - - 2510 54 154 254 354 154 54 254 54 - - 2511 56 156 256 356 156 56 - - - - 2512 58 158 258 358 158 58 - - - - 2513 60 160 260 360 160 60 260 60 360 60 2514 62 162 262 362 162 62 - - - - 2515 64 164 264 364 164 64 - - - - 2516 66 166 266 366 166 66 266 66 - - 2517 68 168 268 368 168 68 - - - - 2518 70 170 270 370 170 70 - - 370 70 2519 72 172 272 372 172 72 272 72 - - 2520 74 174 274 374 174 74 - - - - 2521 76 176 276 376 176 76 - - - - 2522 78 178 278 378 178 78 278 78 - - 2523 80 180 280 380 180 80 - - 380 80 2524 82 182 282 382 182 82 - - - - 2525 84 184 284 384 184 84 284 84 - - 2526 86 186 286 386 186 86 - - - - 2527 88 188 288 388 188 88 - - - - 2528 90 190 290 390 190 90 290 90 390 90 2529 92 192 292 392 192 92 - - - - 2530 94 194 294 394 194 94 - - - - 2531} 2532do_execsql_test joinD-111 { 2533 SELECT t1.*, t2.*, t3.*, t4.* 2534 FROM t1 INNER JOIN t2 ON t2.x>0 2535 LEFT JOIN t3 ON t3.y>0 2536 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 2537 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 2538 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2539} { 2540 6 106 206 306 106 6 206 6 - - 2541 12 112 212 312 112 12 212 12 - - 2542 18 118 218 318 118 18 218 18 - - 2543 24 124 224 324 124 24 224 24 - - 2544 30 130 230 330 130 30 230 30 330 30 2545 36 136 236 336 136 36 236 36 - - 2546 42 142 242 342 142 42 242 42 - - 2547 48 148 248 348 148 48 248 48 - - 2548 54 154 254 354 154 54 254 54 - - 2549 60 160 260 360 160 60 260 60 360 60 2550 66 166 266 366 166 66 266 66 - - 2551 72 172 272 372 172 72 272 72 - - 2552 78 178 278 378 178 78 278 78 - - 2553 84 184 284 384 184 84 284 84 - - 2554 90 190 290 390 190 90 290 90 390 90 2555} 2556do_execsql_test joinD-112 { 2557 SELECT t1.*, t2.*, t3.*, t4.* 2558 FROM t1 INNER JOIN t2 ON t2.x>0 2559 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 2560 LEFT JOIN t4 ON t4.z>0 2561 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 2562 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2563} { 2564 10 110 210 310 110 10 - - 310 10 2565 20 120 220 320 120 20 - - 320 20 2566 30 130 230 330 130 30 230 30 330 30 2567 40 140 240 340 140 40 - - 340 40 2568 50 150 250 350 150 50 - - 350 50 2569 60 160 260 360 160 60 260 60 360 60 2570 70 170 270 370 170 70 - - 370 70 2571 80 180 280 380 180 80 - - 380 80 2572 90 190 290 390 190 90 290 90 390 90 2573} 2574do_execsql_test joinD-113 { 2575 SELECT t1.*, t2.*, t3.*, t4.* 2576 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 2577 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2578 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 2579 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2580} { 2581 2 102 202 302 102 2 - - - - 2582 4 104 204 304 104 4 - - - - 2583 6 106 206 306 106 6 206 6 - - 2584 8 108 208 308 108 8 - - - - 2585 10 110 210 310 110 10 - - 310 10 2586 12 112 212 312 112 12 212 12 - - 2587 14 114 214 314 114 14 - - - - 2588 16 116 216 316 116 16 - - - - 2589 18 118 218 318 118 18 218 18 - - 2590 20 120 220 320 120 20 - - 320 20 2591 22 122 222 322 122 22 - - - - 2592 24 124 224 324 124 24 224 24 - - 2593 26 126 226 326 126 26 - - - - 2594 28 128 228 328 128 28 - - - - 2595 30 130 230 330 130 30 230 30 330 30 2596 32 132 232 332 132 32 - - - - 2597 34 134 234 334 134 34 - - - - 2598 36 136 236 336 136 36 236 36 - - 2599 38 138 238 338 138 38 - - - - 2600 40 140 240 340 140 40 - - 340 40 2601 42 142 242 342 142 42 242 42 - - 2602 44 144 244 344 144 44 - - - - 2603 46 146 246 346 146 46 - - - - 2604 48 148 248 348 148 48 248 48 - - 2605 50 150 250 350 150 50 - - 350 50 2606 52 152 252 352 152 52 - - - - 2607 54 154 254 354 154 54 254 54 - - 2608 56 156 256 356 156 56 - - - - 2609 58 158 258 358 158 58 - - - - 2610 60 160 260 360 160 60 260 60 360 60 2611 62 162 262 362 162 62 - - - - 2612 64 164 264 364 164 64 - - - - 2613 66 166 266 366 166 66 266 66 - - 2614 68 168 268 368 168 68 - - - - 2615 70 170 270 370 170 70 - - 370 70 2616 72 172 272 372 172 72 272 72 - - 2617 74 174 274 374 174 74 - - - - 2618 76 176 276 376 176 76 - - - - 2619 78 178 278 378 178 78 278 78 - - 2620 80 180 280 380 180 80 - - 380 80 2621 82 182 282 382 182 82 - - - - 2622 84 184 284 384 184 84 284 84 - - 2623 86 186 286 386 186 86 - - - - 2624 88 188 288 388 188 88 - - - - 2625 90 190 290 390 190 90 290 90 390 90 2626 92 192 292 392 192 92 - - - - 2627 94 194 294 394 194 94 - - - - 2628} 2629do_execsql_test joinD-114 { 2630 SELECT t1.*, t2.*, t3.*, t4.* 2631 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2632 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 2633 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 2634 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2635} { 2636 2 102 202 302 102 2 - - - - 2637 4 104 204 304 104 4 - - - - 2638 6 106 206 306 106 6 206 6 - - 2639 8 108 208 308 108 8 - - - - 2640 10 110 210 310 110 10 - - 310 10 2641 12 112 212 312 112 12 212 12 - - 2642 14 114 214 314 114 14 - - - - 2643 16 116 216 316 116 16 - - - - 2644 18 118 218 318 118 18 218 18 - - 2645 20 120 220 320 120 20 - - 320 20 2646 22 122 222 322 122 22 - - - - 2647 24 124 224 324 124 24 224 24 - - 2648 26 126 226 326 126 26 - - - - 2649 28 128 228 328 128 28 - - - - 2650 30 130 230 330 130 30 230 30 330 30 2651 32 132 232 332 132 32 - - - - 2652 34 134 234 334 134 34 - - - - 2653 36 136 236 336 136 36 236 36 - - 2654 38 138 238 338 138 38 - - - - 2655 40 140 240 340 140 40 - - 340 40 2656 42 142 242 342 142 42 242 42 - - 2657 44 144 244 344 144 44 - - - - 2658 46 146 246 346 146 46 - - - - 2659 48 148 248 348 148 48 248 48 - - 2660 50 150 250 350 150 50 - - 350 50 2661 52 152 252 352 152 52 - - - - 2662 54 154 254 354 154 54 254 54 - - 2663 56 156 256 356 156 56 - - - - 2664 58 158 258 358 158 58 - - - - 2665 60 160 260 360 160 60 260 60 360 60 2666 62 162 262 362 162 62 - - - - 2667 64 164 264 364 164 64 - - - - 2668 66 166 266 366 166 66 266 66 - - 2669 68 168 268 368 168 68 - - - - 2670 70 170 270 370 170 70 - - 370 70 2671 72 172 272 372 172 72 272 72 - - 2672 74 174 274 374 174 74 - - - - 2673 76 176 276 376 176 76 - - - - 2674 78 178 278 378 178 78 278 78 - - 2675 80 180 280 380 180 80 - - 380 80 2676 82 182 282 382 182 82 - - - - 2677 84 184 284 384 184 84 284 84 - - 2678 86 186 286 386 186 86 - - - - 2679 88 188 288 388 188 88 - - - - 2680 90 190 290 390 190 90 290 90 390 90 2681 92 192 292 392 192 92 - - - - 2682 94 194 294 394 194 94 - - - - 2683} 2684do_execsql_test joinD-115 { 2685 SELECT t1.*, t2.*, t3.*, t4.* 2686 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2687 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2688 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 2689 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2690} { 2691 10 110 210 310 110 10 - - 310 10 2692 20 120 220 320 120 20 - - 320 20 2693 30 130 230 330 130 30 230 30 330 30 2694 40 140 240 340 140 40 - - 340 40 2695 50 150 250 350 150 50 - - 350 50 2696 60 160 260 360 160 60 260 60 360 60 2697 70 170 270 370 170 70 - - 370 70 2698 80 180 280 380 180 80 - - 380 80 2699 90 190 290 390 190 90 290 90 390 90 2700 - - - - - - - - 300 0 2701 - - - - - - - - 305 5 2702 - - - - - - - - 315 15 2703 - - - - - - - - 325 25 2704 - - - - - - - - 335 35 2705 - - - - - - - - 345 45 2706 - - - - - - - - 355 55 2707 - - - - - - - - 365 65 2708 - - - - - - - - 375 75 2709 - - - - - - - - 385 85 2710 - - - - - - - - 395 95 2711} 2712do_execsql_test joinD-116 { 2713 SELECT t1.*, t2.*, t3.*, t4.* 2714 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 2715 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2716 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 2717 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2718} { 2719 10 110 210 310 110 10 - - 310 10 2720 20 120 220 320 120 20 - - 320 20 2721 30 130 230 330 130 30 230 30 330 30 2722 40 140 240 340 140 40 - - 340 40 2723 50 150 250 350 150 50 - - 350 50 2724 60 160 260 360 160 60 260 60 360 60 2725 70 170 270 370 170 70 - - 370 70 2726 80 180 280 380 180 80 - - 380 80 2727 90 190 290 390 190 90 290 90 390 90 2728 - - - - - - - - 300 0 2729 - - - - - - - - 305 5 2730 - - - - - - - - 315 15 2731 - - - - - - - - 325 25 2732 - - - - - - - - 335 35 2733 - - - - - - - - 345 45 2734 - - - - - - - - 355 55 2735 - - - - - - - - 365 65 2736 - - - - - - - - 375 75 2737 - - - - - - - - 385 85 2738 - - - - - - - - 395 95 2739} 2740do_execsql_test joinD-117 { 2741 SELECT t1.*, t2.*, t3.*, t4.* 2742 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2743 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2744 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 2745 WHERE t2.x>0 2746 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2747} { 2748 10 110 210 310 110 10 - - 310 10 2749 20 120 220 320 120 20 - - 320 20 2750 30 130 230 330 130 30 230 30 330 30 2751 40 140 240 340 140 40 - - 340 40 2752 50 150 250 350 150 50 - - 350 50 2753 60 160 260 360 160 60 260 60 360 60 2754 70 170 270 370 170 70 - - 370 70 2755 80 180 280 380 180 80 - - 380 80 2756 90 190 290 390 190 90 290 90 390 90 2757} 2758do_execsql_test joinD-118 { 2759 SELECT t1.*, t2.*, t3.*, t4.* 2760 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2761 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2762 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 2763 WHERE (t2.x>0 OR t2.x IS NULL) 2764 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2765} { 2766 10 110 210 310 110 10 - - 310 10 2767 20 120 220 320 120 20 - - 320 20 2768 30 130 230 330 130 30 230 30 330 30 2769 40 140 240 340 140 40 - - 340 40 2770 50 150 250 350 150 50 - - 350 50 2771 60 160 260 360 160 60 260 60 360 60 2772 70 170 270 370 170 70 - - 370 70 2773 80 180 280 380 180 80 - - 380 80 2774 90 190 290 390 190 90 290 90 390 90 2775 - - - - - - - - 300 0 2776 - - - - - - - - 305 5 2777 - - - - - - - - 315 15 2778 - - - - - - - - 325 25 2779 - - - - - - - - 335 35 2780 - - - - - - - - 345 45 2781 - - - - - - - - 355 55 2782 - - - - - - - - 365 65 2783 - - - - - - - - 375 75 2784 - - - - - - - - 385 85 2785 - - - - - - - - 395 95 2786} 2787do_execsql_test joinD-119 { 2788 SELECT t1.*, t2.*, t3.*, t4.* 2789 FROM t1 INNER JOIN t2 ON true 2790 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2791 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 2792 WHERE t1.b=t2.b AND t2.x>0 2793 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2794} { 2795 10 110 210 310 110 10 - - 310 10 2796 20 120 220 320 120 20 - - 320 20 2797 30 130 230 330 130 30 230 30 330 30 2798 40 140 240 340 140 40 - - 340 40 2799 50 150 250 350 150 50 - - 350 50 2800 60 160 260 360 160 60 260 60 360 60 2801 70 170 270 370 170 70 - - 370 70 2802 80 180 280 380 180 80 - - 380 80 2803 90 190 290 390 190 90 290 90 390 90 2804} 2805do_execsql_test joinD-120 { 2806 SELECT t1.*, t2.*, t3.*, t4.* 2807 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2808 LEFT JOIN t3 ON t1.c=t3.c 2809 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 2810 WHERE t3.y>0 2811 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2812} { 2813 30 130 230 330 130 30 230 30 330 30 2814 60 160 260 360 160 60 260 60 360 60 2815 90 190 290 390 190 90 290 90 390 90 2816} 2817do_execsql_test joinD-121 { 2818 SELECT t1.*, t2.*, t3.*, t4.* 2819 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2820 LEFT JOIN t3 ON t1.c=t3.c 2821 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 2822 WHERE t3.y>0 OR t3.y IS NULL 2823 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2824} { 2825 10 110 210 310 110 10 - - 310 10 2826 20 120 220 320 120 20 - - 320 20 2827 30 130 230 330 130 30 230 30 330 30 2828 40 140 240 340 140 40 - - 340 40 2829 50 150 250 350 150 50 - - 350 50 2830 60 160 260 360 160 60 260 60 360 60 2831 70 170 270 370 170 70 - - 370 70 2832 80 180 280 380 180 80 - - 380 80 2833 90 190 290 390 190 90 290 90 390 90 2834 - - - - - - - - 300 0 2835 - - - - - - - - 305 5 2836 - - - - - - - - 315 15 2837 - - - - - - - - 325 25 2838 - - - - - - - - 335 35 2839 - - - - - - - - 345 45 2840 - - - - - - - - 355 55 2841 - - - - - - - - 365 65 2842 - - - - - - - - 375 75 2843 - - - - - - - - 385 85 2844 - - - - - - - - 395 95 2845} 2846do_execsql_test joinD-122 { 2847 SELECT t1.*, t2.*, t3.*, t4.* 2848 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2849 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2850 RIGHT JOIN t4 ON t1.d=t4.d 2851 WHERE t4.z>0 2852 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2853} { 2854 10 110 210 310 110 10 - - 310 10 2855 20 120 220 320 120 20 - - 320 20 2856 30 130 230 330 130 30 230 30 330 30 2857 40 140 240 340 140 40 - - 340 40 2858 50 150 250 350 150 50 - - 350 50 2859 60 160 260 360 160 60 260 60 360 60 2860 70 170 270 370 170 70 - - 370 70 2861 80 180 280 380 180 80 - - 380 80 2862 90 190 290 390 190 90 290 90 390 90 2863 - - - - - - - - 305 5 2864 - - - - - - - - 315 15 2865 - - - - - - - - 325 25 2866 - - - - - - - - 335 35 2867 - - - - - - - - 345 45 2868 - - - - - - - - 355 55 2869 - - - - - - - - 365 65 2870 - - - - - - - - 375 75 2871 - - - - - - - - 385 85 2872 - - - - - - - - 395 95 2873} 2874do_execsql_test joinD-123 { 2875 SELECT t1.*, t2.*, t3.*, t4.* 2876 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2877 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2878 RIGHT JOIN t4 ON t1.d=t4.d 2879 WHERE t4.z IS NULL OR t4.z>0 2880 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2881} { 2882 10 110 210 310 110 10 - - 310 10 2883 20 120 220 320 120 20 - - 320 20 2884 30 130 230 330 130 30 230 30 330 30 2885 40 140 240 340 140 40 - - 340 40 2886 50 150 250 350 150 50 - - 350 50 2887 60 160 260 360 160 60 260 60 360 60 2888 70 170 270 370 170 70 - - 370 70 2889 80 180 280 380 180 80 - - 380 80 2890 90 190 290 390 190 90 290 90 390 90 2891 - - - - - - - - 305 5 2892 - - - - - - - - 315 15 2893 - - - - - - - - 325 25 2894 - - - - - - - - 335 35 2895 - - - - - - - - 345 45 2896 - - - - - - - - 355 55 2897 - - - - - - - - 365 65 2898 - - - - - - - - 375 75 2899 - - - - - - - - 385 85 2900 - - - - - - - - 395 95 2901} 2902do_execsql_test joinD-124 { 2903 SELECT t1.*, t2.*, t3.*, t4.* 2904 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2905 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 2906 RIGHT JOIN t4 ON t1.d=t4.d 2907 WHERE t2.x>0 AND t4.z>0 2908 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2909} { 2910 10 110 210 310 110 10 - - 310 10 2911 20 120 220 320 120 20 - - 320 20 2912 30 130 230 330 130 30 230 30 330 30 2913 40 140 240 340 140 40 - - 340 40 2914 50 150 250 350 150 50 - - 350 50 2915 60 160 260 360 160 60 260 60 360 60 2916 70 170 270 370 170 70 - - 370 70 2917 80 180 280 380 180 80 - - 380 80 2918 90 190 290 390 190 90 290 90 390 90 2919} 2920do_execsql_test joinD-125 { 2921 SELECT t1.*, t2.*, t3.*, t4.* 2922 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 2923 LEFT JOIN t3 ON t1.c=t3.c 2924 RIGHT JOIN t4 ON t1.d=t4.d 2925 WHERE t4.z>0 AND t3.y>0 2926 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2927} { 2928 30 130 230 330 130 30 230 30 330 30 2929 60 160 260 360 160 60 260 60 360 60 2930 90 190 290 390 190 90 290 90 390 90 2931} 2932do_execsql_test joinD-126 { 2933 SELECT t1.*, t2.*, t3.*, t4.* 2934 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2935 LEFT JOIN t3 ON t1.c=t3.c 2936 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 2937 WHERE t2.x>0 AND t3.y>0 2938 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2939} { 2940 30 130 230 330 130 30 230 30 330 30 2941 60 160 260 360 160 60 260 60 360 60 2942 90 190 290 390 190 90 290 90 390 90 2943} 2944do_execsql_test joinD-127 { 2945 SELECT t1.*, t2.*, t3.*, t4.* 2946 FROM t1 INNER JOIN t2 ON t1.b=t2.b 2947 LEFT JOIN t3 ON t1.c=t3.c 2948 RIGHT JOIN t4 ON t1.d=t4.d 2949 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 2950 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2951} { 2952 30 130 230 330 130 30 230 30 330 30 2953 60 160 260 360 160 60 260 60 360 60 2954 90 190 290 390 190 90 290 90 390 90 2955} 2956do_execsql_test joinD-128 { 2957 SELECT t1.*, t2.*, t3.*, t4.* 2958 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 2959 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 2960 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 2961 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2962} { 2963 10 110 210 310 110 10 - - 310 10 2964 20 120 220 320 120 20 - - 320 20 2965 30 130 230 330 130 30 230 30 330 30 2966 40 140 240 340 140 40 - - 340 40 2967 50 150 250 350 150 50 - - 350 50 2968 60 160 260 360 160 60 260 60 360 60 2969 70 170 270 370 170 70 - - 370 70 2970 80 180 280 380 180 80 - - 380 80 2971 90 190 290 390 190 90 290 90 390 90 2972 - - - - - - - - 300 0 2973 - - - - - - - - 305 5 2974 - - - - - - - - 315 15 2975 - - - - - - - - 325 25 2976 - - - - - - - - 335 35 2977 - - - - - - - - 345 45 2978 - - - - - - - - 355 55 2979 - - - - - - - - 365 65 2980 - - - - - - - - 375 75 2981 - - - - - - - - 385 85 2982 - - - - - - - - 395 95 2983} 2984do_execsql_test joinD-129 { 2985 SELECT t1.*, t2.*, t3.*, t4.* 2986 FROM t1 INNER JOIN t2 ON t2.x>0 2987 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 2988 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 2989 WHERE t1.b IS NOT DISTINCT FROM t2.b 2990 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 2991} { 2992 10 110 210 310 110 10 - - 310 10 2993 20 120 220 320 120 20 - - 320 20 2994 30 130 230 330 130 30 230 30 330 30 2995 40 140 240 340 140 40 - - 340 40 2996 50 150 250 350 150 50 - - 350 50 2997 60 160 260 360 160 60 260 60 360 60 2998 70 170 270 370 170 70 - - 370 70 2999 80 180 280 380 180 80 - - 380 80 3000 90 190 290 390 190 90 290 90 390 90 3001 - - - - - - - - 300 0 3002} 3003do_execsql_test joinD-130 { 3004 SELECT t1.*, t2.*, t3.*, t4.* 3005 FROM t1 INNER JOIN t2 ON t2.x>0 3006 LEFT JOIN t3 ON t3.y>0 3007 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 3008 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 3009 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3010} { 3011 30 130 230 330 130 30 230 30 330 30 3012 60 160 260 360 160 60 260 60 360 60 3013 90 190 290 390 190 90 290 90 390 90 3014 - - - - - - - - 300 0 3015} 3016do_execsql_test joinD-131 { 3017 SELECT t1.*, t2.*, t3.*, t4.* 3018 FROM t1 INNER JOIN t2 ON t2.x>0 3019 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 3020 RIGHT JOIN t4 ON t4.z>0 3021 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 3022 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3023} { 3024 10 110 210 310 110 10 - - 310 10 3025 20 120 220 320 120 20 - - 320 20 3026 30 130 230 330 130 30 230 30 330 30 3027 40 140 240 340 140 40 - - 340 40 3028 50 150 250 350 150 50 - - 350 50 3029 60 160 260 360 160 60 260 60 360 60 3030 70 170 270 370 170 70 - - 370 70 3031 80 180 280 380 180 80 - - 380 80 3032 90 190 290 390 190 90 290 90 390 90 3033} 3034do_execsql_test joinD-132 { 3035 SELECT t1.*, t2.*, t3.*, t4.* 3036 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 3037 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3038 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 3039 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3040} { 3041 10 110 210 310 110 10 - - 310 10 3042 20 120 220 320 120 20 - - 320 20 3043 30 130 230 330 130 30 230 30 330 30 3044 40 140 240 340 140 40 - - 340 40 3045 50 150 250 350 150 50 - - 350 50 3046 60 160 260 360 160 60 260 60 360 60 3047 70 170 270 370 170 70 - - 370 70 3048 80 180 280 380 180 80 - - 380 80 3049 90 190 290 390 190 90 290 90 390 90 3050 - - - - - - - - 300 0 3051 - - - - - - - - 305 5 3052 - - - - - - - - 315 15 3053 - - - - - - - - 325 25 3054 - - - - - - - - 335 35 3055 - - - - - - - - 345 45 3056 - - - - - - - - 355 55 3057 - - - - - - - - 365 65 3058 - - - - - - - - 375 75 3059 - - - - - - - - 385 85 3060 - - - - - - - - 395 95 3061} 3062do_execsql_test joinD-133 { 3063 SELECT t1.*, t2.*, t3.*, t4.* 3064 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 3065 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 3066 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 3067 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3068} { 3069 10 110 210 310 110 10 - - 310 10 3070 20 120 220 320 120 20 - - 320 20 3071 30 130 230 330 130 30 230 30 330 30 3072 40 140 240 340 140 40 - - 340 40 3073 50 150 250 350 150 50 - - 350 50 3074 60 160 260 360 160 60 260 60 360 60 3075 70 170 270 370 170 70 - - 370 70 3076 80 180 280 380 180 80 - - 380 80 3077 90 190 290 390 190 90 290 90 390 90 3078 - - - - - - - - 300 0 3079 - - - - - - - - 305 5 3080 - - - - - - - - 315 15 3081 - - - - - - - - 325 25 3082 - - - - - - - - 335 35 3083 - - - - - - - - 345 45 3084 - - - - - - - - 355 55 3085 - - - - - - - - 365 65 3086 - - - - - - - - 375 75 3087 - - - - - - - - 385 85 3088 - - - - - - - - 395 95 3089} 3090do_execsql_test joinD-134 { 3091 SELECT t1.*, t2.*, t3.*, t4.* 3092 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 3093 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3094 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3095 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3096} { 3097 2 102 202 302 102 2 - - - - 3098 4 104 204 304 104 4 - - - - 3099 6 106 206 306 106 6 206 6 - - 3100 8 108 208 308 108 8 - - - - 3101 10 110 210 310 110 10 - - 310 10 3102 12 112 212 312 112 12 212 12 - - 3103 14 114 214 314 114 14 - - - - 3104 16 116 216 316 116 16 - - - - 3105 18 118 218 318 118 18 218 18 - - 3106 20 120 220 320 120 20 - - 320 20 3107 22 122 222 322 122 22 - - - - 3108 24 124 224 324 124 24 224 24 - - 3109 26 126 226 326 126 26 - - - - 3110 28 128 228 328 128 28 - - - - 3111 30 130 230 330 130 30 230 30 330 30 3112 32 132 232 332 132 32 - - - - 3113 34 134 234 334 134 34 - - - - 3114 36 136 236 336 136 36 236 36 - - 3115 38 138 238 338 138 38 - - - - 3116 40 140 240 340 140 40 - - 340 40 3117 42 142 242 342 142 42 242 42 - - 3118 44 144 244 344 144 44 - - - - 3119 46 146 246 346 146 46 - - - - 3120 48 148 248 348 148 48 248 48 - - 3121 50 150 250 350 150 50 - - 350 50 3122 52 152 252 352 152 52 - - - - 3123 54 154 254 354 154 54 254 54 - - 3124 56 156 256 356 156 56 - - - - 3125 58 158 258 358 158 58 - - - - 3126 60 160 260 360 160 60 260 60 360 60 3127 62 162 262 362 162 62 - - - - 3128 64 164 264 364 164 64 - - - - 3129 66 166 266 366 166 66 266 66 - - 3130 68 168 268 368 168 68 - - - - 3131 70 170 270 370 170 70 - - 370 70 3132 72 172 272 372 172 72 272 72 - - 3133 74 174 274 374 174 74 - - - - 3134 76 176 276 376 176 76 - - - - 3135 78 178 278 378 178 78 278 78 - - 3136 80 180 280 380 180 80 - - 380 80 3137 82 182 282 382 182 82 - - - - 3138 84 184 284 384 184 84 284 84 - - 3139 86 186 286 386 186 86 - - - - 3140 88 188 288 388 188 88 - - - - 3141 90 190 290 390 190 90 290 90 390 90 3142 92 192 292 392 192 92 - - - - 3143 94 194 294 394 194 94 - - - - 3144 - - - - - - - - 300 0 3145 - - - - - - - - 305 5 3146 - - - - - - - - 315 15 3147 - - - - - - - - 325 25 3148 - - - - - - - - 335 35 3149 - - - - - - - - 345 45 3150 - - - - - - - - 355 55 3151 - - - - - - - - 365 65 3152 - - - - - - - - 375 75 3153 - - - - - - - - 385 85 3154 - - - - - - - - 395 95 3155} 3156do_execsql_test joinD-135 { 3157 SELECT t1.*, t2.*, t3.*, t4.* 3158 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 3159 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3160 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3161 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3162} { 3163 2 102 202 302 102 2 - - - - 3164 4 104 204 304 104 4 - - - - 3165 6 106 206 306 106 6 206 6 - - 3166 8 108 208 308 108 8 - - - - 3167 10 110 210 310 110 10 - - 310 10 3168 12 112 212 312 112 12 212 12 - - 3169 14 114 214 314 114 14 - - - - 3170 16 116 216 316 116 16 - - - - 3171 18 118 218 318 118 18 218 18 - - 3172 20 120 220 320 120 20 - - 320 20 3173 22 122 222 322 122 22 - - - - 3174 24 124 224 324 124 24 224 24 - - 3175 26 126 226 326 126 26 - - - - 3176 28 128 228 328 128 28 - - - - 3177 30 130 230 330 130 30 230 30 330 30 3178 32 132 232 332 132 32 - - - - 3179 34 134 234 334 134 34 - - - - 3180 36 136 236 336 136 36 236 36 - - 3181 38 138 238 338 138 38 - - - - 3182 40 140 240 340 140 40 - - 340 40 3183 42 142 242 342 142 42 242 42 - - 3184 44 144 244 344 144 44 - - - - 3185 46 146 246 346 146 46 - - - - 3186 48 148 248 348 148 48 248 48 - - 3187 50 150 250 350 150 50 - - 350 50 3188 52 152 252 352 152 52 - - - - 3189 54 154 254 354 154 54 254 54 - - 3190 56 156 256 356 156 56 - - - - 3191 58 158 258 358 158 58 - - - - 3192 60 160 260 360 160 60 260 60 360 60 3193 62 162 262 362 162 62 - - - - 3194 64 164 264 364 164 64 - - - - 3195 66 166 266 366 166 66 266 66 - - 3196 68 168 268 368 168 68 - - - - 3197 70 170 270 370 170 70 - - 370 70 3198 72 172 272 372 172 72 272 72 - - 3199 74 174 274 374 174 74 - - - - 3200 76 176 276 376 176 76 - - - - 3201 78 178 278 378 178 78 278 78 - - 3202 80 180 280 380 180 80 - - 380 80 3203 82 182 282 382 182 82 - - - - 3204 84 184 284 384 184 84 284 84 - - 3205 86 186 286 386 186 86 - - - - 3206 88 188 288 388 188 88 - - - - 3207 90 190 290 390 190 90 290 90 390 90 3208 92 192 292 392 192 92 - - - - 3209 94 194 294 394 194 94 - - - - 3210 - - - - - - - - 300 0 3211 - - - - - - - - 305 5 3212 - - - - - - - - 315 15 3213 - - - - - - - - 325 25 3214 - - - - - - - - 335 35 3215 - - - - - - - - 345 45 3216 - - - - - - - - 355 55 3217 - - - - - - - - 365 65 3218 - - - - - - - - 375 75 3219 - - - - - - - - 385 85 3220 - - - - - - - - 395 95 3221} 3222do_execsql_test joinD-136 { 3223 SELECT t1.*, t2.*, t3.*, t4.* 3224 FROM t1 INNER JOIN t2 ON t1.b=t2.b 3225 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3226 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3227 WHERE t2.x>0 3228 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3229} { 3230 2 102 202 302 102 2 - - - - 3231 4 104 204 304 104 4 - - - - 3232 6 106 206 306 106 6 206 6 - - 3233 8 108 208 308 108 8 - - - - 3234 10 110 210 310 110 10 - - 310 10 3235 12 112 212 312 112 12 212 12 - - 3236 14 114 214 314 114 14 - - - - 3237 16 116 216 316 116 16 - - - - 3238 18 118 218 318 118 18 218 18 - - 3239 20 120 220 320 120 20 - - 320 20 3240 22 122 222 322 122 22 - - - - 3241 24 124 224 324 124 24 224 24 - - 3242 26 126 226 326 126 26 - - - - 3243 28 128 228 328 128 28 - - - - 3244 30 130 230 330 130 30 230 30 330 30 3245 32 132 232 332 132 32 - - - - 3246 34 134 234 334 134 34 - - - - 3247 36 136 236 336 136 36 236 36 - - 3248 38 138 238 338 138 38 - - - - 3249 40 140 240 340 140 40 - - 340 40 3250 42 142 242 342 142 42 242 42 - - 3251 44 144 244 344 144 44 - - - - 3252 46 146 246 346 146 46 - - - - 3253 48 148 248 348 148 48 248 48 - - 3254 50 150 250 350 150 50 - - 350 50 3255 52 152 252 352 152 52 - - - - 3256 54 154 254 354 154 54 254 54 - - 3257 56 156 256 356 156 56 - - - - 3258 58 158 258 358 158 58 - - - - 3259 60 160 260 360 160 60 260 60 360 60 3260 62 162 262 362 162 62 - - - - 3261 64 164 264 364 164 64 - - - - 3262 66 166 266 366 166 66 266 66 - - 3263 68 168 268 368 168 68 - - - - 3264 70 170 270 370 170 70 - - 370 70 3265 72 172 272 372 172 72 272 72 - - 3266 74 174 274 374 174 74 - - - - 3267 76 176 276 376 176 76 - - - - 3268 78 178 278 378 178 78 278 78 - - 3269 80 180 280 380 180 80 - - 380 80 3270 82 182 282 382 182 82 - - - - 3271 84 184 284 384 184 84 284 84 - - 3272 86 186 286 386 186 86 - - - - 3273 88 188 288 388 188 88 - - - - 3274 90 190 290 390 190 90 290 90 390 90 3275 92 192 292 392 192 92 - - - - 3276 94 194 294 394 194 94 - - - - 3277} 3278do_execsql_test joinD-137 { 3279 SELECT t1.*, t2.*, t3.*, t4.* 3280 FROM t1 INNER JOIN t2 ON t1.b=t2.b 3281 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3282 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3283 WHERE (t2.x>0 OR t2.x IS NULL) 3284 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3285} { 3286 2 102 202 302 102 2 - - - - 3287 4 104 204 304 104 4 - - - - 3288 6 106 206 306 106 6 206 6 - - 3289 8 108 208 308 108 8 - - - - 3290 10 110 210 310 110 10 - - 310 10 3291 12 112 212 312 112 12 212 12 - - 3292 14 114 214 314 114 14 - - - - 3293 16 116 216 316 116 16 - - - - 3294 18 118 218 318 118 18 218 18 - - 3295 20 120 220 320 120 20 - - 320 20 3296 22 122 222 322 122 22 - - - - 3297 24 124 224 324 124 24 224 24 - - 3298 26 126 226 326 126 26 - - - - 3299 28 128 228 328 128 28 - - - - 3300 30 130 230 330 130 30 230 30 330 30 3301 32 132 232 332 132 32 - - - - 3302 34 134 234 334 134 34 - - - - 3303 36 136 236 336 136 36 236 36 - - 3304 38 138 238 338 138 38 - - - - 3305 40 140 240 340 140 40 - - 340 40 3306 42 142 242 342 142 42 242 42 - - 3307 44 144 244 344 144 44 - - - - 3308 46 146 246 346 146 46 - - - - 3309 48 148 248 348 148 48 248 48 - - 3310 50 150 250 350 150 50 - - 350 50 3311 52 152 252 352 152 52 - - - - 3312 54 154 254 354 154 54 254 54 - - 3313 56 156 256 356 156 56 - - - - 3314 58 158 258 358 158 58 - - - - 3315 60 160 260 360 160 60 260 60 360 60 3316 62 162 262 362 162 62 - - - - 3317 64 164 264 364 164 64 - - - - 3318 66 166 266 366 166 66 266 66 - - 3319 68 168 268 368 168 68 - - - - 3320 70 170 270 370 170 70 - - 370 70 3321 72 172 272 372 172 72 272 72 - - 3322 74 174 274 374 174 74 - - - - 3323 76 176 276 376 176 76 - - - - 3324 78 178 278 378 178 78 278 78 - - 3325 80 180 280 380 180 80 - - 380 80 3326 82 182 282 382 182 82 - - - - 3327 84 184 284 384 184 84 284 84 - - 3328 86 186 286 386 186 86 - - - - 3329 88 188 288 388 188 88 - - - - 3330 90 190 290 390 190 90 290 90 390 90 3331 92 192 292 392 192 92 - - - - 3332 94 194 294 394 194 94 - - - - 3333 - - - - - - - - 300 0 3334 - - - - - - - - 305 5 3335 - - - - - - - - 315 15 3336 - - - - - - - - 325 25 3337 - - - - - - - - 335 35 3338 - - - - - - - - 345 45 3339 - - - - - - - - 355 55 3340 - - - - - - - - 365 65 3341 - - - - - - - - 375 75 3342 - - - - - - - - 385 85 3343 - - - - - - - - 395 95 3344} 3345do_execsql_test joinD-138 { 3346 SELECT t1.*, t2.*, t3.*, t4.* 3347 FROM t1 INNER JOIN t2 ON true 3348 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3349 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3350 WHERE t1.b=t2.b AND t2.x>0 3351 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3352} { 3353 2 102 202 302 102 2 - - - - 3354 4 104 204 304 104 4 - - - - 3355 6 106 206 306 106 6 206 6 - - 3356 8 108 208 308 108 8 - - - - 3357 10 110 210 310 110 10 - - 310 10 3358 12 112 212 312 112 12 212 12 - - 3359 14 114 214 314 114 14 - - - - 3360 16 116 216 316 116 16 - - - - 3361 18 118 218 318 118 18 218 18 - - 3362 20 120 220 320 120 20 - - 320 20 3363 22 122 222 322 122 22 - - - - 3364 24 124 224 324 124 24 224 24 - - 3365 26 126 226 326 126 26 - - - - 3366 28 128 228 328 128 28 - - - - 3367 30 130 230 330 130 30 230 30 330 30 3368 32 132 232 332 132 32 - - - - 3369 34 134 234 334 134 34 - - - - 3370 36 136 236 336 136 36 236 36 - - 3371 38 138 238 338 138 38 - - - - 3372 40 140 240 340 140 40 - - 340 40 3373 42 142 242 342 142 42 242 42 - - 3374 44 144 244 344 144 44 - - - - 3375 46 146 246 346 146 46 - - - - 3376 48 148 248 348 148 48 248 48 - - 3377 50 150 250 350 150 50 - - 350 50 3378 52 152 252 352 152 52 - - - - 3379 54 154 254 354 154 54 254 54 - - 3380 56 156 256 356 156 56 - - - - 3381 58 158 258 358 158 58 - - - - 3382 60 160 260 360 160 60 260 60 360 60 3383 62 162 262 362 162 62 - - - - 3384 64 164 264 364 164 64 - - - - 3385 66 166 266 366 166 66 266 66 - - 3386 68 168 268 368 168 68 - - - - 3387 70 170 270 370 170 70 - - 370 70 3388 72 172 272 372 172 72 272 72 - - 3389 74 174 274 374 174 74 - - - - 3390 76 176 276 376 176 76 - - - - 3391 78 178 278 378 178 78 278 78 - - 3392 80 180 280 380 180 80 - - 380 80 3393 82 182 282 382 182 82 - - - - 3394 84 184 284 384 184 84 284 84 - - 3395 86 186 286 386 186 86 - - - - 3396 88 188 288 388 188 88 - - - - 3397 90 190 290 390 190 90 290 90 390 90 3398 92 192 292 392 192 92 - - - - 3399 94 194 294 394 194 94 - - - - 3400} 3401do_execsql_test joinD-139 { 3402 SELECT t1.*, t2.*, t3.*, t4.* 3403 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 3404 LEFT JOIN t3 ON t1.c=t3.c 3405 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3406 WHERE t3.y>0 3407 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3408} { 3409 6 106 206 306 106 6 206 6 - - 3410 12 112 212 312 112 12 212 12 - - 3411 18 118 218 318 118 18 218 18 - - 3412 24 124 224 324 124 24 224 24 - - 3413 30 130 230 330 130 30 230 30 330 30 3414 36 136 236 336 136 36 236 36 - - 3415 42 142 242 342 142 42 242 42 - - 3416 48 148 248 348 148 48 248 48 - - 3417 54 154 254 354 154 54 254 54 - - 3418 60 160 260 360 160 60 260 60 360 60 3419 66 166 266 366 166 66 266 66 - - 3420 72 172 272 372 172 72 272 72 - - 3421 78 178 278 378 178 78 278 78 - - 3422 84 184 284 384 184 84 284 84 - - 3423 90 190 290 390 190 90 290 90 390 90 3424} 3425do_execsql_test joinD-140 { 3426 SELECT t1.*, t2.*, t3.*, t4.* 3427 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 3428 LEFT JOIN t3 ON t1.c=t3.c 3429 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3430 WHERE t3.y>0 OR t3.y IS NULL 3431 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3432} { 3433 2 102 202 302 102 2 - - - - 3434 4 104 204 304 104 4 - - - - 3435 6 106 206 306 106 6 206 6 - - 3436 8 108 208 308 108 8 - - - - 3437 10 110 210 310 110 10 - - 310 10 3438 12 112 212 312 112 12 212 12 - - 3439 14 114 214 314 114 14 - - - - 3440 16 116 216 316 116 16 - - - - 3441 18 118 218 318 118 18 218 18 - - 3442 20 120 220 320 120 20 - - 320 20 3443 22 122 222 322 122 22 - - - - 3444 24 124 224 324 124 24 224 24 - - 3445 26 126 226 326 126 26 - - - - 3446 28 128 228 328 128 28 - - - - 3447 30 130 230 330 130 30 230 30 330 30 3448 32 132 232 332 132 32 - - - - 3449 34 134 234 334 134 34 - - - - 3450 36 136 236 336 136 36 236 36 - - 3451 38 138 238 338 138 38 - - - - 3452 40 140 240 340 140 40 - - 340 40 3453 42 142 242 342 142 42 242 42 - - 3454 44 144 244 344 144 44 - - - - 3455 46 146 246 346 146 46 - - - - 3456 48 148 248 348 148 48 248 48 - - 3457 50 150 250 350 150 50 - - 350 50 3458 52 152 252 352 152 52 - - - - 3459 54 154 254 354 154 54 254 54 - - 3460 56 156 256 356 156 56 - - - - 3461 58 158 258 358 158 58 - - - - 3462 60 160 260 360 160 60 260 60 360 60 3463 62 162 262 362 162 62 - - - - 3464 64 164 264 364 164 64 - - - - 3465 66 166 266 366 166 66 266 66 - - 3466 68 168 268 368 168 68 - - - - 3467 70 170 270 370 170 70 - - 370 70 3468 72 172 272 372 172 72 272 72 - - 3469 74 174 274 374 174 74 - - - - 3470 76 176 276 376 176 76 - - - - 3471 78 178 278 378 178 78 278 78 - - 3472 80 180 280 380 180 80 - - 380 80 3473 82 182 282 382 182 82 - - - - 3474 84 184 284 384 184 84 284 84 - - 3475 86 186 286 386 186 86 - - - - 3476 88 188 288 388 188 88 - - - - 3477 90 190 290 390 190 90 290 90 390 90 3478 92 192 292 392 192 92 - - - - 3479 94 194 294 394 194 94 - - - - 3480 - - - - - - - - 300 0 3481 - - - - - - - - 305 5 3482 - - - - - - - - 315 15 3483 - - - - - - - - 325 25 3484 - - - - - - - - 335 35 3485 - - - - - - - - 345 45 3486 - - - - - - - - 355 55 3487 - - - - - - - - 365 65 3488 - - - - - - - - 375 75 3489 - - - - - - - - 385 85 3490 - - - - - - - - 395 95 3491} 3492do_execsql_test joinD-141 { 3493 SELECT t1.*, t2.*, t3.*, t4.* 3494 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 3495 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3496 FULL JOIN t4 ON t1.d=t4.d 3497 WHERE t4.z>0 3498 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3499} { 3500 10 110 210 310 110 10 - - 310 10 3501 20 120 220 320 120 20 - - 320 20 3502 30 130 230 330 130 30 230 30 330 30 3503 40 140 240 340 140 40 - - 340 40 3504 50 150 250 350 150 50 - - 350 50 3505 60 160 260 360 160 60 260 60 360 60 3506 70 170 270 370 170 70 - - 370 70 3507 80 180 280 380 180 80 - - 380 80 3508 90 190 290 390 190 90 290 90 390 90 3509 - - - - - - - - 305 5 3510 - - - - - - - - 315 15 3511 - - - - - - - - 325 25 3512 - - - - - - - - 335 35 3513 - - - - - - - - 345 45 3514 - - - - - - - - 355 55 3515 - - - - - - - - 365 65 3516 - - - - - - - - 375 75 3517 - - - - - - - - 385 85 3518 - - - - - - - - 395 95 3519} 3520do_execsql_test joinD-142 { 3521 SELECT t1.*, t2.*, t3.*, t4.* 3522 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 3523 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3524 FULL JOIN t4 ON t1.d=t4.d 3525 WHERE t4.z IS NULL OR t4.z>0 3526 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3527} { 3528 2 102 202 302 102 2 - - - - 3529 4 104 204 304 104 4 - - - - 3530 6 106 206 306 106 6 206 6 - - 3531 8 108 208 308 108 8 - - - - 3532 10 110 210 310 110 10 - - 310 10 3533 12 112 212 312 112 12 212 12 - - 3534 14 114 214 314 114 14 - - - - 3535 16 116 216 316 116 16 - - - - 3536 18 118 218 318 118 18 218 18 - - 3537 20 120 220 320 120 20 - - 320 20 3538 22 122 222 322 122 22 - - - - 3539 24 124 224 324 124 24 224 24 - - 3540 26 126 226 326 126 26 - - - - 3541 28 128 228 328 128 28 - - - - 3542 30 130 230 330 130 30 230 30 330 30 3543 32 132 232 332 132 32 - - - - 3544 34 134 234 334 134 34 - - - - 3545 36 136 236 336 136 36 236 36 - - 3546 38 138 238 338 138 38 - - - - 3547 40 140 240 340 140 40 - - 340 40 3548 42 142 242 342 142 42 242 42 - - 3549 44 144 244 344 144 44 - - - - 3550 46 146 246 346 146 46 - - - - 3551 48 148 248 348 148 48 248 48 - - 3552 50 150 250 350 150 50 - - 350 50 3553 52 152 252 352 152 52 - - - - 3554 54 154 254 354 154 54 254 54 - - 3555 56 156 256 356 156 56 - - - - 3556 58 158 258 358 158 58 - - - - 3557 60 160 260 360 160 60 260 60 360 60 3558 62 162 262 362 162 62 - - - - 3559 64 164 264 364 164 64 - - - - 3560 66 166 266 366 166 66 266 66 - - 3561 68 168 268 368 168 68 - - - - 3562 70 170 270 370 170 70 - - 370 70 3563 72 172 272 372 172 72 272 72 - - 3564 74 174 274 374 174 74 - - - - 3565 76 176 276 376 176 76 - - - - 3566 78 178 278 378 178 78 278 78 - - 3567 80 180 280 380 180 80 - - 380 80 3568 82 182 282 382 182 82 - - - - 3569 84 184 284 384 184 84 284 84 - - 3570 86 186 286 386 186 86 - - - - 3571 88 188 288 388 188 88 - - - - 3572 90 190 290 390 190 90 290 90 390 90 3573 92 192 292 392 192 92 - - - - 3574 94 194 294 394 194 94 - - - - 3575 - - - - - - - - 305 5 3576 - - - - - - - - 315 15 3577 - - - - - - - - 325 25 3578 - - - - - - - - 335 35 3579 - - - - - - - - 345 45 3580 - - - - - - - - 355 55 3581 - - - - - - - - 365 65 3582 - - - - - - - - 375 75 3583 - - - - - - - - 385 85 3584 - - - - - - - - 395 95 3585} 3586do_execsql_test joinD-143 { 3587 SELECT t1.*, t2.*, t3.*, t4.* 3588 FROM t1 INNER JOIN t2 ON t1.b=t2.b 3589 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3590 FULL JOIN t4 ON t1.d=t4.d 3591 WHERE t2.x>0 AND t4.z>0 3592 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3593} { 3594 10 110 210 310 110 10 - - 310 10 3595 20 120 220 320 120 20 - - 320 20 3596 30 130 230 330 130 30 230 30 330 30 3597 40 140 240 340 140 40 - - 340 40 3598 50 150 250 350 150 50 - - 350 50 3599 60 160 260 360 160 60 260 60 360 60 3600 70 170 270 370 170 70 - - 370 70 3601 80 180 280 380 180 80 - - 380 80 3602 90 190 290 390 190 90 290 90 390 90 3603} 3604do_execsql_test joinD-144 { 3605 SELECT t1.*, t2.*, t3.*, t4.* 3606 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 3607 LEFT JOIN t3 ON t1.c=t3.c 3608 FULL JOIN t4 ON t1.d=t4.d 3609 WHERE t4.z>0 AND t3.y>0 3610 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3611} { 3612 30 130 230 330 130 30 230 30 330 30 3613 60 160 260 360 160 60 260 60 360 60 3614 90 190 290 390 190 90 290 90 390 90 3615} 3616do_execsql_test joinD-145 { 3617 SELECT t1.*, t2.*, t3.*, t4.* 3618 FROM t1 INNER JOIN t2 ON t1.b=t2.b 3619 LEFT JOIN t3 ON t1.c=t3.c 3620 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3621 WHERE t2.x>0 AND t3.y>0 3622 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3623} { 3624 6 106 206 306 106 6 206 6 - - 3625 12 112 212 312 112 12 212 12 - - 3626 18 118 218 318 118 18 218 18 - - 3627 24 124 224 324 124 24 224 24 - - 3628 30 130 230 330 130 30 230 30 330 30 3629 36 136 236 336 136 36 236 36 - - 3630 42 142 242 342 142 42 242 42 - - 3631 48 148 248 348 148 48 248 48 - - 3632 54 154 254 354 154 54 254 54 - - 3633 60 160 260 360 160 60 260 60 360 60 3634 66 166 266 366 166 66 266 66 - - 3635 72 172 272 372 172 72 272 72 - - 3636 78 178 278 378 178 78 278 78 - - 3637 84 184 284 384 184 84 284 84 - - 3638 90 190 290 390 190 90 290 90 390 90 3639} 3640do_execsql_test joinD-146 { 3641 SELECT t1.*, t2.*, t3.*, t4.* 3642 FROM t1 INNER JOIN t2 ON t1.b=t2.b 3643 LEFT JOIN t3 ON t1.c=t3.c 3644 FULL JOIN t4 ON t1.d=t4.d 3645 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 3646 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3647} { 3648 30 130 230 330 130 30 230 30 330 30 3649 60 160 260 360 160 60 260 60 360 60 3650 90 190 290 390 190 90 290 90 390 90 3651} 3652do_execsql_test joinD-147 { 3653 SELECT t1.*, t2.*, t3.*, t4.* 3654 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 3655 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 3656 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 3657 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3658} { 3659 2 102 202 302 102 2 - - - - 3660 4 104 204 304 104 4 - - - - 3661 6 106 206 306 106 6 206 6 - - 3662 8 108 208 308 108 8 - - - - 3663 10 110 210 310 110 10 - - 310 10 3664 12 112 212 312 112 12 212 12 - - 3665 14 114 214 314 114 14 - - - - 3666 16 116 216 316 116 16 - - - - 3667 18 118 218 318 118 18 218 18 - - 3668 20 120 220 320 120 20 - - 320 20 3669 22 122 222 322 122 22 - - - - 3670 24 124 224 324 124 24 224 24 - - 3671 26 126 226 326 126 26 - - - - 3672 28 128 228 328 128 28 - - - - 3673 30 130 230 330 130 30 230 30 330 30 3674 32 132 232 332 132 32 - - - - 3675 34 134 234 334 134 34 - - - - 3676 36 136 236 336 136 36 236 36 - - 3677 38 138 238 338 138 38 - - - - 3678 40 140 240 340 140 40 - - 340 40 3679 42 142 242 342 142 42 242 42 - - 3680 44 144 244 344 144 44 - - - - 3681 46 146 246 346 146 46 - - - - 3682 48 148 248 348 148 48 248 48 - - 3683 50 150 250 350 150 50 - - 350 50 3684 52 152 252 352 152 52 - - - - 3685 54 154 254 354 154 54 254 54 - - 3686 56 156 256 356 156 56 - - - - 3687 58 158 258 358 158 58 - - - - 3688 60 160 260 360 160 60 260 60 360 60 3689 62 162 262 362 162 62 - - - - 3690 64 164 264 364 164 64 - - - - 3691 66 166 266 366 166 66 266 66 - - 3692 68 168 268 368 168 68 - - - - 3693 70 170 270 370 170 70 - - 370 70 3694 72 172 272 372 172 72 272 72 - - 3695 74 174 274 374 174 74 - - - - 3696 76 176 276 376 176 76 - - - - 3697 78 178 278 378 178 78 278 78 - - 3698 80 180 280 380 180 80 - - 380 80 3699 82 182 282 382 182 82 - - - - 3700 84 184 284 384 184 84 284 84 - - 3701 86 186 286 386 186 86 - - - - 3702 88 188 288 388 188 88 - - - - 3703 90 190 290 390 190 90 290 90 390 90 3704 92 192 292 392 192 92 - - - - 3705 94 194 294 394 194 94 - - - - 3706 - - - - - - - - 300 0 3707 - - - - - - - - 305 5 3708 - - - - - - - - 315 15 3709 - - - - - - - - 325 25 3710 - - - - - - - - 335 35 3711 - - - - - - - - 345 45 3712 - - - - - - - - 355 55 3713 - - - - - - - - 365 65 3714 - - - - - - - - 375 75 3715 - - - - - - - - 385 85 3716 - - - - - - - - 395 95 3717} 3718do_execsql_test joinD-148 { 3719 SELECT t1.*, t2.*, t3.*, t4.* 3720 FROM t1 INNER JOIN t2 ON t2.x>0 3721 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 3722 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 3723 WHERE t1.b IS NOT DISTINCT FROM t2.b 3724 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3725} { 3726 2 102 202 302 102 2 - - - - 3727 4 104 204 304 104 4 - - - - 3728 6 106 206 306 106 6 206 6 - - 3729 8 108 208 308 108 8 - - - - 3730 10 110 210 310 110 10 - - 310 10 3731 12 112 212 312 112 12 212 12 - - 3732 14 114 214 314 114 14 - - - - 3733 16 116 216 316 116 16 - - - - 3734 18 118 218 318 118 18 218 18 - - 3735 20 120 220 320 120 20 - - 320 20 3736 22 122 222 322 122 22 - - - - 3737 24 124 224 324 124 24 224 24 - - 3738 26 126 226 326 126 26 - - - - 3739 28 128 228 328 128 28 - - - - 3740 30 130 230 330 130 30 230 30 330 30 3741 32 132 232 332 132 32 - - - - 3742 34 134 234 334 134 34 - - - - 3743 36 136 236 336 136 36 236 36 - - 3744 38 138 238 338 138 38 - - - - 3745 40 140 240 340 140 40 - - 340 40 3746 42 142 242 342 142 42 242 42 - - 3747 44 144 244 344 144 44 - - - - 3748 46 146 246 346 146 46 - - - - 3749 48 148 248 348 148 48 248 48 - - 3750 50 150 250 350 150 50 - - 350 50 3751 52 152 252 352 152 52 - - - - 3752 54 154 254 354 154 54 254 54 - - 3753 56 156 256 356 156 56 - - - - 3754 58 158 258 358 158 58 - - - - 3755 60 160 260 360 160 60 260 60 360 60 3756 62 162 262 362 162 62 - - - - 3757 64 164 264 364 164 64 - - - - 3758 66 166 266 366 166 66 266 66 - - 3759 68 168 268 368 168 68 - - - - 3760 70 170 270 370 170 70 - - 370 70 3761 72 172 272 372 172 72 272 72 - - 3762 74 174 274 374 174 74 - - - - 3763 76 176 276 376 176 76 - - - - 3764 78 178 278 378 178 78 278 78 - - 3765 80 180 280 380 180 80 - - 380 80 3766 82 182 282 382 182 82 - - - - 3767 84 184 284 384 184 84 284 84 - - 3768 86 186 286 386 186 86 - - - - 3769 88 188 288 388 188 88 - - - - 3770 90 190 290 390 190 90 290 90 390 90 3771 92 192 292 392 192 92 - - - - 3772 94 194 294 394 194 94 - - - - 3773 - - - - - - - - 300 0 3774} 3775do_execsql_test joinD-149 { 3776 SELECT t1.*, t2.*, t3.*, t4.* 3777 FROM t1 INNER JOIN t2 ON t2.x>0 3778 LEFT JOIN t3 ON t3.y>0 3779 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 3780 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 3781 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3782} { 3783 6 106 206 306 106 6 206 6 - - 3784 12 112 212 312 112 12 212 12 - - 3785 18 118 218 318 118 18 218 18 - - 3786 24 124 224 324 124 24 224 24 - - 3787 30 130 230 330 130 30 230 30 330 30 3788 36 136 236 336 136 36 236 36 - - 3789 42 142 242 342 142 42 242 42 - - 3790 48 148 248 348 148 48 248 48 - - 3791 54 154 254 354 154 54 254 54 - - 3792 60 160 260 360 160 60 260 60 360 60 3793 66 166 266 366 166 66 266 66 - - 3794 72 172 272 372 172 72 272 72 - - 3795 78 178 278 378 178 78 278 78 - - 3796 84 184 284 384 184 84 284 84 - - 3797 90 190 290 390 190 90 290 90 390 90 3798 - - - - - - - - 300 0 3799} 3800do_execsql_test joinD-150 { 3801 SELECT t1.*, t2.*, t3.*, t4.* 3802 FROM t1 INNER JOIN t2 ON t2.x>0 3803 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 3804 FULL JOIN t4 ON t4.z>0 3805 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 3806 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3807} { 3808 10 110 210 310 110 10 - - 310 10 3809 20 120 220 320 120 20 - - 320 20 3810 30 130 230 330 130 30 230 30 330 30 3811 40 140 240 340 140 40 - - 340 40 3812 50 150 250 350 150 50 - - 350 50 3813 60 160 260 360 160 60 260 60 360 60 3814 70 170 270 370 170 70 - - 370 70 3815 80 180 280 380 180 80 - - 380 80 3816 90 190 290 390 190 90 290 90 390 90 3817} 3818do_execsql_test joinD-151 { 3819 SELECT t1.*, t2.*, t3.*, t4.* 3820 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 3821 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 3822 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3823 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3824} { 3825 2 102 202 302 102 2 - - - - 3826 4 104 204 304 104 4 - - - - 3827 6 106 206 306 106 6 206 6 - - 3828 8 108 208 308 108 8 - - - - 3829 10 110 210 310 110 10 - - 310 10 3830 12 112 212 312 112 12 212 12 - - 3831 14 114 214 314 114 14 - - - - 3832 16 116 216 316 116 16 - - - - 3833 18 118 218 318 118 18 218 18 - - 3834 20 120 220 320 120 20 - - 320 20 3835 22 122 222 322 122 22 - - - - 3836 24 124 224 324 124 24 224 24 - - 3837 26 126 226 326 126 26 - - - - 3838 28 128 228 328 128 28 - - - - 3839 30 130 230 330 130 30 230 30 330 30 3840 32 132 232 332 132 32 - - - - 3841 34 134 234 334 134 34 - - - - 3842 36 136 236 336 136 36 236 36 - - 3843 38 138 238 338 138 38 - - - - 3844 40 140 240 340 140 40 - - 340 40 3845 42 142 242 342 142 42 242 42 - - 3846 44 144 244 344 144 44 - - - - 3847 46 146 246 346 146 46 - - - - 3848 48 148 248 348 148 48 248 48 - - 3849 50 150 250 350 150 50 - - 350 50 3850 52 152 252 352 152 52 - - - - 3851 54 154 254 354 154 54 254 54 - - 3852 56 156 256 356 156 56 - - - - 3853 58 158 258 358 158 58 - - - - 3854 60 160 260 360 160 60 260 60 360 60 3855 62 162 262 362 162 62 - - - - 3856 64 164 264 364 164 64 - - - - 3857 66 166 266 366 166 66 266 66 - - 3858 68 168 268 368 168 68 - - - - 3859 70 170 270 370 170 70 - - 370 70 3860 72 172 272 372 172 72 272 72 - - 3861 74 174 274 374 174 74 - - - - 3862 76 176 276 376 176 76 - - - - 3863 78 178 278 378 178 78 278 78 - - 3864 80 180 280 380 180 80 - - 380 80 3865 82 182 282 382 182 82 - - - - 3866 84 184 284 384 184 84 284 84 - - 3867 86 186 286 386 186 86 - - - - 3868 88 188 288 388 188 88 - - - - 3869 90 190 290 390 190 90 290 90 390 90 3870 92 192 292 392 192 92 - - - - 3871 94 194 294 394 194 94 - - - - 3872 - - - - - - - - 300 0 3873 - - - - - - - - 305 5 3874 - - - - - - - - 315 15 3875 - - - - - - - - 325 25 3876 - - - - - - - - 335 35 3877 - - - - - - - - 345 45 3878 - - - - - - - - 355 55 3879 - - - - - - - - 365 65 3880 - - - - - - - - 375 75 3881 - - - - - - - - 385 85 3882 - - - - - - - - 395 95 3883} 3884do_execsql_test joinD-152 { 3885 SELECT t1.*, t2.*, t3.*, t4.* 3886 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 3887 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 3888 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 3889 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3890} { 3891 2 102 202 302 102 2 - - - - 3892 4 104 204 304 104 4 - - - - 3893 6 106 206 306 106 6 206 6 - - 3894 8 108 208 308 108 8 - - - - 3895 10 110 210 310 110 10 - - 310 10 3896 12 112 212 312 112 12 212 12 - - 3897 14 114 214 314 114 14 - - - - 3898 16 116 216 316 116 16 - - - - 3899 18 118 218 318 118 18 218 18 - - 3900 20 120 220 320 120 20 - - 320 20 3901 22 122 222 322 122 22 - - - - 3902 24 124 224 324 124 24 224 24 - - 3903 26 126 226 326 126 26 - - - - 3904 28 128 228 328 128 28 - - - - 3905 30 130 230 330 130 30 230 30 330 30 3906 32 132 232 332 132 32 - - - - 3907 34 134 234 334 134 34 - - - - 3908 36 136 236 336 136 36 236 36 - - 3909 38 138 238 338 138 38 - - - - 3910 40 140 240 340 140 40 - - 340 40 3911 42 142 242 342 142 42 242 42 - - 3912 44 144 244 344 144 44 - - - - 3913 46 146 246 346 146 46 - - - - 3914 48 148 248 348 148 48 248 48 - - 3915 50 150 250 350 150 50 - - 350 50 3916 52 152 252 352 152 52 - - - - 3917 54 154 254 354 154 54 254 54 - - 3918 56 156 256 356 156 56 - - - - 3919 58 158 258 358 158 58 - - - - 3920 60 160 260 360 160 60 260 60 360 60 3921 62 162 262 362 162 62 - - - - 3922 64 164 264 364 164 64 - - - - 3923 66 166 266 366 166 66 266 66 - - 3924 68 168 268 368 168 68 - - - - 3925 70 170 270 370 170 70 - - 370 70 3926 72 172 272 372 172 72 272 72 - - 3927 74 174 274 374 174 74 - - - - 3928 76 176 276 376 176 76 - - - - 3929 78 178 278 378 178 78 278 78 - - 3930 80 180 280 380 180 80 - - 380 80 3931 82 182 282 382 182 82 - - - - 3932 84 184 284 384 184 84 284 84 - - 3933 86 186 286 386 186 86 - - - - 3934 88 188 288 388 188 88 - - - - 3935 90 190 290 390 190 90 290 90 390 90 3936 92 192 292 392 192 92 - - - - 3937 94 194 294 394 194 94 - - - - 3938 - - - - - - - - 300 0 3939 - - - - - - - - 305 5 3940 - - - - - - - - 315 15 3941 - - - - - - - - 325 25 3942 - - - - - - - - 335 35 3943 - - - - - - - - 345 45 3944 - - - - - - - - 355 55 3945 - - - - - - - - 365 65 3946 - - - - - - - - 375 75 3947 - - - - - - - - 385 85 3948 - - - - - - - - 395 95 3949} 3950do_execsql_test joinD-153 { 3951 SELECT t1.*, t2.*, t3.*, t4.* 3952 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 3953 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 3954 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 3955 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3956} { 3957 30 130 230 330 130 30 230 30 330 30 3958 60 160 260 360 160 60 260 60 360 60 3959 90 190 290 390 190 90 290 90 390 90 3960} 3961do_execsql_test joinD-154 { 3962 SELECT t1.*, t2.*, t3.*, t4.* 3963 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 3964 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 3965 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 3966 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3967} { 3968 30 130 230 330 130 30 230 30 330 30 3969 60 160 260 360 160 60 260 60 360 60 3970 90 190 290 390 190 90 290 90 390 90 3971} 3972do_execsql_test joinD-155 { 3973 SELECT t1.*, t2.*, t3.*, t4.* 3974 FROM t1 INNER JOIN t2 ON t1.b=t2.b 3975 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 3976 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 3977 WHERE t2.x>0 3978 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3979} { 3980 30 130 230 330 130 30 230 30 330 30 3981 60 160 260 360 160 60 260 60 360 60 3982 90 190 290 390 190 90 290 90 390 90 3983} 3984do_execsql_test joinD-156 { 3985 SELECT t1.*, t2.*, t3.*, t4.* 3986 FROM t1 INNER JOIN t2 ON t1.b=t2.b 3987 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 3988 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 3989 WHERE (t2.x>0 OR t2.x IS NULL) 3990 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 3991} { 3992 30 130 230 330 130 30 230 30 330 30 3993 60 160 260 360 160 60 260 60 360 60 3994 90 190 290 390 190 90 290 90 390 90 3995} 3996do_execsql_test joinD-157 { 3997 SELECT t1.*, t2.*, t3.*, t4.* 3998 FROM t1 INNER JOIN t2 ON true 3999 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4000 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 4001 WHERE t1.b=t2.b AND t2.x>0 4002 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4003} { 4004 30 130 230 330 130 30 230 30 330 30 4005 60 160 260 360 160 60 260 60 360 60 4006 90 190 290 390 190 90 290 90 390 90 4007} 4008do_execsql_test joinD-158 { 4009 SELECT t1.*, t2.*, t3.*, t4.* 4010 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4011 RIGHT JOIN t3 ON t1.c=t3.c 4012 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 4013 WHERE t3.y>0 4014 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4015} { 4016 30 130 230 330 130 30 230 30 330 30 4017 60 160 260 360 160 60 260 60 360 60 4018 90 190 290 390 190 90 290 90 390 90 4019} 4020do_execsql_test joinD-159 { 4021 SELECT t1.*, t2.*, t3.*, t4.* 4022 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4023 RIGHT JOIN t3 ON t1.c=t3.c 4024 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 4025 WHERE t3.y>0 OR t3.y IS NULL 4026 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4027} { 4028 30 130 230 330 130 30 230 30 330 30 4029 60 160 260 360 160 60 260 60 360 60 4030 90 190 290 390 190 90 290 90 390 90 4031} 4032do_execsql_test joinD-160 { 4033 SELECT t1.*, t2.*, t3.*, t4.* 4034 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4035 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4036 INNER JOIN t4 ON t1.d=t4.d 4037 WHERE t4.z>0 4038 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4039} { 4040 30 130 230 330 130 30 230 30 330 30 4041 60 160 260 360 160 60 260 60 360 60 4042 90 190 290 390 190 90 290 90 390 90 4043} 4044do_execsql_test joinD-161 { 4045 SELECT t1.*, t2.*, t3.*, t4.* 4046 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4047 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4048 INNER JOIN t4 ON t1.d=t4.d 4049 WHERE t4.z IS NULL OR t4.z>0 4050 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4051} { 4052 30 130 230 330 130 30 230 30 330 30 4053 60 160 260 360 160 60 260 60 360 60 4054 90 190 290 390 190 90 290 90 390 90 4055} 4056do_execsql_test joinD-162 { 4057 SELECT t1.*, t2.*, t3.*, t4.* 4058 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4059 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4060 INNER JOIN t4 ON t1.d=t4.d 4061 WHERE t2.x>0 AND t4.z>0 4062 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4063} { 4064 30 130 230 330 130 30 230 30 330 30 4065 60 160 260 360 160 60 260 60 360 60 4066 90 190 290 390 190 90 290 90 390 90 4067} 4068do_execsql_test joinD-163 { 4069 SELECT t1.*, t2.*, t3.*, t4.* 4070 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4071 RIGHT JOIN t3 ON t1.c=t3.c 4072 INNER JOIN t4 ON t1.d=t4.d 4073 WHERE t4.z>0 AND t3.y>0 4074 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4075} { 4076 30 130 230 330 130 30 230 30 330 30 4077 60 160 260 360 160 60 260 60 360 60 4078 90 190 290 390 190 90 290 90 390 90 4079} 4080do_execsql_test joinD-164 { 4081 SELECT t1.*, t2.*, t3.*, t4.* 4082 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4083 RIGHT JOIN t3 ON t1.c=t3.c 4084 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 4085 WHERE t2.x>0 AND t3.y>0 4086 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4087} { 4088 30 130 230 330 130 30 230 30 330 30 4089 60 160 260 360 160 60 260 60 360 60 4090 90 190 290 390 190 90 290 90 390 90 4091} 4092do_execsql_test joinD-165 { 4093 SELECT t1.*, t2.*, t3.*, t4.* 4094 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4095 RIGHT JOIN t3 ON t1.c=t3.c 4096 INNER JOIN t4 ON t1.d=t4.d 4097 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 4098 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4099} { 4100 30 130 230 330 130 30 230 30 330 30 4101 60 160 260 360 160 60 260 60 360 60 4102 90 190 290 390 190 90 290 90 390 90 4103} 4104do_execsql_test joinD-166 { 4105 SELECT t1.*, t2.*, t3.*, t4.* 4106 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 4107 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 4108 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 4109 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4110} { 4111 30 130 230 330 130 30 230 30 330 30 4112 60 160 260 360 160 60 260 60 360 60 4113 90 190 290 390 190 90 290 90 390 90 4114} 4115do_execsql_test joinD-167 { 4116 SELECT t1.*, t2.*, t3.*, t4.* 4117 FROM t1 INNER JOIN t2 ON t2.x>0 4118 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 4119 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 4120 WHERE t1.b IS NOT DISTINCT FROM t2.b 4121 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4122} { 4123 30 130 230 330 130 30 230 30 330 30 4124 60 160 260 360 160 60 260 60 360 60 4125 90 190 290 390 190 90 290 90 390 90 4126} 4127do_execsql_test joinD-168 { 4128 SELECT t1.*, t2.*, t3.*, t4.* 4129 FROM t1 INNER JOIN t2 ON t2.x>0 4130 RIGHT JOIN t3 ON t3.y>0 4131 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 4132 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 4133 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4134} { 4135 30 130 230 330 130 30 230 30 330 30 4136 60 160 260 360 160 60 260 60 360 60 4137 90 190 290 390 190 90 290 90 390 90 4138} 4139do_execsql_test joinD-169 { 4140 SELECT t1.*, t2.*, t3.*, t4.* 4141 FROM t1 INNER JOIN t2 ON t2.x>0 4142 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 4143 INNER JOIN t4 ON t4.z>0 4144 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 4145 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4146} { 4147 30 130 230 330 130 30 230 30 330 30 4148 60 160 260 360 160 60 260 60 360 60 4149 90 190 290 390 190 90 290 90 390 90 4150} 4151do_execsql_test joinD-170 { 4152 SELECT t1.*, t2.*, t3.*, t4.* 4153 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 4154 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4155 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 4156 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4157} { 4158 30 130 230 330 130 30 230 30 330 30 4159 60 160 260 360 160 60 260 60 360 60 4160 90 190 290 390 190 90 290 90 390 90 4161} 4162do_execsql_test joinD-171 { 4163 SELECT t1.*, t2.*, t3.*, t4.* 4164 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4165 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 4166 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 4167 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4168} { 4169 30 130 230 330 130 30 230 30 330 30 4170 60 160 260 360 160 60 260 60 360 60 4171 90 190 290 390 190 90 290 90 390 90 4172} 4173do_execsql_test joinD-172 { 4174 SELECT t1.*, t2.*, t3.*, t4.* 4175 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4176 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4177 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4178 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4179} { 4180 6 106 206 306 106 6 206 6 - - 4181 12 112 212 312 112 12 212 12 - - 4182 18 118 218 318 118 18 218 18 - - 4183 24 124 224 324 124 24 224 24 - - 4184 30 130 230 330 130 30 230 30 330 30 4185 36 136 236 336 136 36 236 36 - - 4186 42 142 242 342 142 42 242 42 - - 4187 48 148 248 348 148 48 248 48 - - 4188 54 154 254 354 154 54 254 54 - - 4189 60 160 260 360 160 60 260 60 360 60 4190 66 166 266 366 166 66 266 66 - - 4191 72 172 272 372 172 72 272 72 - - 4192 78 178 278 378 178 78 278 78 - - 4193 84 184 284 384 184 84 284 84 - - 4194 90 190 290 390 190 90 290 90 390 90 4195 - - - - - - 200 0 - - 4196 - - - - - - 203 3 - - 4197 - - - - - - 209 9 - - 4198 - - - - - - 215 15 - - 4199 - - - - - - 221 21 - - 4200 - - - - - - 227 27 - - 4201 - - - - - - 233 33 - - 4202 - - - - - - 239 39 - - 4203 - - - - - - 245 45 - - 4204 - - - - - - 251 51 - - 4205 - - - - - - 257 57 - - 4206 - - - - - - 263 63 - - 4207 - - - - - - 269 69 - - 4208 - - - - - - 275 75 - - 4209 - - - - - - 281 81 - - 4210 - - - - - - 287 87 - - 4211 - - - - - - 293 93 - - 4212} 4213do_execsql_test joinD-173 { 4214 SELECT t1.*, t2.*, t3.*, t4.* 4215 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 4216 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4217 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4218 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4219} { 4220 6 106 206 306 106 6 206 6 - - 4221 12 112 212 312 112 12 212 12 - - 4222 18 118 218 318 118 18 218 18 - - 4223 24 124 224 324 124 24 224 24 - - 4224 30 130 230 330 130 30 230 30 330 30 4225 36 136 236 336 136 36 236 36 - - 4226 42 142 242 342 142 42 242 42 - - 4227 48 148 248 348 148 48 248 48 - - 4228 54 154 254 354 154 54 254 54 - - 4229 60 160 260 360 160 60 260 60 360 60 4230 66 166 266 366 166 66 266 66 - - 4231 72 172 272 372 172 72 272 72 - - 4232 78 178 278 378 178 78 278 78 - - 4233 84 184 284 384 184 84 284 84 - - 4234 90 190 290 390 190 90 290 90 390 90 4235 - - - - - - 200 0 - - 4236 - - - - - - 203 3 - - 4237 - - - - - - 209 9 - - 4238 - - - - - - 215 15 - - 4239 - - - - - - 221 21 - - 4240 - - - - - - 227 27 - - 4241 - - - - - - 233 33 - - 4242 - - - - - - 239 39 - - 4243 - - - - - - 245 45 - - 4244 - - - - - - 251 51 - - 4245 - - - - - - 257 57 - - 4246 - - - - - - 263 63 - - 4247 - - - - - - 269 69 - - 4248 - - - - - - 275 75 - - 4249 - - - - - - 281 81 - - 4250 - - - - - - 287 87 - - 4251 - - - - - - 293 93 - - 4252} 4253do_execsql_test joinD-174 { 4254 SELECT t1.*, t2.*, t3.*, t4.* 4255 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4256 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4257 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4258 WHERE t2.x>0 4259 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4260} { 4261 6 106 206 306 106 6 206 6 - - 4262 12 112 212 312 112 12 212 12 - - 4263 18 118 218 318 118 18 218 18 - - 4264 24 124 224 324 124 24 224 24 - - 4265 30 130 230 330 130 30 230 30 330 30 4266 36 136 236 336 136 36 236 36 - - 4267 42 142 242 342 142 42 242 42 - - 4268 48 148 248 348 148 48 248 48 - - 4269 54 154 254 354 154 54 254 54 - - 4270 60 160 260 360 160 60 260 60 360 60 4271 66 166 266 366 166 66 266 66 - - 4272 72 172 272 372 172 72 272 72 - - 4273 78 178 278 378 178 78 278 78 - - 4274 84 184 284 384 184 84 284 84 - - 4275 90 190 290 390 190 90 290 90 390 90 4276} 4277do_execsql_test joinD-175 { 4278 SELECT t1.*, t2.*, t3.*, t4.* 4279 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4280 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4281 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4282 WHERE (t2.x>0 OR t2.x IS NULL) 4283 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4284} { 4285 6 106 206 306 106 6 206 6 - - 4286 12 112 212 312 112 12 212 12 - - 4287 18 118 218 318 118 18 218 18 - - 4288 24 124 224 324 124 24 224 24 - - 4289 30 130 230 330 130 30 230 30 330 30 4290 36 136 236 336 136 36 236 36 - - 4291 42 142 242 342 142 42 242 42 - - 4292 48 148 248 348 148 48 248 48 - - 4293 54 154 254 354 154 54 254 54 - - 4294 60 160 260 360 160 60 260 60 360 60 4295 66 166 266 366 166 66 266 66 - - 4296 72 172 272 372 172 72 272 72 - - 4297 78 178 278 378 178 78 278 78 - - 4298 84 184 284 384 184 84 284 84 - - 4299 90 190 290 390 190 90 290 90 390 90 4300 - - - - - - 200 0 - - 4301 - - - - - - 203 3 - - 4302 - - - - - - 209 9 - - 4303 - - - - - - 215 15 - - 4304 - - - - - - 221 21 - - 4305 - - - - - - 227 27 - - 4306 - - - - - - 233 33 - - 4307 - - - - - - 239 39 - - 4308 - - - - - - 245 45 - - 4309 - - - - - - 251 51 - - 4310 - - - - - - 257 57 - - 4311 - - - - - - 263 63 - - 4312 - - - - - - 269 69 - - 4313 - - - - - - 275 75 - - 4314 - - - - - - 281 81 - - 4315 - - - - - - 287 87 - - 4316 - - - - - - 293 93 - - 4317} 4318do_execsql_test joinD-176 { 4319 SELECT t1.*, t2.*, t3.*, t4.* 4320 FROM t1 INNER JOIN t2 ON true 4321 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4322 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4323 WHERE t1.b=t2.b AND t2.x>0 4324 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4325} { 4326 6 106 206 306 106 6 206 6 - - 4327 12 112 212 312 112 12 212 12 - - 4328 18 118 218 318 118 18 218 18 - - 4329 24 124 224 324 124 24 224 24 - - 4330 30 130 230 330 130 30 230 30 330 30 4331 36 136 236 336 136 36 236 36 - - 4332 42 142 242 342 142 42 242 42 - - 4333 48 148 248 348 148 48 248 48 - - 4334 54 154 254 354 154 54 254 54 - - 4335 60 160 260 360 160 60 260 60 360 60 4336 66 166 266 366 166 66 266 66 - - 4337 72 172 272 372 172 72 272 72 - - 4338 78 178 278 378 178 78 278 78 - - 4339 84 184 284 384 184 84 284 84 - - 4340 90 190 290 390 190 90 290 90 390 90 4341} 4342do_execsql_test joinD-177 { 4343 SELECT t1.*, t2.*, t3.*, t4.* 4344 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4345 RIGHT JOIN t3 ON t1.c=t3.c 4346 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4347 WHERE t3.y>0 4348 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4349} { 4350 6 106 206 306 106 6 206 6 - - 4351 12 112 212 312 112 12 212 12 - - 4352 18 118 218 318 118 18 218 18 - - 4353 24 124 224 324 124 24 224 24 - - 4354 30 130 230 330 130 30 230 30 330 30 4355 36 136 236 336 136 36 236 36 - - 4356 42 142 242 342 142 42 242 42 - - 4357 48 148 248 348 148 48 248 48 - - 4358 54 154 254 354 154 54 254 54 - - 4359 60 160 260 360 160 60 260 60 360 60 4360 66 166 266 366 166 66 266 66 - - 4361 72 172 272 372 172 72 272 72 - - 4362 78 178 278 378 178 78 278 78 - - 4363 84 184 284 384 184 84 284 84 - - 4364 90 190 290 390 190 90 290 90 390 90 4365 - - - - - - 203 3 - - 4366 - - - - - - 209 9 - - 4367 - - - - - - 215 15 - - 4368 - - - - - - 221 21 - - 4369 - - - - - - 227 27 - - 4370 - - - - - - 233 33 - - 4371 - - - - - - 239 39 - - 4372 - - - - - - 245 45 - - 4373 - - - - - - 251 51 - - 4374 - - - - - - 257 57 - - 4375 - - - - - - 263 63 - - 4376 - - - - - - 269 69 - - 4377 - - - - - - 275 75 - - 4378 - - - - - - 281 81 - - 4379 - - - - - - 287 87 - - 4380 - - - - - - 293 93 - - 4381} 4382do_execsql_test joinD-178 { 4383 SELECT t1.*, t2.*, t3.*, t4.* 4384 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4385 RIGHT JOIN t3 ON t1.c=t3.c 4386 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4387 WHERE t3.y>0 OR t3.y IS NULL 4388 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4389} { 4390 6 106 206 306 106 6 206 6 - - 4391 12 112 212 312 112 12 212 12 - - 4392 18 118 218 318 118 18 218 18 - - 4393 24 124 224 324 124 24 224 24 - - 4394 30 130 230 330 130 30 230 30 330 30 4395 36 136 236 336 136 36 236 36 - - 4396 42 142 242 342 142 42 242 42 - - 4397 48 148 248 348 148 48 248 48 - - 4398 54 154 254 354 154 54 254 54 - - 4399 60 160 260 360 160 60 260 60 360 60 4400 66 166 266 366 166 66 266 66 - - 4401 72 172 272 372 172 72 272 72 - - 4402 78 178 278 378 178 78 278 78 - - 4403 84 184 284 384 184 84 284 84 - - 4404 90 190 290 390 190 90 290 90 390 90 4405 - - - - - - 203 3 - - 4406 - - - - - - 209 9 - - 4407 - - - - - - 215 15 - - 4408 - - - - - - 221 21 - - 4409 - - - - - - 227 27 - - 4410 - - - - - - 233 33 - - 4411 - - - - - - 239 39 - - 4412 - - - - - - 245 45 - - 4413 - - - - - - 251 51 - - 4414 - - - - - - 257 57 - - 4415 - - - - - - 263 63 - - 4416 - - - - - - 269 69 - - 4417 - - - - - - 275 75 - - 4418 - - - - - - 281 81 - - 4419 - - - - - - 287 87 - - 4420 - - - - - - 293 93 - - 4421} 4422do_execsql_test joinD-179 { 4423 SELECT t1.*, t2.*, t3.*, t4.* 4424 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4425 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4426 LEFT JOIN t4 ON t1.d=t4.d 4427 WHERE t4.z>0 4428 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4429} { 4430 30 130 230 330 130 30 230 30 330 30 4431 60 160 260 360 160 60 260 60 360 60 4432 90 190 290 390 190 90 290 90 390 90 4433} 4434do_execsql_test joinD-180 { 4435 SELECT t1.*, t2.*, t3.*, t4.* 4436 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4437 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4438 LEFT JOIN t4 ON t1.d=t4.d 4439 WHERE t4.z IS NULL OR t4.z>0 4440 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4441} { 4442 6 106 206 306 106 6 206 6 - - 4443 12 112 212 312 112 12 212 12 - - 4444 18 118 218 318 118 18 218 18 - - 4445 24 124 224 324 124 24 224 24 - - 4446 30 130 230 330 130 30 230 30 330 30 4447 36 136 236 336 136 36 236 36 - - 4448 42 142 242 342 142 42 242 42 - - 4449 48 148 248 348 148 48 248 48 - - 4450 54 154 254 354 154 54 254 54 - - 4451 60 160 260 360 160 60 260 60 360 60 4452 66 166 266 366 166 66 266 66 - - 4453 72 172 272 372 172 72 272 72 - - 4454 78 178 278 378 178 78 278 78 - - 4455 84 184 284 384 184 84 284 84 - - 4456 90 190 290 390 190 90 290 90 390 90 4457 - - - - - - 200 0 - - 4458 - - - - - - 203 3 - - 4459 - - - - - - 209 9 - - 4460 - - - - - - 215 15 - - 4461 - - - - - - 221 21 - - 4462 - - - - - - 227 27 - - 4463 - - - - - - 233 33 - - 4464 - - - - - - 239 39 - - 4465 - - - - - - 245 45 - - 4466 - - - - - - 251 51 - - 4467 - - - - - - 257 57 - - 4468 - - - - - - 263 63 - - 4469 - - - - - - 269 69 - - 4470 - - - - - - 275 75 - - 4471 - - - - - - 281 81 - - 4472 - - - - - - 287 87 - - 4473 - - - - - - 293 93 - - 4474} 4475do_execsql_test joinD-181 { 4476 SELECT t1.*, t2.*, t3.*, t4.* 4477 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4478 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4479 LEFT JOIN t4 ON t1.d=t4.d 4480 WHERE t2.x>0 AND t4.z>0 4481 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4482} { 4483 30 130 230 330 130 30 230 30 330 30 4484 60 160 260 360 160 60 260 60 360 60 4485 90 190 290 390 190 90 290 90 390 90 4486} 4487do_execsql_test joinD-182 { 4488 SELECT t1.*, t2.*, t3.*, t4.* 4489 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4490 RIGHT JOIN t3 ON t1.c=t3.c 4491 LEFT JOIN t4 ON t1.d=t4.d 4492 WHERE t4.z>0 AND t3.y>0 4493 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4494} { 4495 30 130 230 330 130 30 230 30 330 30 4496 60 160 260 360 160 60 260 60 360 60 4497 90 190 290 390 190 90 290 90 390 90 4498} 4499do_execsql_test joinD-183 { 4500 SELECT t1.*, t2.*, t3.*, t4.* 4501 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4502 RIGHT JOIN t3 ON t1.c=t3.c 4503 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4504 WHERE t2.x>0 AND t3.y>0 4505 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4506} { 4507 6 106 206 306 106 6 206 6 - - 4508 12 112 212 312 112 12 212 12 - - 4509 18 118 218 318 118 18 218 18 - - 4510 24 124 224 324 124 24 224 24 - - 4511 30 130 230 330 130 30 230 30 330 30 4512 36 136 236 336 136 36 236 36 - - 4513 42 142 242 342 142 42 242 42 - - 4514 48 148 248 348 148 48 248 48 - - 4515 54 154 254 354 154 54 254 54 - - 4516 60 160 260 360 160 60 260 60 360 60 4517 66 166 266 366 166 66 266 66 - - 4518 72 172 272 372 172 72 272 72 - - 4519 78 178 278 378 178 78 278 78 - - 4520 84 184 284 384 184 84 284 84 - - 4521 90 190 290 390 190 90 290 90 390 90 4522} 4523do_execsql_test joinD-184 { 4524 SELECT t1.*, t2.*, t3.*, t4.* 4525 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4526 RIGHT JOIN t3 ON t1.c=t3.c 4527 LEFT JOIN t4 ON t1.d=t4.d 4528 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 4529 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4530} { 4531 30 130 230 330 130 30 230 30 330 30 4532 60 160 260 360 160 60 260 60 360 60 4533 90 190 290 390 190 90 290 90 390 90 4534} 4535do_execsql_test joinD-185 { 4536 SELECT t1.*, t2.*, t3.*, t4.* 4537 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 4538 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 4539 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 4540 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4541} { 4542 6 106 206 306 106 6 206 6 - - 4543 12 112 212 312 112 12 212 12 - - 4544 18 118 218 318 118 18 218 18 - - 4545 24 124 224 324 124 24 224 24 - - 4546 30 130 230 330 130 30 230 30 330 30 4547 36 136 236 336 136 36 236 36 - - 4548 42 142 242 342 142 42 242 42 - - 4549 48 148 248 348 148 48 248 48 - - 4550 54 154 254 354 154 54 254 54 - - 4551 60 160 260 360 160 60 260 60 360 60 4552 66 166 266 366 166 66 266 66 - - 4553 72 172 272 372 172 72 272 72 - - 4554 78 178 278 378 178 78 278 78 - - 4555 84 184 284 384 184 84 284 84 - - 4556 90 190 290 390 190 90 290 90 390 90 4557 - - - - - - 200 0 - - 4558 - - - - - - 203 3 - - 4559 - - - - - - 209 9 - - 4560 - - - - - - 215 15 - - 4561 - - - - - - 221 21 - - 4562 - - - - - - 227 27 - - 4563 - - - - - - 233 33 - - 4564 - - - - - - 239 39 - - 4565 - - - - - - 245 45 - - 4566 - - - - - - 251 51 - - 4567 - - - - - - 257 57 - - 4568 - - - - - - 263 63 - - 4569 - - - - - - 269 69 - - 4570 - - - - - - 275 75 - - 4571 - - - - - - 281 81 - - 4572 - - - - - - 287 87 - - 4573 - - - - - - 293 93 - - 4574} 4575do_execsql_test joinD-186 { 4576 SELECT t1.*, t2.*, t3.*, t4.* 4577 FROM t1 INNER JOIN t2 ON t2.x>0 4578 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 4579 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 4580 WHERE t1.b IS NOT DISTINCT FROM t2.b 4581 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4582} { 4583 6 106 206 306 106 6 206 6 - - 4584 12 112 212 312 112 12 212 12 - - 4585 18 118 218 318 118 18 218 18 - - 4586 24 124 224 324 124 24 224 24 - - 4587 30 130 230 330 130 30 230 30 330 30 4588 36 136 236 336 136 36 236 36 - - 4589 42 142 242 342 142 42 242 42 - - 4590 48 148 248 348 148 48 248 48 - - 4591 54 154 254 354 154 54 254 54 - - 4592 60 160 260 360 160 60 260 60 360 60 4593 66 166 266 366 166 66 266 66 - - 4594 72 172 272 372 172 72 272 72 - - 4595 78 178 278 378 178 78 278 78 - - 4596 84 184 284 384 184 84 284 84 - - 4597 90 190 290 390 190 90 290 90 390 90 4598 - - - - - - 200 0 - - 4599} 4600do_execsql_test joinD-187 { 4601 SELECT t1.*, t2.*, t3.*, t4.* 4602 FROM t1 INNER JOIN t2 ON t2.x>0 4603 RIGHT JOIN t3 ON t3.y>0 4604 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 4605 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 4606 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4607} { 4608 6 106 206 306 106 6 206 6 - - 4609 12 112 212 312 112 12 212 12 - - 4610 18 118 218 318 118 18 218 18 - - 4611 24 124 224 324 124 24 224 24 - - 4612 30 130 230 330 130 30 230 30 330 30 4613 36 136 236 336 136 36 236 36 - - 4614 42 142 242 342 142 42 242 42 - - 4615 48 148 248 348 148 48 248 48 - - 4616 54 154 254 354 154 54 254 54 - - 4617 60 160 260 360 160 60 260 60 360 60 4618 66 166 266 366 166 66 266 66 - - 4619 72 172 272 372 172 72 272 72 - - 4620 78 178 278 378 178 78 278 78 - - 4621 84 184 284 384 184 84 284 84 - - 4622 90 190 290 390 190 90 290 90 390 90 4623} 4624do_execsql_test joinD-188 { 4625 SELECT t1.*, t2.*, t3.*, t4.* 4626 FROM t1 INNER JOIN t2 ON t2.x>0 4627 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 4628 LEFT JOIN t4 ON t4.z>0 4629 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 4630 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4631} { 4632 30 130 230 330 130 30 230 30 330 30 4633 60 160 260 360 160 60 260 60 360 60 4634 90 190 290 390 190 90 290 90 390 90 4635} 4636do_execsql_test joinD-189 { 4637 SELECT t1.*, t2.*, t3.*, t4.* 4638 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 4639 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4640 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4641 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4642} { 4643 6 106 206 306 106 6 206 6 - - 4644 12 112 212 312 112 12 212 12 - - 4645 18 118 218 318 118 18 218 18 - - 4646 24 124 224 324 124 24 224 24 - - 4647 30 130 230 330 130 30 230 30 330 30 4648 36 136 236 336 136 36 236 36 - - 4649 42 142 242 342 142 42 242 42 - - 4650 48 148 248 348 148 48 248 48 - - 4651 54 154 254 354 154 54 254 54 - - 4652 60 160 260 360 160 60 260 60 360 60 4653 66 166 266 366 166 66 266 66 - - 4654 72 172 272 372 172 72 272 72 - - 4655 78 178 278 378 178 78 278 78 - - 4656 84 184 284 384 184 84 284 84 - - 4657 90 190 290 390 190 90 290 90 390 90 4658 - - - - - - 200 0 - - 4659 - - - - - - 203 3 - - 4660 - - - - - - 209 9 - - 4661 - - - - - - 215 15 - - 4662 - - - - - - 221 21 - - 4663 - - - - - - 227 27 - - 4664 - - - - - - 233 33 - - 4665 - - - - - - 239 39 - - 4666 - - - - - - 245 45 - - 4667 - - - - - - 251 51 - - 4668 - - - - - - 257 57 - - 4669 - - - - - - 263 63 - - 4670 - - - - - - 269 69 - - 4671 - - - - - - 275 75 - - 4672 - - - - - - 281 81 - - 4673 - - - - - - 287 87 - - 4674 - - - - - - 293 93 - - 4675} 4676do_execsql_test joinD-190 { 4677 SELECT t1.*, t2.*, t3.*, t4.* 4678 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4679 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 4680 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 4681 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4682} { 4683 6 106 206 306 106 6 206 6 - - 4684 12 112 212 312 112 12 212 12 - - 4685 18 118 218 318 118 18 218 18 - - 4686 24 124 224 324 124 24 224 24 - - 4687 30 130 230 330 130 30 230 30 330 30 4688 36 136 236 336 136 36 236 36 - - 4689 42 142 242 342 142 42 242 42 - - 4690 48 148 248 348 148 48 248 48 - - 4691 54 154 254 354 154 54 254 54 - - 4692 60 160 260 360 160 60 260 60 360 60 4693 66 166 266 366 166 66 266 66 - - 4694 72 172 272 372 172 72 272 72 - - 4695 78 178 278 378 178 78 278 78 - - 4696 84 184 284 384 184 84 284 84 - - 4697 90 190 290 390 190 90 290 90 390 90 4698 - - - - - - 200 0 - - 4699 - - - - - - 203 3 - - 4700 - - - - - - 209 9 - - 4701 - - - - - - 215 15 - - 4702 - - - - - - 221 21 - - 4703 - - - - - - 227 27 - - 4704 - - - - - - 233 33 - - 4705 - - - - - - 239 39 - - 4706 - - - - - - 245 45 - - 4707 - - - - - - 251 51 - - 4708 - - - - - - 257 57 - - 4709 - - - - - - 263 63 - - 4710 - - - - - - 269 69 - - 4711 - - - - - - 275 75 - - 4712 - - - - - - 281 81 - - 4713 - - - - - - 287 87 - - 4714 - - - - - - 293 93 - - 4715} 4716do_execsql_test joinD-191 { 4717 SELECT t1.*, t2.*, t3.*, t4.* 4718 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4719 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4720 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 4721 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4722} { 4723 30 130 230 330 130 30 230 30 330 30 4724 60 160 260 360 160 60 260 60 360 60 4725 90 190 290 390 190 90 290 90 390 90 4726 - - - - - - - - 300 0 4727 - - - - - - - - 305 5 4728 - - - - - - - - 310 10 4729 - - - - - - - - 315 15 4730 - - - - - - - - 320 20 4731 - - - - - - - - 325 25 4732 - - - - - - - - 335 35 4733 - - - - - - - - 340 40 4734 - - - - - - - - 345 45 4735 - - - - - - - - 350 50 4736 - - - - - - - - 355 55 4737 - - - - - - - - 365 65 4738 - - - - - - - - 370 70 4739 - - - - - - - - 375 75 4740 - - - - - - - - 380 80 4741 - - - - - - - - 385 85 4742 - - - - - - - - 395 95 4743} 4744do_execsql_test joinD-192 { 4745 SELECT t1.*, t2.*, t3.*, t4.* 4746 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 4747 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4748 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 4749 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4750} { 4751 30 130 230 330 130 30 230 30 330 30 4752 60 160 260 360 160 60 260 60 360 60 4753 90 190 290 390 190 90 290 90 390 90 4754 - - - - - - - - 300 0 4755 - - - - - - - - 305 5 4756 - - - - - - - - 310 10 4757 - - - - - - - - 315 15 4758 - - - - - - - - 320 20 4759 - - - - - - - - 325 25 4760 - - - - - - - - 335 35 4761 - - - - - - - - 340 40 4762 - - - - - - - - 345 45 4763 - - - - - - - - 350 50 4764 - - - - - - - - 355 55 4765 - - - - - - - - 365 65 4766 - - - - - - - - 370 70 4767 - - - - - - - - 375 75 4768 - - - - - - - - 380 80 4769 - - - - - - - - 385 85 4770 - - - - - - - - 395 95 4771} 4772do_execsql_test joinD-193 { 4773 SELECT t1.*, t2.*, t3.*, t4.* 4774 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4775 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4776 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 4777 WHERE t2.x>0 4778 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4779} { 4780 30 130 230 330 130 30 230 30 330 30 4781 60 160 260 360 160 60 260 60 360 60 4782 90 190 290 390 190 90 290 90 390 90 4783} 4784do_execsql_test joinD-194 { 4785 SELECT t1.*, t2.*, t3.*, t4.* 4786 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4787 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4788 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 4789 WHERE (t2.x>0 OR t2.x IS NULL) 4790 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4791} { 4792 30 130 230 330 130 30 230 30 330 30 4793 60 160 260 360 160 60 260 60 360 60 4794 90 190 290 390 190 90 290 90 390 90 4795 - - - - - - - - 300 0 4796 - - - - - - - - 305 5 4797 - - - - - - - - 310 10 4798 - - - - - - - - 315 15 4799 - - - - - - - - 320 20 4800 - - - - - - - - 325 25 4801 - - - - - - - - 335 35 4802 - - - - - - - - 340 40 4803 - - - - - - - - 345 45 4804 - - - - - - - - 350 50 4805 - - - - - - - - 355 55 4806 - - - - - - - - 365 65 4807 - - - - - - - - 370 70 4808 - - - - - - - - 375 75 4809 - - - - - - - - 380 80 4810 - - - - - - - - 385 85 4811 - - - - - - - - 395 95 4812} 4813do_execsql_test joinD-195 { 4814 SELECT t1.*, t2.*, t3.*, t4.* 4815 FROM t1 INNER JOIN t2 ON true 4816 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4817 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 4818 WHERE t1.b=t2.b AND t2.x>0 4819 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4820} { 4821 30 130 230 330 130 30 230 30 330 30 4822 60 160 260 360 160 60 260 60 360 60 4823 90 190 290 390 190 90 290 90 390 90 4824} 4825do_execsql_test joinD-196 { 4826 SELECT t1.*, t2.*, t3.*, t4.* 4827 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4828 RIGHT JOIN t3 ON t1.c=t3.c 4829 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 4830 WHERE t3.y>0 4831 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4832} { 4833 30 130 230 330 130 30 230 30 330 30 4834 60 160 260 360 160 60 260 60 360 60 4835 90 190 290 390 190 90 290 90 390 90 4836} 4837do_execsql_test joinD-197 { 4838 SELECT t1.*, t2.*, t3.*, t4.* 4839 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4840 RIGHT JOIN t3 ON t1.c=t3.c 4841 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 4842 WHERE t3.y>0 OR t3.y IS NULL 4843 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4844} { 4845 30 130 230 330 130 30 230 30 330 30 4846 60 160 260 360 160 60 260 60 360 60 4847 90 190 290 390 190 90 290 90 390 90 4848 - - - - - - - - 300 0 4849 - - - - - - - - 305 5 4850 - - - - - - - - 310 10 4851 - - - - - - - - 315 15 4852 - - - - - - - - 320 20 4853 - - - - - - - - 325 25 4854 - - - - - - - - 335 35 4855 - - - - - - - - 340 40 4856 - - - - - - - - 345 45 4857 - - - - - - - - 350 50 4858 - - - - - - - - 355 55 4859 - - - - - - - - 365 65 4860 - - - - - - - - 370 70 4861 - - - - - - - - 375 75 4862 - - - - - - - - 380 80 4863 - - - - - - - - 385 85 4864 - - - - - - - - 395 95 4865} 4866do_execsql_test joinD-198 { 4867 SELECT t1.*, t2.*, t3.*, t4.* 4868 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4869 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4870 RIGHT JOIN t4 ON t1.d=t4.d 4871 WHERE t4.z>0 4872 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4873} { 4874 30 130 230 330 130 30 230 30 330 30 4875 60 160 260 360 160 60 260 60 360 60 4876 90 190 290 390 190 90 290 90 390 90 4877 - - - - - - - - 305 5 4878 - - - - - - - - 310 10 4879 - - - - - - - - 315 15 4880 - - - - - - - - 320 20 4881 - - - - - - - - 325 25 4882 - - - - - - - - 335 35 4883 - - - - - - - - 340 40 4884 - - - - - - - - 345 45 4885 - - - - - - - - 350 50 4886 - - - - - - - - 355 55 4887 - - - - - - - - 365 65 4888 - - - - - - - - 370 70 4889 - - - - - - - - 375 75 4890 - - - - - - - - 380 80 4891 - - - - - - - - 385 85 4892 - - - - - - - - 395 95 4893} 4894do_execsql_test joinD-199 { 4895 SELECT t1.*, t2.*, t3.*, t4.* 4896 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4897 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4898 RIGHT JOIN t4 ON t1.d=t4.d 4899 WHERE t4.z IS NULL OR t4.z>0 4900 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4901} { 4902 30 130 230 330 130 30 230 30 330 30 4903 60 160 260 360 160 60 260 60 360 60 4904 90 190 290 390 190 90 290 90 390 90 4905 - - - - - - - - 305 5 4906 - - - - - - - - 310 10 4907 - - - - - - - - 315 15 4908 - - - - - - - - 320 20 4909 - - - - - - - - 325 25 4910 - - - - - - - - 335 35 4911 - - - - - - - - 340 40 4912 - - - - - - - - 345 45 4913 - - - - - - - - 350 50 4914 - - - - - - - - 355 55 4915 - - - - - - - - 365 65 4916 - - - - - - - - 370 70 4917 - - - - - - - - 375 75 4918 - - - - - - - - 380 80 4919 - - - - - - - - 385 85 4920 - - - - - - - - 395 95 4921} 4922do_execsql_test joinD-200 { 4923 SELECT t1.*, t2.*, t3.*, t4.* 4924 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4925 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 4926 RIGHT JOIN t4 ON t1.d=t4.d 4927 WHERE t2.x>0 AND t4.z>0 4928 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4929} { 4930 30 130 230 330 130 30 230 30 330 30 4931 60 160 260 360 160 60 260 60 360 60 4932 90 190 290 390 190 90 290 90 390 90 4933} 4934do_execsql_test joinD-201 { 4935 SELECT t1.*, t2.*, t3.*, t4.* 4936 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 4937 RIGHT JOIN t3 ON t1.c=t3.c 4938 RIGHT JOIN t4 ON t1.d=t4.d 4939 WHERE t4.z>0 AND t3.y>0 4940 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4941} { 4942 30 130 230 330 130 30 230 30 330 30 4943 60 160 260 360 160 60 260 60 360 60 4944 90 190 290 390 190 90 290 90 390 90 4945} 4946do_execsql_test joinD-202 { 4947 SELECT t1.*, t2.*, t3.*, t4.* 4948 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4949 RIGHT JOIN t3 ON t1.c=t3.c 4950 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 4951 WHERE t2.x>0 AND t3.y>0 4952 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4953} { 4954 30 130 230 330 130 30 230 30 330 30 4955 60 160 260 360 160 60 260 60 360 60 4956 90 190 290 390 190 90 290 90 390 90 4957} 4958do_execsql_test joinD-203 { 4959 SELECT t1.*, t2.*, t3.*, t4.* 4960 FROM t1 INNER JOIN t2 ON t1.b=t2.b 4961 RIGHT JOIN t3 ON t1.c=t3.c 4962 RIGHT JOIN t4 ON t1.d=t4.d 4963 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 4964 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4965} { 4966 30 130 230 330 130 30 230 30 330 30 4967 60 160 260 360 160 60 260 60 360 60 4968 90 190 290 390 190 90 290 90 390 90 4969} 4970do_execsql_test joinD-204 { 4971 SELECT t1.*, t2.*, t3.*, t4.* 4972 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 4973 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 4974 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 4975 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 4976} { 4977 30 130 230 330 130 30 230 30 330 30 4978 60 160 260 360 160 60 260 60 360 60 4979 90 190 290 390 190 90 290 90 390 90 4980 - - - - - - - - 300 0 4981 - - - - - - - - 305 5 4982 - - - - - - - - 310 10 4983 - - - - - - - - 315 15 4984 - - - - - - - - 320 20 4985 - - - - - - - - 325 25 4986 - - - - - - - - 335 35 4987 - - - - - - - - 340 40 4988 - - - - - - - - 345 45 4989 - - - - - - - - 350 50 4990 - - - - - - - - 355 55 4991 - - - - - - - - 365 65 4992 - - - - - - - - 370 70 4993 - - - - - - - - 375 75 4994 - - - - - - - - 380 80 4995 - - - - - - - - 385 85 4996 - - - - - - - - 395 95 4997} 4998do_execsql_test joinD-205 { 4999 SELECT t1.*, t2.*, t3.*, t4.* 5000 FROM t1 INNER JOIN t2 ON t2.x>0 5001 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 5002 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 5003 WHERE t1.b IS NOT DISTINCT FROM t2.b 5004 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5005} { 5006 30 130 230 330 130 30 230 30 330 30 5007 60 160 260 360 160 60 260 60 360 60 5008 90 190 290 390 190 90 290 90 390 90 5009 - - - - - - - - 300 0 5010 - - - - - - - - 305 5 5011 - - - - - - - - 310 10 5012 - - - - - - - - 320 20 5013 - - - - - - - - 325 25 5014 - - - - - - - - 335 35 5015 - - - - - - - - 340 40 5016 - - - - - - - - 350 50 5017 - - - - - - - - 355 55 5018 - - - - - - - - 365 65 5019 - - - - - - - - 370 70 5020 - - - - - - - - 380 80 5021 - - - - - - - - 385 85 5022 - - - - - - - - 395 95 5023} 5024do_execsql_test joinD-206 { 5025 SELECT t1.*, t2.*, t3.*, t4.* 5026 FROM t1 INNER JOIN t2 ON t2.x>0 5027 RIGHT JOIN t3 ON t3.y>0 5028 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 5029 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 5030 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5031} { 5032 30 130 230 330 130 30 230 30 330 30 5033 60 160 260 360 160 60 260 60 360 60 5034 90 190 290 390 190 90 290 90 390 90 5035 - - - - - - - - 300 0 5036} 5037do_execsql_test joinD-207 { 5038 SELECT t1.*, t2.*, t3.*, t4.* 5039 FROM t1 INNER JOIN t2 ON t2.x>0 5040 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 5041 RIGHT JOIN t4 ON t4.z>0 5042 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 5043 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5044} { 5045 30 130 230 330 130 30 230 30 330 30 5046 60 160 260 360 160 60 260 60 360 60 5047 90 190 290 390 190 90 290 90 390 90 5048} 5049do_execsql_test joinD-208 { 5050 SELECT t1.*, t2.*, t3.*, t4.* 5051 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 5052 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5053 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 5054 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5055} { 5056 30 130 230 330 130 30 230 30 330 30 5057 60 160 260 360 160 60 260 60 360 60 5058 90 190 290 390 190 90 290 90 390 90 5059 - - - - - - - - 300 0 5060 - - - - - - - - 305 5 5061 - - - - - - - - 310 10 5062 - - - - - - - - 315 15 5063 - - - - - - - - 320 20 5064 - - - - - - - - 325 25 5065 - - - - - - - - 335 35 5066 - - - - - - - - 340 40 5067 - - - - - - - - 345 45 5068 - - - - - - - - 350 50 5069 - - - - - - - - 355 55 5070 - - - - - - - - 365 65 5071 - - - - - - - - 370 70 5072 - - - - - - - - 375 75 5073 - - - - - - - - 380 80 5074 - - - - - - - - 385 85 5075 - - - - - - - - 395 95 5076} 5077do_execsql_test joinD-209 { 5078 SELECT t1.*, t2.*, t3.*, t4.* 5079 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5080 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 5081 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 5082 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5083} { 5084 30 130 230 330 130 30 230 30 330 30 5085 60 160 260 360 160 60 260 60 360 60 5086 90 190 290 390 190 90 290 90 390 90 5087 - - - - - - - - 300 0 5088 - - - - - - - - 305 5 5089 - - - - - - - - 310 10 5090 - - - - - - - - 315 15 5091 - - - - - - - - 320 20 5092 - - - - - - - - 325 25 5093 - - - - - - - - 335 35 5094 - - - - - - - - 340 40 5095 - - - - - - - - 345 45 5096 - - - - - - - - 350 50 5097 - - - - - - - - 355 55 5098 - - - - - - - - 365 65 5099 - - - - - - - - 370 70 5100 - - - - - - - - 375 75 5101 - - - - - - - - 380 80 5102 - - - - - - - - 385 85 5103 - - - - - - - - 395 95 5104} 5105do_execsql_test joinD-210 { 5106 SELECT t1.*, t2.*, t3.*, t4.* 5107 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5108 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5109 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5110 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5111} { 5112 6 106 206 306 106 6 206 6 - - 5113 12 112 212 312 112 12 212 12 - - 5114 18 118 218 318 118 18 218 18 - - 5115 24 124 224 324 124 24 224 24 - - 5116 30 130 230 330 130 30 230 30 330 30 5117 36 136 236 336 136 36 236 36 - - 5118 42 142 242 342 142 42 242 42 - - 5119 48 148 248 348 148 48 248 48 - - 5120 54 154 254 354 154 54 254 54 - - 5121 60 160 260 360 160 60 260 60 360 60 5122 66 166 266 366 166 66 266 66 - - 5123 72 172 272 372 172 72 272 72 - - 5124 78 178 278 378 178 78 278 78 - - 5125 84 184 284 384 184 84 284 84 - - 5126 90 190 290 390 190 90 290 90 390 90 5127 - - - - - - 200 0 - - 5128 - - - - - - 203 3 - - 5129 - - - - - - 209 9 - - 5130 - - - - - - 215 15 - - 5131 - - - - - - 221 21 - - 5132 - - - - - - 227 27 - - 5133 - - - - - - 233 33 - - 5134 - - - - - - 239 39 - - 5135 - - - - - - 245 45 - - 5136 - - - - - - 251 51 - - 5137 - - - - - - 257 57 - - 5138 - - - - - - 263 63 - - 5139 - - - - - - 269 69 - - 5140 - - - - - - 275 75 - - 5141 - - - - - - 281 81 - - 5142 - - - - - - 287 87 - - 5143 - - - - - - 293 93 - - 5144 - - - - - - - - 300 0 5145 - - - - - - - - 305 5 5146 - - - - - - - - 310 10 5147 - - - - - - - - 315 15 5148 - - - - - - - - 320 20 5149 - - - - - - - - 325 25 5150 - - - - - - - - 335 35 5151 - - - - - - - - 340 40 5152 - - - - - - - - 345 45 5153 - - - - - - - - 350 50 5154 - - - - - - - - 355 55 5155 - - - - - - - - 365 65 5156 - - - - - - - - 370 70 5157 - - - - - - - - 375 75 5158 - - - - - - - - 380 80 5159 - - - - - - - - 385 85 5160 - - - - - - - - 395 95 5161} 5162do_execsql_test joinD-211 { 5163 SELECT t1.*, t2.*, t3.*, t4.* 5164 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 5165 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5166 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5167 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5168} { 5169 6 106 206 306 106 6 206 6 - - 5170 12 112 212 312 112 12 212 12 - - 5171 18 118 218 318 118 18 218 18 - - 5172 24 124 224 324 124 24 224 24 - - 5173 30 130 230 330 130 30 230 30 330 30 5174 36 136 236 336 136 36 236 36 - - 5175 42 142 242 342 142 42 242 42 - - 5176 48 148 248 348 148 48 248 48 - - 5177 54 154 254 354 154 54 254 54 - - 5178 60 160 260 360 160 60 260 60 360 60 5179 66 166 266 366 166 66 266 66 - - 5180 72 172 272 372 172 72 272 72 - - 5181 78 178 278 378 178 78 278 78 - - 5182 84 184 284 384 184 84 284 84 - - 5183 90 190 290 390 190 90 290 90 390 90 5184 - - - - - - 200 0 - - 5185 - - - - - - 203 3 - - 5186 - - - - - - 209 9 - - 5187 - - - - - - 215 15 - - 5188 - - - - - - 221 21 - - 5189 - - - - - - 227 27 - - 5190 - - - - - - 233 33 - - 5191 - - - - - - 239 39 - - 5192 - - - - - - 245 45 - - 5193 - - - - - - 251 51 - - 5194 - - - - - - 257 57 - - 5195 - - - - - - 263 63 - - 5196 - - - - - - 269 69 - - 5197 - - - - - - 275 75 - - 5198 - - - - - - 281 81 - - 5199 - - - - - - 287 87 - - 5200 - - - - - - 293 93 - - 5201 - - - - - - - - 300 0 5202 - - - - - - - - 305 5 5203 - - - - - - - - 310 10 5204 - - - - - - - - 315 15 5205 - - - - - - - - 320 20 5206 - - - - - - - - 325 25 5207 - - - - - - - - 335 35 5208 - - - - - - - - 340 40 5209 - - - - - - - - 345 45 5210 - - - - - - - - 350 50 5211 - - - - - - - - 355 55 5212 - - - - - - - - 365 65 5213 - - - - - - - - 370 70 5214 - - - - - - - - 375 75 5215 - - - - - - - - 380 80 5216 - - - - - - - - 385 85 5217 - - - - - - - - 395 95 5218} 5219do_execsql_test joinD-212 { 5220 SELECT t1.*, t2.*, t3.*, t4.* 5221 FROM t1 INNER JOIN t2 ON t1.b=t2.b 5222 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5223 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5224 WHERE t2.x>0 5225 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5226} { 5227 6 106 206 306 106 6 206 6 - - 5228 12 112 212 312 112 12 212 12 - - 5229 18 118 218 318 118 18 218 18 - - 5230 24 124 224 324 124 24 224 24 - - 5231 30 130 230 330 130 30 230 30 330 30 5232 36 136 236 336 136 36 236 36 - - 5233 42 142 242 342 142 42 242 42 - - 5234 48 148 248 348 148 48 248 48 - - 5235 54 154 254 354 154 54 254 54 - - 5236 60 160 260 360 160 60 260 60 360 60 5237 66 166 266 366 166 66 266 66 - - 5238 72 172 272 372 172 72 272 72 - - 5239 78 178 278 378 178 78 278 78 - - 5240 84 184 284 384 184 84 284 84 - - 5241 90 190 290 390 190 90 290 90 390 90 5242} 5243do_execsql_test joinD-213 { 5244 SELECT t1.*, t2.*, t3.*, t4.* 5245 FROM t1 INNER JOIN t2 ON t1.b=t2.b 5246 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5247 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5248 WHERE (t2.x>0 OR t2.x IS NULL) 5249 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5250} { 5251 6 106 206 306 106 6 206 6 - - 5252 12 112 212 312 112 12 212 12 - - 5253 18 118 218 318 118 18 218 18 - - 5254 24 124 224 324 124 24 224 24 - - 5255 30 130 230 330 130 30 230 30 330 30 5256 36 136 236 336 136 36 236 36 - - 5257 42 142 242 342 142 42 242 42 - - 5258 48 148 248 348 148 48 248 48 - - 5259 54 154 254 354 154 54 254 54 - - 5260 60 160 260 360 160 60 260 60 360 60 5261 66 166 266 366 166 66 266 66 - - 5262 72 172 272 372 172 72 272 72 - - 5263 78 178 278 378 178 78 278 78 - - 5264 84 184 284 384 184 84 284 84 - - 5265 90 190 290 390 190 90 290 90 390 90 5266 - - - - - - 200 0 - - 5267 - - - - - - 203 3 - - 5268 - - - - - - 209 9 - - 5269 - - - - - - 215 15 - - 5270 - - - - - - 221 21 - - 5271 - - - - - - 227 27 - - 5272 - - - - - - 233 33 - - 5273 - - - - - - 239 39 - - 5274 - - - - - - 245 45 - - 5275 - - - - - - 251 51 - - 5276 - - - - - - 257 57 - - 5277 - - - - - - 263 63 - - 5278 - - - - - - 269 69 - - 5279 - - - - - - 275 75 - - 5280 - - - - - - 281 81 - - 5281 - - - - - - 287 87 - - 5282 - - - - - - 293 93 - - 5283 - - - - - - - - 300 0 5284 - - - - - - - - 305 5 5285 - - - - - - - - 310 10 5286 - - - - - - - - 315 15 5287 - - - - - - - - 320 20 5288 - - - - - - - - 325 25 5289 - - - - - - - - 335 35 5290 - - - - - - - - 340 40 5291 - - - - - - - - 345 45 5292 - - - - - - - - 350 50 5293 - - - - - - - - 355 55 5294 - - - - - - - - 365 65 5295 - - - - - - - - 370 70 5296 - - - - - - - - 375 75 5297 - - - - - - - - 380 80 5298 - - - - - - - - 385 85 5299 - - - - - - - - 395 95 5300} 5301do_execsql_test joinD-214 { 5302 SELECT t1.*, t2.*, t3.*, t4.* 5303 FROM t1 INNER JOIN t2 ON true 5304 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5305 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5306 WHERE t1.b=t2.b AND t2.x>0 5307 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5308} { 5309 6 106 206 306 106 6 206 6 - - 5310 12 112 212 312 112 12 212 12 - - 5311 18 118 218 318 118 18 218 18 - - 5312 24 124 224 324 124 24 224 24 - - 5313 30 130 230 330 130 30 230 30 330 30 5314 36 136 236 336 136 36 236 36 - - 5315 42 142 242 342 142 42 242 42 - - 5316 48 148 248 348 148 48 248 48 - - 5317 54 154 254 354 154 54 254 54 - - 5318 60 160 260 360 160 60 260 60 360 60 5319 66 166 266 366 166 66 266 66 - - 5320 72 172 272 372 172 72 272 72 - - 5321 78 178 278 378 178 78 278 78 - - 5322 84 184 284 384 184 84 284 84 - - 5323 90 190 290 390 190 90 290 90 390 90 5324} 5325do_execsql_test joinD-215 { 5326 SELECT t1.*, t2.*, t3.*, t4.* 5327 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5328 RIGHT JOIN t3 ON t1.c=t3.c 5329 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5330 WHERE t3.y>0 5331 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5332} { 5333 6 106 206 306 106 6 206 6 - - 5334 12 112 212 312 112 12 212 12 - - 5335 18 118 218 318 118 18 218 18 - - 5336 24 124 224 324 124 24 224 24 - - 5337 30 130 230 330 130 30 230 30 330 30 5338 36 136 236 336 136 36 236 36 - - 5339 42 142 242 342 142 42 242 42 - - 5340 48 148 248 348 148 48 248 48 - - 5341 54 154 254 354 154 54 254 54 - - 5342 60 160 260 360 160 60 260 60 360 60 5343 66 166 266 366 166 66 266 66 - - 5344 72 172 272 372 172 72 272 72 - - 5345 78 178 278 378 178 78 278 78 - - 5346 84 184 284 384 184 84 284 84 - - 5347 90 190 290 390 190 90 290 90 390 90 5348 - - - - - - 203 3 - - 5349 - - - - - - 209 9 - - 5350 - - - - - - 215 15 - - 5351 - - - - - - 221 21 - - 5352 - - - - - - 227 27 - - 5353 - - - - - - 233 33 - - 5354 - - - - - - 239 39 - - 5355 - - - - - - 245 45 - - 5356 - - - - - - 251 51 - - 5357 - - - - - - 257 57 - - 5358 - - - - - - 263 63 - - 5359 - - - - - - 269 69 - - 5360 - - - - - - 275 75 - - 5361 - - - - - - 281 81 - - 5362 - - - - - - 287 87 - - 5363 - - - - - - 293 93 - - 5364} 5365do_execsql_test joinD-216 { 5366 SELECT t1.*, t2.*, t3.*, t4.* 5367 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5368 RIGHT JOIN t3 ON t1.c=t3.c 5369 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5370 WHERE t3.y>0 OR t3.y IS NULL 5371 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5372} { 5373 6 106 206 306 106 6 206 6 - - 5374 12 112 212 312 112 12 212 12 - - 5375 18 118 218 318 118 18 218 18 - - 5376 24 124 224 324 124 24 224 24 - - 5377 30 130 230 330 130 30 230 30 330 30 5378 36 136 236 336 136 36 236 36 - - 5379 42 142 242 342 142 42 242 42 - - 5380 48 148 248 348 148 48 248 48 - - 5381 54 154 254 354 154 54 254 54 - - 5382 60 160 260 360 160 60 260 60 360 60 5383 66 166 266 366 166 66 266 66 - - 5384 72 172 272 372 172 72 272 72 - - 5385 78 178 278 378 178 78 278 78 - - 5386 84 184 284 384 184 84 284 84 - - 5387 90 190 290 390 190 90 290 90 390 90 5388 - - - - - - 203 3 - - 5389 - - - - - - 209 9 - - 5390 - - - - - - 215 15 - - 5391 - - - - - - 221 21 - - 5392 - - - - - - 227 27 - - 5393 - - - - - - 233 33 - - 5394 - - - - - - 239 39 - - 5395 - - - - - - 245 45 - - 5396 - - - - - - 251 51 - - 5397 - - - - - - 257 57 - - 5398 - - - - - - 263 63 - - 5399 - - - - - - 269 69 - - 5400 - - - - - - 275 75 - - 5401 - - - - - - 281 81 - - 5402 - - - - - - 287 87 - - 5403 - - - - - - 293 93 - - 5404 - - - - - - - - 300 0 5405 - - - - - - - - 305 5 5406 - - - - - - - - 310 10 5407 - - - - - - - - 315 15 5408 - - - - - - - - 320 20 5409 - - - - - - - - 325 25 5410 - - - - - - - - 335 35 5411 - - - - - - - - 340 40 5412 - - - - - - - - 345 45 5413 - - - - - - - - 350 50 5414 - - - - - - - - 355 55 5415 - - - - - - - - 365 65 5416 - - - - - - - - 370 70 5417 - - - - - - - - 375 75 5418 - - - - - - - - 380 80 5419 - - - - - - - - 385 85 5420 - - - - - - - - 395 95 5421} 5422do_execsql_test joinD-217 { 5423 SELECT t1.*, t2.*, t3.*, t4.* 5424 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5425 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5426 FULL JOIN t4 ON t1.d=t4.d 5427 WHERE t4.z>0 5428 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5429} { 5430 30 130 230 330 130 30 230 30 330 30 5431 60 160 260 360 160 60 260 60 360 60 5432 90 190 290 390 190 90 290 90 390 90 5433 - - - - - - - - 305 5 5434 - - - - - - - - 310 10 5435 - - - - - - - - 315 15 5436 - - - - - - - - 320 20 5437 - - - - - - - - 325 25 5438 - - - - - - - - 335 35 5439 - - - - - - - - 340 40 5440 - - - - - - - - 345 45 5441 - - - - - - - - 350 50 5442 - - - - - - - - 355 55 5443 - - - - - - - - 365 65 5444 - - - - - - - - 370 70 5445 - - - - - - - - 375 75 5446 - - - - - - - - 380 80 5447 - - - - - - - - 385 85 5448 - - - - - - - - 395 95 5449} 5450do_execsql_test joinD-218 { 5451 SELECT t1.*, t2.*, t3.*, t4.* 5452 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5453 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5454 FULL JOIN t4 ON t1.d=t4.d 5455 WHERE t4.z IS NULL OR t4.z>0 5456 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5457} { 5458 6 106 206 306 106 6 206 6 - - 5459 12 112 212 312 112 12 212 12 - - 5460 18 118 218 318 118 18 218 18 - - 5461 24 124 224 324 124 24 224 24 - - 5462 30 130 230 330 130 30 230 30 330 30 5463 36 136 236 336 136 36 236 36 - - 5464 42 142 242 342 142 42 242 42 - - 5465 48 148 248 348 148 48 248 48 - - 5466 54 154 254 354 154 54 254 54 - - 5467 60 160 260 360 160 60 260 60 360 60 5468 66 166 266 366 166 66 266 66 - - 5469 72 172 272 372 172 72 272 72 - - 5470 78 178 278 378 178 78 278 78 - - 5471 84 184 284 384 184 84 284 84 - - 5472 90 190 290 390 190 90 290 90 390 90 5473 - - - - - - 200 0 - - 5474 - - - - - - 203 3 - - 5475 - - - - - - 209 9 - - 5476 - - - - - - 215 15 - - 5477 - - - - - - 221 21 - - 5478 - - - - - - 227 27 - - 5479 - - - - - - 233 33 - - 5480 - - - - - - 239 39 - - 5481 - - - - - - 245 45 - - 5482 - - - - - - 251 51 - - 5483 - - - - - - 257 57 - - 5484 - - - - - - 263 63 - - 5485 - - - - - - 269 69 - - 5486 - - - - - - 275 75 - - 5487 - - - - - - 281 81 - - 5488 - - - - - - 287 87 - - 5489 - - - - - - 293 93 - - 5490 - - - - - - - - 305 5 5491 - - - - - - - - 310 10 5492 - - - - - - - - 315 15 5493 - - - - - - - - 320 20 5494 - - - - - - - - 325 25 5495 - - - - - - - - 335 35 5496 - - - - - - - - 340 40 5497 - - - - - - - - 345 45 5498 - - - - - - - - 350 50 5499 - - - - - - - - 355 55 5500 - - - - - - - - 365 65 5501 - - - - - - - - 370 70 5502 - - - - - - - - 375 75 5503 - - - - - - - - 380 80 5504 - - - - - - - - 385 85 5505 - - - - - - - - 395 95 5506} 5507do_execsql_test joinD-219 { 5508 SELECT t1.*, t2.*, t3.*, t4.* 5509 FROM t1 INNER JOIN t2 ON t1.b=t2.b 5510 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5511 FULL JOIN t4 ON t1.d=t4.d 5512 WHERE t2.x>0 AND t4.z>0 5513 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5514} { 5515 30 130 230 330 130 30 230 30 330 30 5516 60 160 260 360 160 60 260 60 360 60 5517 90 190 290 390 190 90 290 90 390 90 5518} 5519do_execsql_test joinD-220 { 5520 SELECT t1.*, t2.*, t3.*, t4.* 5521 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5522 RIGHT JOIN t3 ON t1.c=t3.c 5523 FULL JOIN t4 ON t1.d=t4.d 5524 WHERE t4.z>0 AND t3.y>0 5525 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5526} { 5527 30 130 230 330 130 30 230 30 330 30 5528 60 160 260 360 160 60 260 60 360 60 5529 90 190 290 390 190 90 290 90 390 90 5530} 5531do_execsql_test joinD-221 { 5532 SELECT t1.*, t2.*, t3.*, t4.* 5533 FROM t1 INNER JOIN t2 ON t1.b=t2.b 5534 RIGHT JOIN t3 ON t1.c=t3.c 5535 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5536 WHERE t2.x>0 AND t3.y>0 5537 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5538} { 5539 6 106 206 306 106 6 206 6 - - 5540 12 112 212 312 112 12 212 12 - - 5541 18 118 218 318 118 18 218 18 - - 5542 24 124 224 324 124 24 224 24 - - 5543 30 130 230 330 130 30 230 30 330 30 5544 36 136 236 336 136 36 236 36 - - 5545 42 142 242 342 142 42 242 42 - - 5546 48 148 248 348 148 48 248 48 - - 5547 54 154 254 354 154 54 254 54 - - 5548 60 160 260 360 160 60 260 60 360 60 5549 66 166 266 366 166 66 266 66 - - 5550 72 172 272 372 172 72 272 72 - - 5551 78 178 278 378 178 78 278 78 - - 5552 84 184 284 384 184 84 284 84 - - 5553 90 190 290 390 190 90 290 90 390 90 5554} 5555do_execsql_test joinD-222 { 5556 SELECT t1.*, t2.*, t3.*, t4.* 5557 FROM t1 INNER JOIN t2 ON t1.b=t2.b 5558 RIGHT JOIN t3 ON t1.c=t3.c 5559 FULL JOIN t4 ON t1.d=t4.d 5560 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 5561 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5562} { 5563 30 130 230 330 130 30 230 30 330 30 5564 60 160 260 360 160 60 260 60 360 60 5565 90 190 290 390 190 90 290 90 390 90 5566} 5567do_execsql_test joinD-223 { 5568 SELECT t1.*, t2.*, t3.*, t4.* 5569 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 5570 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 5571 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 5572 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5573} { 5574 6 106 206 306 106 6 206 6 - - 5575 12 112 212 312 112 12 212 12 - - 5576 18 118 218 318 118 18 218 18 - - 5577 24 124 224 324 124 24 224 24 - - 5578 30 130 230 330 130 30 230 30 330 30 5579 36 136 236 336 136 36 236 36 - - 5580 42 142 242 342 142 42 242 42 - - 5581 48 148 248 348 148 48 248 48 - - 5582 54 154 254 354 154 54 254 54 - - 5583 60 160 260 360 160 60 260 60 360 60 5584 66 166 266 366 166 66 266 66 - - 5585 72 172 272 372 172 72 272 72 - - 5586 78 178 278 378 178 78 278 78 - - 5587 84 184 284 384 184 84 284 84 - - 5588 90 190 290 390 190 90 290 90 390 90 5589 - - - - - - 200 0 - - 5590 - - - - - - 203 3 - - 5591 - - - - - - 209 9 - - 5592 - - - - - - 215 15 - - 5593 - - - - - - 221 21 - - 5594 - - - - - - 227 27 - - 5595 - - - - - - 233 33 - - 5596 - - - - - - 239 39 - - 5597 - - - - - - 245 45 - - 5598 - - - - - - 251 51 - - 5599 - - - - - - 257 57 - - 5600 - - - - - - 263 63 - - 5601 - - - - - - 269 69 - - 5602 - - - - - - 275 75 - - 5603 - - - - - - 281 81 - - 5604 - - - - - - 287 87 - - 5605 - - - - - - 293 93 - - 5606 - - - - - - - - 300 0 5607 - - - - - - - - 305 5 5608 - - - - - - - - 310 10 5609 - - - - - - - - 315 15 5610 - - - - - - - - 320 20 5611 - - - - - - - - 325 25 5612 - - - - - - - - 335 35 5613 - - - - - - - - 340 40 5614 - - - - - - - - 345 45 5615 - - - - - - - - 350 50 5616 - - - - - - - - 355 55 5617 - - - - - - - - 365 65 5618 - - - - - - - - 370 70 5619 - - - - - - - - 375 75 5620 - - - - - - - - 380 80 5621 - - - - - - - - 385 85 5622 - - - - - - - - 395 95 5623} 5624do_execsql_test joinD-224 { 5625 SELECT t1.*, t2.*, t3.*, t4.* 5626 FROM t1 INNER JOIN t2 ON t2.x>0 5627 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 5628 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 5629 WHERE t1.b IS NOT DISTINCT FROM t2.b 5630 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5631} { 5632 6 106 206 306 106 6 206 6 - - 5633 12 112 212 312 112 12 212 12 - - 5634 18 118 218 318 118 18 218 18 - - 5635 24 124 224 324 124 24 224 24 - - 5636 30 130 230 330 130 30 230 30 330 30 5637 36 136 236 336 136 36 236 36 - - 5638 42 142 242 342 142 42 242 42 - - 5639 48 148 248 348 148 48 248 48 - - 5640 54 154 254 354 154 54 254 54 - - 5641 60 160 260 360 160 60 260 60 360 60 5642 66 166 266 366 166 66 266 66 - - 5643 72 172 272 372 172 72 272 72 - - 5644 78 178 278 378 178 78 278 78 - - 5645 84 184 284 384 184 84 284 84 - - 5646 90 190 290 390 190 90 290 90 390 90 5647 - - - - - - 200 0 - - 5648 - - - - - - - - 300 0 5649 - - - - - - - - 305 5 5650 - - - - - - - - 310 10 5651 - - - - - - - - 320 20 5652 - - - - - - - - 325 25 5653 - - - - - - - - 335 35 5654 - - - - - - - - 340 40 5655 - - - - - - - - 350 50 5656 - - - - - - - - 355 55 5657 - - - - - - - - 365 65 5658 - - - - - - - - 370 70 5659 - - - - - - - - 380 80 5660 - - - - - - - - 385 85 5661 - - - - - - - - 395 95 5662} 5663do_execsql_test joinD-225 { 5664 SELECT t1.*, t2.*, t3.*, t4.* 5665 FROM t1 INNER JOIN t2 ON t2.x>0 5666 RIGHT JOIN t3 ON t3.y>0 5667 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 5668 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 5669 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5670} { 5671 6 106 206 306 106 6 206 6 - - 5672 12 112 212 312 112 12 212 12 - - 5673 18 118 218 318 118 18 218 18 - - 5674 24 124 224 324 124 24 224 24 - - 5675 30 130 230 330 130 30 230 30 330 30 5676 36 136 236 336 136 36 236 36 - - 5677 42 142 242 342 142 42 242 42 - - 5678 48 148 248 348 148 48 248 48 - - 5679 54 154 254 354 154 54 254 54 - - 5680 60 160 260 360 160 60 260 60 360 60 5681 66 166 266 366 166 66 266 66 - - 5682 72 172 272 372 172 72 272 72 - - 5683 78 178 278 378 178 78 278 78 - - 5684 84 184 284 384 184 84 284 84 - - 5685 90 190 290 390 190 90 290 90 390 90 5686 - - - - - - - - 300 0 5687} 5688do_execsql_test joinD-226 { 5689 SELECT t1.*, t2.*, t3.*, t4.* 5690 FROM t1 INNER JOIN t2 ON t2.x>0 5691 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 5692 FULL JOIN t4 ON t4.z>0 5693 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 5694 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5695} { 5696 30 130 230 330 130 30 230 30 330 30 5697 60 160 260 360 160 60 260 60 360 60 5698 90 190 290 390 190 90 290 90 390 90 5699} 5700do_execsql_test joinD-227 { 5701 SELECT t1.*, t2.*, t3.*, t4.* 5702 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 5703 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 5704 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5705 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5706} { 5707 6 106 206 306 106 6 206 6 - - 5708 12 112 212 312 112 12 212 12 - - 5709 18 118 218 318 118 18 218 18 - - 5710 24 124 224 324 124 24 224 24 - - 5711 30 130 230 330 130 30 230 30 330 30 5712 36 136 236 336 136 36 236 36 - - 5713 42 142 242 342 142 42 242 42 - - 5714 48 148 248 348 148 48 248 48 - - 5715 54 154 254 354 154 54 254 54 - - 5716 60 160 260 360 160 60 260 60 360 60 5717 66 166 266 366 166 66 266 66 - - 5718 72 172 272 372 172 72 272 72 - - 5719 78 178 278 378 178 78 278 78 - - 5720 84 184 284 384 184 84 284 84 - - 5721 90 190 290 390 190 90 290 90 390 90 5722 - - - - - - 200 0 - - 5723 - - - - - - 203 3 - - 5724 - - - - - - 209 9 - - 5725 - - - - - - 215 15 - - 5726 - - - - - - 221 21 - - 5727 - - - - - - 227 27 - - 5728 - - - - - - 233 33 - - 5729 - - - - - - 239 39 - - 5730 - - - - - - 245 45 - - 5731 - - - - - - 251 51 - - 5732 - - - - - - 257 57 - - 5733 - - - - - - 263 63 - - 5734 - - - - - - 269 69 - - 5735 - - - - - - 275 75 - - 5736 - - - - - - 281 81 - - 5737 - - - - - - 287 87 - - 5738 - - - - - - 293 93 - - 5739 - - - - - - - - 300 0 5740 - - - - - - - - 305 5 5741 - - - - - - - - 310 10 5742 - - - - - - - - 315 15 5743 - - - - - - - - 320 20 5744 - - - - - - - - 325 25 5745 - - - - - - - - 335 35 5746 - - - - - - - - 340 40 5747 - - - - - - - - 345 45 5748 - - - - - - - - 350 50 5749 - - - - - - - - 355 55 5750 - - - - - - - - 365 65 5751 - - - - - - - - 370 70 5752 - - - - - - - - 375 75 5753 - - - - - - - - 380 80 5754 - - - - - - - - 385 85 5755 - - - - - - - - 395 95 5756} 5757do_execsql_test joinD-228 { 5758 SELECT t1.*, t2.*, t3.*, t4.* 5759 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5760 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 5761 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 5762 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5763} { 5764 6 106 206 306 106 6 206 6 - - 5765 12 112 212 312 112 12 212 12 - - 5766 18 118 218 318 118 18 218 18 - - 5767 24 124 224 324 124 24 224 24 - - 5768 30 130 230 330 130 30 230 30 330 30 5769 36 136 236 336 136 36 236 36 - - 5770 42 142 242 342 142 42 242 42 - - 5771 48 148 248 348 148 48 248 48 - - 5772 54 154 254 354 154 54 254 54 - - 5773 60 160 260 360 160 60 260 60 360 60 5774 66 166 266 366 166 66 266 66 - - 5775 72 172 272 372 172 72 272 72 - - 5776 78 178 278 378 178 78 278 78 - - 5777 84 184 284 384 184 84 284 84 - - 5778 90 190 290 390 190 90 290 90 390 90 5779 - - - - - - 200 0 - - 5780 - - - - - - 203 3 - - 5781 - - - - - - 209 9 - - 5782 - - - - - - 215 15 - - 5783 - - - - - - 221 21 - - 5784 - - - - - - 227 27 - - 5785 - - - - - - 233 33 - - 5786 - - - - - - 239 39 - - 5787 - - - - - - 245 45 - - 5788 - - - - - - 251 51 - - 5789 - - - - - - 257 57 - - 5790 - - - - - - 263 63 - - 5791 - - - - - - 269 69 - - 5792 - - - - - - 275 75 - - 5793 - - - - - - 281 81 - - 5794 - - - - - - 287 87 - - 5795 - - - - - - 293 93 - - 5796 - - - - - - - - 300 0 5797 - - - - - - - - 305 5 5798 - - - - - - - - 310 10 5799 - - - - - - - - 315 15 5800 - - - - - - - - 320 20 5801 - - - - - - - - 325 25 5802 - - - - - - - - 335 35 5803 - - - - - - - - 340 40 5804 - - - - - - - - 345 45 5805 - - - - - - - - 350 50 5806 - - - - - - - - 355 55 5807 - - - - - - - - 365 65 5808 - - - - - - - - 370 70 5809 - - - - - - - - 375 75 5810 - - - - - - - - 380 80 5811 - - - - - - - - 385 85 5812 - - - - - - - - 395 95 5813} 5814do_execsql_test joinD-229 { 5815 SELECT t1.*, t2.*, t3.*, t4.* 5816 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5817 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 5818 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 5819 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5820} { 5821 10 110 210 310 110 10 - - 310 10 5822 20 120 220 320 120 20 - - 320 20 5823 30 130 230 330 130 30 230 30 330 30 5824 40 140 240 340 140 40 - - 340 40 5825 50 150 250 350 150 50 - - 350 50 5826 60 160 260 360 160 60 260 60 360 60 5827 70 170 270 370 170 70 - - 370 70 5828 80 180 280 380 180 80 - - 380 80 5829 90 190 290 390 190 90 290 90 390 90 5830} 5831do_execsql_test joinD-230 { 5832 SELECT t1.*, t2.*, t3.*, t4.* 5833 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 5834 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 5835 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 5836 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5837} { 5838 10 110 210 310 110 10 - - 310 10 5839 20 120 220 320 120 20 - - 320 20 5840 30 130 230 330 130 30 230 30 330 30 5841 40 140 240 340 140 40 - - 340 40 5842 50 150 250 350 150 50 - - 350 50 5843 60 160 260 360 160 60 260 60 360 60 5844 70 170 270 370 170 70 - - 370 70 5845 80 180 280 380 180 80 - - 380 80 5846 90 190 290 390 190 90 290 90 390 90 5847} 5848do_execsql_test joinD-231 { 5849 SELECT t1.*, t2.*, t3.*, t4.* 5850 FROM t1 INNER JOIN t2 ON t1.b=t2.b 5851 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 5852 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 5853 WHERE t2.x>0 5854 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5855} { 5856 10 110 210 310 110 10 - - 310 10 5857 20 120 220 320 120 20 - - 320 20 5858 30 130 230 330 130 30 230 30 330 30 5859 40 140 240 340 140 40 - - 340 40 5860 50 150 250 350 150 50 - - 350 50 5861 60 160 260 360 160 60 260 60 360 60 5862 70 170 270 370 170 70 - - 370 70 5863 80 180 280 380 180 80 - - 380 80 5864 90 190 290 390 190 90 290 90 390 90 5865} 5866do_execsql_test joinD-232 { 5867 SELECT t1.*, t2.*, t3.*, t4.* 5868 FROM t1 INNER JOIN t2 ON t1.b=t2.b 5869 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 5870 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 5871 WHERE (t2.x>0 OR t2.x IS NULL) 5872 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5873} { 5874 10 110 210 310 110 10 - - 310 10 5875 20 120 220 320 120 20 - - 320 20 5876 30 130 230 330 130 30 230 30 330 30 5877 40 140 240 340 140 40 - - 340 40 5878 50 150 250 350 150 50 - - 350 50 5879 60 160 260 360 160 60 260 60 360 60 5880 70 170 270 370 170 70 - - 370 70 5881 80 180 280 380 180 80 - - 380 80 5882 90 190 290 390 190 90 290 90 390 90 5883} 5884do_execsql_test joinD-233 { 5885 SELECT t1.*, t2.*, t3.*, t4.* 5886 FROM t1 INNER JOIN t2 ON true 5887 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 5888 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 5889 WHERE t1.b=t2.b AND t2.x>0 5890 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5891} { 5892 10 110 210 310 110 10 - - 310 10 5893 20 120 220 320 120 20 - - 320 20 5894 30 130 230 330 130 30 230 30 330 30 5895 40 140 240 340 140 40 - - 340 40 5896 50 150 250 350 150 50 - - 350 50 5897 60 160 260 360 160 60 260 60 360 60 5898 70 170 270 370 170 70 - - 370 70 5899 80 180 280 380 180 80 - - 380 80 5900 90 190 290 390 190 90 290 90 390 90 5901} 5902do_execsql_test joinD-234 { 5903 SELECT t1.*, t2.*, t3.*, t4.* 5904 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5905 FULL JOIN t3 ON t1.c=t3.c 5906 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 5907 WHERE t3.y>0 5908 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5909} { 5910 30 130 230 330 130 30 230 30 330 30 5911 60 160 260 360 160 60 260 60 360 60 5912 90 190 290 390 190 90 290 90 390 90 5913} 5914do_execsql_test joinD-235 { 5915 SELECT t1.*, t2.*, t3.*, t4.* 5916 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5917 FULL JOIN t3 ON t1.c=t3.c 5918 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 5919 WHERE t3.y>0 OR t3.y IS NULL 5920 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5921} { 5922 10 110 210 310 110 10 - - 310 10 5923 20 120 220 320 120 20 - - 320 20 5924 30 130 230 330 130 30 230 30 330 30 5925 40 140 240 340 140 40 - - 340 40 5926 50 150 250 350 150 50 - - 350 50 5927 60 160 260 360 160 60 260 60 360 60 5928 70 170 270 370 170 70 - - 370 70 5929 80 180 280 380 180 80 - - 380 80 5930 90 190 290 390 190 90 290 90 390 90 5931} 5932do_execsql_test joinD-236 { 5933 SELECT t1.*, t2.*, t3.*, t4.* 5934 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5935 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 5936 INNER JOIN t4 ON t1.d=t4.d 5937 WHERE t4.z>0 5938 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5939} { 5940 10 110 210 310 110 10 - - 310 10 5941 20 120 220 320 120 20 - - 320 20 5942 30 130 230 330 130 30 230 30 330 30 5943 40 140 240 340 140 40 - - 340 40 5944 50 150 250 350 150 50 - - 350 50 5945 60 160 260 360 160 60 260 60 360 60 5946 70 170 270 370 170 70 - - 370 70 5947 80 180 280 380 180 80 - - 380 80 5948 90 190 290 390 190 90 290 90 390 90 5949} 5950do_execsql_test joinD-237 { 5951 SELECT t1.*, t2.*, t3.*, t4.* 5952 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5953 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 5954 INNER JOIN t4 ON t1.d=t4.d 5955 WHERE t4.z IS NULL OR t4.z>0 5956 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5957} { 5958 10 110 210 310 110 10 - - 310 10 5959 20 120 220 320 120 20 - - 320 20 5960 30 130 230 330 130 30 230 30 330 30 5961 40 140 240 340 140 40 - - 340 40 5962 50 150 250 350 150 50 - - 350 50 5963 60 160 260 360 160 60 260 60 360 60 5964 70 170 270 370 170 70 - - 370 70 5965 80 180 280 380 180 80 - - 380 80 5966 90 190 290 390 190 90 290 90 390 90 5967} 5968do_execsql_test joinD-238 { 5969 SELECT t1.*, t2.*, t3.*, t4.* 5970 FROM t1 INNER JOIN t2 ON t1.b=t2.b 5971 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 5972 INNER JOIN t4 ON t1.d=t4.d 5973 WHERE t2.x>0 AND t4.z>0 5974 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5975} { 5976 10 110 210 310 110 10 - - 310 10 5977 20 120 220 320 120 20 - - 320 20 5978 30 130 230 330 130 30 230 30 330 30 5979 40 140 240 340 140 40 - - 340 40 5980 50 150 250 350 150 50 - - 350 50 5981 60 160 260 360 160 60 260 60 360 60 5982 70 170 270 370 170 70 - - 370 70 5983 80 180 280 380 180 80 - - 380 80 5984 90 190 290 390 190 90 290 90 390 90 5985} 5986do_execsql_test joinD-239 { 5987 SELECT t1.*, t2.*, t3.*, t4.* 5988 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 5989 FULL JOIN t3 ON t1.c=t3.c 5990 INNER JOIN t4 ON t1.d=t4.d 5991 WHERE t4.z>0 AND t3.y>0 5992 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 5993} { 5994 30 130 230 330 130 30 230 30 330 30 5995 60 160 260 360 160 60 260 60 360 60 5996 90 190 290 390 190 90 290 90 390 90 5997} 5998do_execsql_test joinD-240 { 5999 SELECT t1.*, t2.*, t3.*, t4.* 6000 FROM t1 INNER JOIN t2 ON t1.b=t2.b 6001 FULL JOIN t3 ON t1.c=t3.c 6002 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 6003 WHERE t2.x>0 AND t3.y>0 6004 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6005} { 6006 30 130 230 330 130 30 230 30 330 30 6007 60 160 260 360 160 60 260 60 360 60 6008 90 190 290 390 190 90 290 90 390 90 6009} 6010do_execsql_test joinD-241 { 6011 SELECT t1.*, t2.*, t3.*, t4.* 6012 FROM t1 INNER JOIN t2 ON t1.b=t2.b 6013 FULL JOIN t3 ON t1.c=t3.c 6014 INNER JOIN t4 ON t1.d=t4.d 6015 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 6016 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6017} { 6018 30 130 230 330 130 30 230 30 330 30 6019 60 160 260 360 160 60 260 60 360 60 6020 90 190 290 390 190 90 290 90 390 90 6021} 6022do_execsql_test joinD-242 { 6023 SELECT t1.*, t2.*, t3.*, t4.* 6024 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 6025 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 6026 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 6027 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6028} { 6029 10 110 210 310 110 10 - - 310 10 6030 20 120 220 320 120 20 - - 320 20 6031 30 130 230 330 130 30 230 30 330 30 6032 40 140 240 340 140 40 - - 340 40 6033 50 150 250 350 150 50 - - 350 50 6034 60 160 260 360 160 60 260 60 360 60 6035 70 170 270 370 170 70 - - 370 70 6036 80 180 280 380 180 80 - - 380 80 6037 90 190 290 390 190 90 290 90 390 90 6038} 6039do_execsql_test joinD-243 { 6040 SELECT t1.*, t2.*, t3.*, t4.* 6041 FROM t1 INNER JOIN t2 ON t2.x>0 6042 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 6043 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 6044 WHERE t1.b IS NOT DISTINCT FROM t2.b 6045 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6046} { 6047 10 110 210 310 110 10 - - 310 10 6048 20 120 220 320 120 20 - - 320 20 6049 30 130 230 330 130 30 230 30 330 30 6050 40 140 240 340 140 40 - - 340 40 6051 50 150 250 350 150 50 - - 350 50 6052 60 160 260 360 160 60 260 60 360 60 6053 70 170 270 370 170 70 - - 370 70 6054 80 180 280 380 180 80 - - 380 80 6055 90 190 290 390 190 90 290 90 390 90 6056} 6057do_execsql_test joinD-244 { 6058 SELECT t1.*, t2.*, t3.*, t4.* 6059 FROM t1 INNER JOIN t2 ON t2.x>0 6060 FULL JOIN t3 ON t3.y>0 6061 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 6062 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 6063 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6064} { 6065 30 130 230 330 130 30 230 30 330 30 6066 60 160 260 360 160 60 260 60 360 60 6067 90 190 290 390 190 90 290 90 390 90 6068} 6069do_execsql_test joinD-245 { 6070 SELECT t1.*, t2.*, t3.*, t4.* 6071 FROM t1 INNER JOIN t2 ON t2.x>0 6072 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 6073 INNER JOIN t4 ON t4.z>0 6074 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 6075 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6076} { 6077 10 110 210 310 110 10 - - 310 10 6078 20 120 220 320 120 20 - - 320 20 6079 30 130 230 330 130 30 230 30 330 30 6080 40 140 240 340 140 40 - - 340 40 6081 50 150 250 350 150 50 - - 350 50 6082 60 160 260 360 160 60 260 60 360 60 6083 70 170 270 370 170 70 - - 370 70 6084 80 180 280 380 180 80 - - 380 80 6085 90 190 290 390 190 90 290 90 390 90 6086} 6087do_execsql_test joinD-246 { 6088 SELECT t1.*, t2.*, t3.*, t4.* 6089 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 6090 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6091 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 6092 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6093} { 6094 10 110 210 310 110 10 - - 310 10 6095 20 120 220 320 120 20 - - 320 20 6096 30 130 230 330 130 30 230 30 330 30 6097 40 140 240 340 140 40 - - 340 40 6098 50 150 250 350 150 50 - - 350 50 6099 60 160 260 360 160 60 260 60 360 60 6100 70 170 270 370 170 70 - - 370 70 6101 80 180 280 380 180 80 - - 380 80 6102 90 190 290 390 190 90 290 90 390 90 6103} 6104do_execsql_test joinD-247 { 6105 SELECT t1.*, t2.*, t3.*, t4.* 6106 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 6107 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6108 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 6109 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6110} { 6111 2 102 202 302 102 2 - - - - 6112 4 104 204 304 104 4 - - - - 6113 6 106 206 306 106 6 206 6 - - 6114 8 108 208 308 108 8 - - - - 6115 10 110 210 310 110 10 - - 310 10 6116 12 112 212 312 112 12 212 12 - - 6117 14 114 214 314 114 14 - - - - 6118 16 116 216 316 116 16 - - - - 6119 18 118 218 318 118 18 218 18 - - 6120 20 120 220 320 120 20 - - 320 20 6121 22 122 222 322 122 22 - - - - 6122 24 124 224 324 124 24 224 24 - - 6123 26 126 226 326 126 26 - - - - 6124 28 128 228 328 128 28 - - - - 6125 30 130 230 330 130 30 230 30 330 30 6126 32 132 232 332 132 32 - - - - 6127 34 134 234 334 134 34 - - - - 6128 36 136 236 336 136 36 236 36 - - 6129 38 138 238 338 138 38 - - - - 6130 40 140 240 340 140 40 - - 340 40 6131 42 142 242 342 142 42 242 42 - - 6132 44 144 244 344 144 44 - - - - 6133 46 146 246 346 146 46 - - - - 6134 48 148 248 348 148 48 248 48 - - 6135 50 150 250 350 150 50 - - 350 50 6136 52 152 252 352 152 52 - - - - 6137 54 154 254 354 154 54 254 54 - - 6138 56 156 256 356 156 56 - - - - 6139 58 158 258 358 158 58 - - - - 6140 60 160 260 360 160 60 260 60 360 60 6141 62 162 262 362 162 62 - - - - 6142 64 164 264 364 164 64 - - - - 6143 66 166 266 366 166 66 266 66 - - 6144 68 168 268 368 168 68 - - - - 6145 70 170 270 370 170 70 - - 370 70 6146 72 172 272 372 172 72 272 72 - - 6147 74 174 274 374 174 74 - - - - 6148 76 176 276 376 176 76 - - - - 6149 78 178 278 378 178 78 278 78 - - 6150 80 180 280 380 180 80 - - 380 80 6151 82 182 282 382 182 82 - - - - 6152 84 184 284 384 184 84 284 84 - - 6153 86 186 286 386 186 86 - - - - 6154 88 188 288 388 188 88 - - - - 6155 90 190 290 390 190 90 290 90 390 90 6156 92 192 292 392 192 92 - - - - 6157 94 194 294 394 194 94 - - - - 6158 - - - - - - 200 0 - - 6159 - - - - - - 203 3 - - 6160 - - - - - - 209 9 - - 6161 - - - - - - 215 15 - - 6162 - - - - - - 221 21 - - 6163 - - - - - - 227 27 - - 6164 - - - - - - 233 33 - - 6165 - - - - - - 239 39 - - 6166 - - - - - - 245 45 - - 6167 - - - - - - 251 51 - - 6168 - - - - - - 257 57 - - 6169 - - - - - - 263 63 - - 6170 - - - - - - 269 69 - - 6171 - - - - - - 275 75 - - 6172 - - - - - - 281 81 - - 6173 - - - - - - 287 87 - - 6174 - - - - - - 293 93 - - 6175} 6176do_execsql_test joinD-248 { 6177 SELECT t1.*, t2.*, t3.*, t4.* 6178 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 6179 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6180 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 6181 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6182} { 6183 2 102 202 302 102 2 - - - - 6184 4 104 204 304 104 4 - - - - 6185 6 106 206 306 106 6 206 6 - - 6186 8 108 208 308 108 8 - - - - 6187 10 110 210 310 110 10 - - 310 10 6188 12 112 212 312 112 12 212 12 - - 6189 14 114 214 314 114 14 - - - - 6190 16 116 216 316 116 16 - - - - 6191 18 118 218 318 118 18 218 18 - - 6192 20 120 220 320 120 20 - - 320 20 6193 22 122 222 322 122 22 - - - - 6194 24 124 224 324 124 24 224 24 - - 6195 26 126 226 326 126 26 - - - - 6196 28 128 228 328 128 28 - - - - 6197 30 130 230 330 130 30 230 30 330 30 6198 32 132 232 332 132 32 - - - - 6199 34 134 234 334 134 34 - - - - 6200 36 136 236 336 136 36 236 36 - - 6201 38 138 238 338 138 38 - - - - 6202 40 140 240 340 140 40 - - 340 40 6203 42 142 242 342 142 42 242 42 - - 6204 44 144 244 344 144 44 - - - - 6205 46 146 246 346 146 46 - - - - 6206 48 148 248 348 148 48 248 48 - - 6207 50 150 250 350 150 50 - - 350 50 6208 52 152 252 352 152 52 - - - - 6209 54 154 254 354 154 54 254 54 - - 6210 56 156 256 356 156 56 - - - - 6211 58 158 258 358 158 58 - - - - 6212 60 160 260 360 160 60 260 60 360 60 6213 62 162 262 362 162 62 - - - - 6214 64 164 264 364 164 64 - - - - 6215 66 166 266 366 166 66 266 66 - - 6216 68 168 268 368 168 68 - - - - 6217 70 170 270 370 170 70 - - 370 70 6218 72 172 272 372 172 72 272 72 - - 6219 74 174 274 374 174 74 - - - - 6220 76 176 276 376 176 76 - - - - 6221 78 178 278 378 178 78 278 78 - - 6222 80 180 280 380 180 80 - - 380 80 6223 82 182 282 382 182 82 - - - - 6224 84 184 284 384 184 84 284 84 - - 6225 86 186 286 386 186 86 - - - - 6226 88 188 288 388 188 88 - - - - 6227 90 190 290 390 190 90 290 90 390 90 6228 92 192 292 392 192 92 - - - - 6229 94 194 294 394 194 94 - - - - 6230 - - - - - - 200 0 - - 6231 - - - - - - 203 3 - - 6232 - - - - - - 209 9 - - 6233 - - - - - - 215 15 - - 6234 - - - - - - 221 21 - - 6235 - - - - - - 227 27 - - 6236 - - - - - - 233 33 - - 6237 - - - - - - 239 39 - - 6238 - - - - - - 245 45 - - 6239 - - - - - - 251 51 - - 6240 - - - - - - 257 57 - - 6241 - - - - - - 263 63 - - 6242 - - - - - - 269 69 - - 6243 - - - - - - 275 75 - - 6244 - - - - - - 281 81 - - 6245 - - - - - - 287 87 - - 6246 - - - - - - 293 93 - - 6247} 6248do_execsql_test joinD-249 { 6249 SELECT t1.*, t2.*, t3.*, t4.* 6250 FROM t1 INNER JOIN t2 ON t1.b=t2.b 6251 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6252 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 6253 WHERE t2.x>0 6254 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6255} { 6256 2 102 202 302 102 2 - - - - 6257 4 104 204 304 104 4 - - - - 6258 6 106 206 306 106 6 206 6 - - 6259 8 108 208 308 108 8 - - - - 6260 10 110 210 310 110 10 - - 310 10 6261 12 112 212 312 112 12 212 12 - - 6262 14 114 214 314 114 14 - - - - 6263 16 116 216 316 116 16 - - - - 6264 18 118 218 318 118 18 218 18 - - 6265 20 120 220 320 120 20 - - 320 20 6266 22 122 222 322 122 22 - - - - 6267 24 124 224 324 124 24 224 24 - - 6268 26 126 226 326 126 26 - - - - 6269 28 128 228 328 128 28 - - - - 6270 30 130 230 330 130 30 230 30 330 30 6271 32 132 232 332 132 32 - - - - 6272 34 134 234 334 134 34 - - - - 6273 36 136 236 336 136 36 236 36 - - 6274 38 138 238 338 138 38 - - - - 6275 40 140 240 340 140 40 - - 340 40 6276 42 142 242 342 142 42 242 42 - - 6277 44 144 244 344 144 44 - - - - 6278 46 146 246 346 146 46 - - - - 6279 48 148 248 348 148 48 248 48 - - 6280 50 150 250 350 150 50 - - 350 50 6281 52 152 252 352 152 52 - - - - 6282 54 154 254 354 154 54 254 54 - - 6283 56 156 256 356 156 56 - - - - 6284 58 158 258 358 158 58 - - - - 6285 60 160 260 360 160 60 260 60 360 60 6286 62 162 262 362 162 62 - - - - 6287 64 164 264 364 164 64 - - - - 6288 66 166 266 366 166 66 266 66 - - 6289 68 168 268 368 168 68 - - - - 6290 70 170 270 370 170 70 - - 370 70 6291 72 172 272 372 172 72 272 72 - - 6292 74 174 274 374 174 74 - - - - 6293 76 176 276 376 176 76 - - - - 6294 78 178 278 378 178 78 278 78 - - 6295 80 180 280 380 180 80 - - 380 80 6296 82 182 282 382 182 82 - - - - 6297 84 184 284 384 184 84 284 84 - - 6298 86 186 286 386 186 86 - - - - 6299 88 188 288 388 188 88 - - - - 6300 90 190 290 390 190 90 290 90 390 90 6301 92 192 292 392 192 92 - - - - 6302 94 194 294 394 194 94 - - - - 6303} 6304do_execsql_test joinD-250 { 6305 SELECT t1.*, t2.*, t3.*, t4.* 6306 FROM t1 INNER JOIN t2 ON t1.b=t2.b 6307 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6308 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 6309 WHERE (t2.x>0 OR t2.x IS NULL) 6310 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6311} { 6312 2 102 202 302 102 2 - - - - 6313 4 104 204 304 104 4 - - - - 6314 6 106 206 306 106 6 206 6 - - 6315 8 108 208 308 108 8 - - - - 6316 10 110 210 310 110 10 - - 310 10 6317 12 112 212 312 112 12 212 12 - - 6318 14 114 214 314 114 14 - - - - 6319 16 116 216 316 116 16 - - - - 6320 18 118 218 318 118 18 218 18 - - 6321 20 120 220 320 120 20 - - 320 20 6322 22 122 222 322 122 22 - - - - 6323 24 124 224 324 124 24 224 24 - - 6324 26 126 226 326 126 26 - - - - 6325 28 128 228 328 128 28 - - - - 6326 30 130 230 330 130 30 230 30 330 30 6327 32 132 232 332 132 32 - - - - 6328 34 134 234 334 134 34 - - - - 6329 36 136 236 336 136 36 236 36 - - 6330 38 138 238 338 138 38 - - - - 6331 40 140 240 340 140 40 - - 340 40 6332 42 142 242 342 142 42 242 42 - - 6333 44 144 244 344 144 44 - - - - 6334 46 146 246 346 146 46 - - - - 6335 48 148 248 348 148 48 248 48 - - 6336 50 150 250 350 150 50 - - 350 50 6337 52 152 252 352 152 52 - - - - 6338 54 154 254 354 154 54 254 54 - - 6339 56 156 256 356 156 56 - - - - 6340 58 158 258 358 158 58 - - - - 6341 60 160 260 360 160 60 260 60 360 60 6342 62 162 262 362 162 62 - - - - 6343 64 164 264 364 164 64 - - - - 6344 66 166 266 366 166 66 266 66 - - 6345 68 168 268 368 168 68 - - - - 6346 70 170 270 370 170 70 - - 370 70 6347 72 172 272 372 172 72 272 72 - - 6348 74 174 274 374 174 74 - - - - 6349 76 176 276 376 176 76 - - - - 6350 78 178 278 378 178 78 278 78 - - 6351 80 180 280 380 180 80 - - 380 80 6352 82 182 282 382 182 82 - - - - 6353 84 184 284 384 184 84 284 84 - - 6354 86 186 286 386 186 86 - - - - 6355 88 188 288 388 188 88 - - - - 6356 90 190 290 390 190 90 290 90 390 90 6357 92 192 292 392 192 92 - - - - 6358 94 194 294 394 194 94 - - - - 6359 - - - - - - 200 0 - - 6360 - - - - - - 203 3 - - 6361 - - - - - - 209 9 - - 6362 - - - - - - 215 15 - - 6363 - - - - - - 221 21 - - 6364 - - - - - - 227 27 - - 6365 - - - - - - 233 33 - - 6366 - - - - - - 239 39 - - 6367 - - - - - - 245 45 - - 6368 - - - - - - 251 51 - - 6369 - - - - - - 257 57 - - 6370 - - - - - - 263 63 - - 6371 - - - - - - 269 69 - - 6372 - - - - - - 275 75 - - 6373 - - - - - - 281 81 - - 6374 - - - - - - 287 87 - - 6375 - - - - - - 293 93 - - 6376} 6377do_execsql_test joinD-251 { 6378 SELECT t1.*, t2.*, t3.*, t4.* 6379 FROM t1 INNER JOIN t2 ON true 6380 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6381 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 6382 WHERE t1.b=t2.b AND t2.x>0 6383 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6384} { 6385 2 102 202 302 102 2 - - - - 6386 4 104 204 304 104 4 - - - - 6387 6 106 206 306 106 6 206 6 - - 6388 8 108 208 308 108 8 - - - - 6389 10 110 210 310 110 10 - - 310 10 6390 12 112 212 312 112 12 212 12 - - 6391 14 114 214 314 114 14 - - - - 6392 16 116 216 316 116 16 - - - - 6393 18 118 218 318 118 18 218 18 - - 6394 20 120 220 320 120 20 - - 320 20 6395 22 122 222 322 122 22 - - - - 6396 24 124 224 324 124 24 224 24 - - 6397 26 126 226 326 126 26 - - - - 6398 28 128 228 328 128 28 - - - - 6399 30 130 230 330 130 30 230 30 330 30 6400 32 132 232 332 132 32 - - - - 6401 34 134 234 334 134 34 - - - - 6402 36 136 236 336 136 36 236 36 - - 6403 38 138 238 338 138 38 - - - - 6404 40 140 240 340 140 40 - - 340 40 6405 42 142 242 342 142 42 242 42 - - 6406 44 144 244 344 144 44 - - - - 6407 46 146 246 346 146 46 - - - - 6408 48 148 248 348 148 48 248 48 - - 6409 50 150 250 350 150 50 - - 350 50 6410 52 152 252 352 152 52 - - - - 6411 54 154 254 354 154 54 254 54 - - 6412 56 156 256 356 156 56 - - - - 6413 58 158 258 358 158 58 - - - - 6414 60 160 260 360 160 60 260 60 360 60 6415 62 162 262 362 162 62 - - - - 6416 64 164 264 364 164 64 - - - - 6417 66 166 266 366 166 66 266 66 - - 6418 68 168 268 368 168 68 - - - - 6419 70 170 270 370 170 70 - - 370 70 6420 72 172 272 372 172 72 272 72 - - 6421 74 174 274 374 174 74 - - - - 6422 76 176 276 376 176 76 - - - - 6423 78 178 278 378 178 78 278 78 - - 6424 80 180 280 380 180 80 - - 380 80 6425 82 182 282 382 182 82 - - - - 6426 84 184 284 384 184 84 284 84 - - 6427 86 186 286 386 186 86 - - - - 6428 88 188 288 388 188 88 - - - - 6429 90 190 290 390 190 90 290 90 390 90 6430 92 192 292 392 192 92 - - - - 6431 94 194 294 394 194 94 - - - - 6432} 6433do_execsql_test joinD-252 { 6434 SELECT t1.*, t2.*, t3.*, t4.* 6435 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 6436 FULL JOIN t3 ON t1.c=t3.c 6437 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 6438 WHERE t3.y>0 6439 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6440} { 6441 6 106 206 306 106 6 206 6 - - 6442 12 112 212 312 112 12 212 12 - - 6443 18 118 218 318 118 18 218 18 - - 6444 24 124 224 324 124 24 224 24 - - 6445 30 130 230 330 130 30 230 30 330 30 6446 36 136 236 336 136 36 236 36 - - 6447 42 142 242 342 142 42 242 42 - - 6448 48 148 248 348 148 48 248 48 - - 6449 54 154 254 354 154 54 254 54 - - 6450 60 160 260 360 160 60 260 60 360 60 6451 66 166 266 366 166 66 266 66 - - 6452 72 172 272 372 172 72 272 72 - - 6453 78 178 278 378 178 78 278 78 - - 6454 84 184 284 384 184 84 284 84 - - 6455 90 190 290 390 190 90 290 90 390 90 6456 - - - - - - 203 3 - - 6457 - - - - - - 209 9 - - 6458 - - - - - - 215 15 - - 6459 - - - - - - 221 21 - - 6460 - - - - - - 227 27 - - 6461 - - - - - - 233 33 - - 6462 - - - - - - 239 39 - - 6463 - - - - - - 245 45 - - 6464 - - - - - - 251 51 - - 6465 - - - - - - 257 57 - - 6466 - - - - - - 263 63 - - 6467 - - - - - - 269 69 - - 6468 - - - - - - 275 75 - - 6469 - - - - - - 281 81 - - 6470 - - - - - - 287 87 - - 6471 - - - - - - 293 93 - - 6472} 6473do_execsql_test joinD-253 { 6474 SELECT t1.*, t2.*, t3.*, t4.* 6475 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 6476 FULL JOIN t3 ON t1.c=t3.c 6477 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 6478 WHERE t3.y>0 OR t3.y IS NULL 6479 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6480} { 6481 2 102 202 302 102 2 - - - - 6482 4 104 204 304 104 4 - - - - 6483 6 106 206 306 106 6 206 6 - - 6484 8 108 208 308 108 8 - - - - 6485 10 110 210 310 110 10 - - 310 10 6486 12 112 212 312 112 12 212 12 - - 6487 14 114 214 314 114 14 - - - - 6488 16 116 216 316 116 16 - - - - 6489 18 118 218 318 118 18 218 18 - - 6490 20 120 220 320 120 20 - - 320 20 6491 22 122 222 322 122 22 - - - - 6492 24 124 224 324 124 24 224 24 - - 6493 26 126 226 326 126 26 - - - - 6494 28 128 228 328 128 28 - - - - 6495 30 130 230 330 130 30 230 30 330 30 6496 32 132 232 332 132 32 - - - - 6497 34 134 234 334 134 34 - - - - 6498 36 136 236 336 136 36 236 36 - - 6499 38 138 238 338 138 38 - - - - 6500 40 140 240 340 140 40 - - 340 40 6501 42 142 242 342 142 42 242 42 - - 6502 44 144 244 344 144 44 - - - - 6503 46 146 246 346 146 46 - - - - 6504 48 148 248 348 148 48 248 48 - - 6505 50 150 250 350 150 50 - - 350 50 6506 52 152 252 352 152 52 - - - - 6507 54 154 254 354 154 54 254 54 - - 6508 56 156 256 356 156 56 - - - - 6509 58 158 258 358 158 58 - - - - 6510 60 160 260 360 160 60 260 60 360 60 6511 62 162 262 362 162 62 - - - - 6512 64 164 264 364 164 64 - - - - 6513 66 166 266 366 166 66 266 66 - - 6514 68 168 268 368 168 68 - - - - 6515 70 170 270 370 170 70 - - 370 70 6516 72 172 272 372 172 72 272 72 - - 6517 74 174 274 374 174 74 - - - - 6518 76 176 276 376 176 76 - - - - 6519 78 178 278 378 178 78 278 78 - - 6520 80 180 280 380 180 80 - - 380 80 6521 82 182 282 382 182 82 - - - - 6522 84 184 284 384 184 84 284 84 - - 6523 86 186 286 386 186 86 - - - - 6524 88 188 288 388 188 88 - - - - 6525 90 190 290 390 190 90 290 90 390 90 6526 92 192 292 392 192 92 - - - - 6527 94 194 294 394 194 94 - - - - 6528 - - - - - - 203 3 - - 6529 - - - - - - 209 9 - - 6530 - - - - - - 215 15 - - 6531 - - - - - - 221 21 - - 6532 - - - - - - 227 27 - - 6533 - - - - - - 233 33 - - 6534 - - - - - - 239 39 - - 6535 - - - - - - 245 45 - - 6536 - - - - - - 251 51 - - 6537 - - - - - - 257 57 - - 6538 - - - - - - 263 63 - - 6539 - - - - - - 269 69 - - 6540 - - - - - - 275 75 - - 6541 - - - - - - 281 81 - - 6542 - - - - - - 287 87 - - 6543 - - - - - - 293 93 - - 6544} 6545do_execsql_test joinD-254 { 6546 SELECT t1.*, t2.*, t3.*, t4.* 6547 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 6548 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6549 LEFT JOIN t4 ON t1.d=t4.d 6550 WHERE t4.z>0 6551 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6552} { 6553 10 110 210 310 110 10 - - 310 10 6554 20 120 220 320 120 20 - - 320 20 6555 30 130 230 330 130 30 230 30 330 30 6556 40 140 240 340 140 40 - - 340 40 6557 50 150 250 350 150 50 - - 350 50 6558 60 160 260 360 160 60 260 60 360 60 6559 70 170 270 370 170 70 - - 370 70 6560 80 180 280 380 180 80 - - 380 80 6561 90 190 290 390 190 90 290 90 390 90 6562} 6563do_execsql_test joinD-255 { 6564 SELECT t1.*, t2.*, t3.*, t4.* 6565 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 6566 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6567 LEFT JOIN t4 ON t1.d=t4.d 6568 WHERE t4.z IS NULL OR t4.z>0 6569 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6570} { 6571 2 102 202 302 102 2 - - - - 6572 4 104 204 304 104 4 - - - - 6573 6 106 206 306 106 6 206 6 - - 6574 8 108 208 308 108 8 - - - - 6575 10 110 210 310 110 10 - - 310 10 6576 12 112 212 312 112 12 212 12 - - 6577 14 114 214 314 114 14 - - - - 6578 16 116 216 316 116 16 - - - - 6579 18 118 218 318 118 18 218 18 - - 6580 20 120 220 320 120 20 - - 320 20 6581 22 122 222 322 122 22 - - - - 6582 24 124 224 324 124 24 224 24 - - 6583 26 126 226 326 126 26 - - - - 6584 28 128 228 328 128 28 - - - - 6585 30 130 230 330 130 30 230 30 330 30 6586 32 132 232 332 132 32 - - - - 6587 34 134 234 334 134 34 - - - - 6588 36 136 236 336 136 36 236 36 - - 6589 38 138 238 338 138 38 - - - - 6590 40 140 240 340 140 40 - - 340 40 6591 42 142 242 342 142 42 242 42 - - 6592 44 144 244 344 144 44 - - - - 6593 46 146 246 346 146 46 - - - - 6594 48 148 248 348 148 48 248 48 - - 6595 50 150 250 350 150 50 - - 350 50 6596 52 152 252 352 152 52 - - - - 6597 54 154 254 354 154 54 254 54 - - 6598 56 156 256 356 156 56 - - - - 6599 58 158 258 358 158 58 - - - - 6600 60 160 260 360 160 60 260 60 360 60 6601 62 162 262 362 162 62 - - - - 6602 64 164 264 364 164 64 - - - - 6603 66 166 266 366 166 66 266 66 - - 6604 68 168 268 368 168 68 - - - - 6605 70 170 270 370 170 70 - - 370 70 6606 72 172 272 372 172 72 272 72 - - 6607 74 174 274 374 174 74 - - - - 6608 76 176 276 376 176 76 - - - - 6609 78 178 278 378 178 78 278 78 - - 6610 80 180 280 380 180 80 - - 380 80 6611 82 182 282 382 182 82 - - - - 6612 84 184 284 384 184 84 284 84 - - 6613 86 186 286 386 186 86 - - - - 6614 88 188 288 388 188 88 - - - - 6615 90 190 290 390 190 90 290 90 390 90 6616 92 192 292 392 192 92 - - - - 6617 94 194 294 394 194 94 - - - - 6618 - - - - - - 200 0 - - 6619 - - - - - - 203 3 - - 6620 - - - - - - 209 9 - - 6621 - - - - - - 215 15 - - 6622 - - - - - - 221 21 - - 6623 - - - - - - 227 27 - - 6624 - - - - - - 233 33 - - 6625 - - - - - - 239 39 - - 6626 - - - - - - 245 45 - - 6627 - - - - - - 251 51 - - 6628 - - - - - - 257 57 - - 6629 - - - - - - 263 63 - - 6630 - - - - - - 269 69 - - 6631 - - - - - - 275 75 - - 6632 - - - - - - 281 81 - - 6633 - - - - - - 287 87 - - 6634 - - - - - - 293 93 - - 6635} 6636do_execsql_test joinD-256 { 6637 SELECT t1.*, t2.*, t3.*, t4.* 6638 FROM t1 INNER JOIN t2 ON t1.b=t2.b 6639 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6640 LEFT JOIN t4 ON t1.d=t4.d 6641 WHERE t2.x>0 AND t4.z>0 6642 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6643} { 6644 10 110 210 310 110 10 - - 310 10 6645 20 120 220 320 120 20 - - 320 20 6646 30 130 230 330 130 30 230 30 330 30 6647 40 140 240 340 140 40 - - 340 40 6648 50 150 250 350 150 50 - - 350 50 6649 60 160 260 360 160 60 260 60 360 60 6650 70 170 270 370 170 70 - - 370 70 6651 80 180 280 380 180 80 - - 380 80 6652 90 190 290 390 190 90 290 90 390 90 6653} 6654do_execsql_test joinD-257 { 6655 SELECT t1.*, t2.*, t3.*, t4.* 6656 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 6657 FULL JOIN t3 ON t1.c=t3.c 6658 LEFT JOIN t4 ON t1.d=t4.d 6659 WHERE t4.z>0 AND t3.y>0 6660 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6661} { 6662 30 130 230 330 130 30 230 30 330 30 6663 60 160 260 360 160 60 260 60 360 60 6664 90 190 290 390 190 90 290 90 390 90 6665} 6666do_execsql_test joinD-258 { 6667 SELECT t1.*, t2.*, t3.*, t4.* 6668 FROM t1 INNER JOIN t2 ON t1.b=t2.b 6669 FULL JOIN t3 ON t1.c=t3.c 6670 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 6671 WHERE t2.x>0 AND t3.y>0 6672 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6673} { 6674 6 106 206 306 106 6 206 6 - - 6675 12 112 212 312 112 12 212 12 - - 6676 18 118 218 318 118 18 218 18 - - 6677 24 124 224 324 124 24 224 24 - - 6678 30 130 230 330 130 30 230 30 330 30 6679 36 136 236 336 136 36 236 36 - - 6680 42 142 242 342 142 42 242 42 - - 6681 48 148 248 348 148 48 248 48 - - 6682 54 154 254 354 154 54 254 54 - - 6683 60 160 260 360 160 60 260 60 360 60 6684 66 166 266 366 166 66 266 66 - - 6685 72 172 272 372 172 72 272 72 - - 6686 78 178 278 378 178 78 278 78 - - 6687 84 184 284 384 184 84 284 84 - - 6688 90 190 290 390 190 90 290 90 390 90 6689} 6690do_execsql_test joinD-259 { 6691 SELECT t1.*, t2.*, t3.*, t4.* 6692 FROM t1 INNER JOIN t2 ON t1.b=t2.b 6693 FULL JOIN t3 ON t1.c=t3.c 6694 LEFT JOIN t4 ON t1.d=t4.d 6695 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 6696 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6697} { 6698 30 130 230 330 130 30 230 30 330 30 6699 60 160 260 360 160 60 260 60 360 60 6700 90 190 290 390 190 90 290 90 390 90 6701} 6702do_execsql_test joinD-260 { 6703 SELECT t1.*, t2.*, t3.*, t4.* 6704 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 6705 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 6706 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 6707 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6708} { 6709 2 102 202 302 102 2 - - - - 6710 4 104 204 304 104 4 - - - - 6711 6 106 206 306 106 6 206 6 - - 6712 8 108 208 308 108 8 - - - - 6713 10 110 210 310 110 10 - - 310 10 6714 12 112 212 312 112 12 212 12 - - 6715 14 114 214 314 114 14 - - - - 6716 16 116 216 316 116 16 - - - - 6717 18 118 218 318 118 18 218 18 - - 6718 20 120 220 320 120 20 - - 320 20 6719 22 122 222 322 122 22 - - - - 6720 24 124 224 324 124 24 224 24 - - 6721 26 126 226 326 126 26 - - - - 6722 28 128 228 328 128 28 - - - - 6723 30 130 230 330 130 30 230 30 330 30 6724 32 132 232 332 132 32 - - - - 6725 34 134 234 334 134 34 - - - - 6726 36 136 236 336 136 36 236 36 - - 6727 38 138 238 338 138 38 - - - - 6728 40 140 240 340 140 40 - - 340 40 6729 42 142 242 342 142 42 242 42 - - 6730 44 144 244 344 144 44 - - - - 6731 46 146 246 346 146 46 - - - - 6732 48 148 248 348 148 48 248 48 - - 6733 50 150 250 350 150 50 - - 350 50 6734 52 152 252 352 152 52 - - - - 6735 54 154 254 354 154 54 254 54 - - 6736 56 156 256 356 156 56 - - - - 6737 58 158 258 358 158 58 - - - - 6738 60 160 260 360 160 60 260 60 360 60 6739 62 162 262 362 162 62 - - - - 6740 64 164 264 364 164 64 - - - - 6741 66 166 266 366 166 66 266 66 - - 6742 68 168 268 368 168 68 - - - - 6743 70 170 270 370 170 70 - - 370 70 6744 72 172 272 372 172 72 272 72 - - 6745 74 174 274 374 174 74 - - - - 6746 76 176 276 376 176 76 - - - - 6747 78 178 278 378 178 78 278 78 - - 6748 80 180 280 380 180 80 - - 380 80 6749 82 182 282 382 182 82 - - - - 6750 84 184 284 384 184 84 284 84 - - 6751 86 186 286 386 186 86 - - - - 6752 88 188 288 388 188 88 - - - - 6753 90 190 290 390 190 90 290 90 390 90 6754 92 192 292 392 192 92 - - - - 6755 94 194 294 394 194 94 - - - - 6756 - - - - - - 200 0 - - 6757 - - - - - - 203 3 - - 6758 - - - - - - 209 9 - - 6759 - - - - - - 215 15 - - 6760 - - - - - - 221 21 - - 6761 - - - - - - 227 27 - - 6762 - - - - - - 233 33 - - 6763 - - - - - - 239 39 - - 6764 - - - - - - 245 45 - - 6765 - - - - - - 251 51 - - 6766 - - - - - - 257 57 - - 6767 - - - - - - 263 63 - - 6768 - - - - - - 269 69 - - 6769 - - - - - - 275 75 - - 6770 - - - - - - 281 81 - - 6771 - - - - - - 287 87 - - 6772 - - - - - - 293 93 - - 6773} 6774do_execsql_test joinD-261 { 6775 SELECT t1.*, t2.*, t3.*, t4.* 6776 FROM t1 INNER JOIN t2 ON t2.x>0 6777 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 6778 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 6779 WHERE t1.b IS NOT DISTINCT FROM t2.b 6780 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6781} { 6782 2 102 202 302 102 2 - - - - 6783 4 104 204 304 104 4 - - - - 6784 6 106 206 306 106 6 206 6 - - 6785 8 108 208 308 108 8 - - - - 6786 10 110 210 310 110 10 - - 310 10 6787 12 112 212 312 112 12 212 12 - - 6788 14 114 214 314 114 14 - - - - 6789 16 116 216 316 116 16 - - - - 6790 18 118 218 318 118 18 218 18 - - 6791 20 120 220 320 120 20 - - 320 20 6792 22 122 222 322 122 22 - - - - 6793 24 124 224 324 124 24 224 24 - - 6794 26 126 226 326 126 26 - - - - 6795 28 128 228 328 128 28 - - - - 6796 30 130 230 330 130 30 230 30 330 30 6797 32 132 232 332 132 32 - - - - 6798 34 134 234 334 134 34 - - - - 6799 36 136 236 336 136 36 236 36 - - 6800 38 138 238 338 138 38 - - - - 6801 40 140 240 340 140 40 - - 340 40 6802 42 142 242 342 142 42 242 42 - - 6803 44 144 244 344 144 44 - - - - 6804 46 146 246 346 146 46 - - - - 6805 48 148 248 348 148 48 248 48 - - 6806 50 150 250 350 150 50 - - 350 50 6807 52 152 252 352 152 52 - - - - 6808 54 154 254 354 154 54 254 54 - - 6809 56 156 256 356 156 56 - - - - 6810 58 158 258 358 158 58 - - - - 6811 60 160 260 360 160 60 260 60 360 60 6812 62 162 262 362 162 62 - - - - 6813 64 164 264 364 164 64 - - - - 6814 66 166 266 366 166 66 266 66 - - 6815 68 168 268 368 168 68 - - - - 6816 70 170 270 370 170 70 - - 370 70 6817 72 172 272 372 172 72 272 72 - - 6818 74 174 274 374 174 74 - - - - 6819 76 176 276 376 176 76 - - - - 6820 78 178 278 378 178 78 278 78 - - 6821 80 180 280 380 180 80 - - 380 80 6822 82 182 282 382 182 82 - - - - 6823 84 184 284 384 184 84 284 84 - - 6824 86 186 286 386 186 86 - - - - 6825 88 188 288 388 188 88 - - - - 6826 90 190 290 390 190 90 290 90 390 90 6827 92 192 292 392 192 92 - - - - 6828 94 194 294 394 194 94 - - - - 6829 - - - - - - 200 0 - - 6830} 6831do_execsql_test joinD-262 { 6832 SELECT t1.*, t2.*, t3.*, t4.* 6833 FROM t1 INNER JOIN t2 ON t2.x>0 6834 FULL JOIN t3 ON t3.y>0 6835 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 6836 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 6837 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6838} { 6839 6 106 206 306 106 6 206 6 - - 6840 12 112 212 312 112 12 212 12 - - 6841 18 118 218 318 118 18 218 18 - - 6842 24 124 224 324 124 24 224 24 - - 6843 30 130 230 330 130 30 230 30 330 30 6844 36 136 236 336 136 36 236 36 - - 6845 42 142 242 342 142 42 242 42 - - 6846 48 148 248 348 148 48 248 48 - - 6847 54 154 254 354 154 54 254 54 - - 6848 60 160 260 360 160 60 260 60 360 60 6849 66 166 266 366 166 66 266 66 - - 6850 72 172 272 372 172 72 272 72 - - 6851 78 178 278 378 178 78 278 78 - - 6852 84 184 284 384 184 84 284 84 - - 6853 90 190 290 390 190 90 290 90 390 90 6854} 6855do_execsql_test joinD-263 { 6856 SELECT t1.*, t2.*, t3.*, t4.* 6857 FROM t1 INNER JOIN t2 ON t2.x>0 6858 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 6859 LEFT JOIN t4 ON t4.z>0 6860 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 6861 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6862} { 6863 10 110 210 310 110 10 - - 310 10 6864 20 120 220 320 120 20 - - 320 20 6865 30 130 230 330 130 30 230 30 330 30 6866 40 140 240 340 140 40 - - 340 40 6867 50 150 250 350 150 50 - - 350 50 6868 60 160 260 360 160 60 260 60 360 60 6869 70 170 270 370 170 70 - - 370 70 6870 80 180 280 380 180 80 - - 380 80 6871 90 190 290 390 190 90 290 90 390 90 6872} 6873do_execsql_test joinD-264 { 6874 SELECT t1.*, t2.*, t3.*, t4.* 6875 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 6876 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6877 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 6878 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6879} { 6880 2 102 202 302 102 2 - - - - 6881 4 104 204 304 104 4 - - - - 6882 6 106 206 306 106 6 206 6 - - 6883 8 108 208 308 108 8 - - - - 6884 10 110 210 310 110 10 - - 310 10 6885 12 112 212 312 112 12 212 12 - - 6886 14 114 214 314 114 14 - - - - 6887 16 116 216 316 116 16 - - - - 6888 18 118 218 318 118 18 218 18 - - 6889 20 120 220 320 120 20 - - 320 20 6890 22 122 222 322 122 22 - - - - 6891 24 124 224 324 124 24 224 24 - - 6892 26 126 226 326 126 26 - - - - 6893 28 128 228 328 128 28 - - - - 6894 30 130 230 330 130 30 230 30 330 30 6895 32 132 232 332 132 32 - - - - 6896 34 134 234 334 134 34 - - - - 6897 36 136 236 336 136 36 236 36 - - 6898 38 138 238 338 138 38 - - - - 6899 40 140 240 340 140 40 - - 340 40 6900 42 142 242 342 142 42 242 42 - - 6901 44 144 244 344 144 44 - - - - 6902 46 146 246 346 146 46 - - - - 6903 48 148 248 348 148 48 248 48 - - 6904 50 150 250 350 150 50 - - 350 50 6905 52 152 252 352 152 52 - - - - 6906 54 154 254 354 154 54 254 54 - - 6907 56 156 256 356 156 56 - - - - 6908 58 158 258 358 158 58 - - - - 6909 60 160 260 360 160 60 260 60 360 60 6910 62 162 262 362 162 62 - - - - 6911 64 164 264 364 164 64 - - - - 6912 66 166 266 366 166 66 266 66 - - 6913 68 168 268 368 168 68 - - - - 6914 70 170 270 370 170 70 - - 370 70 6915 72 172 272 372 172 72 272 72 - - 6916 74 174 274 374 174 74 - - - - 6917 76 176 276 376 176 76 - - - - 6918 78 178 278 378 178 78 278 78 - - 6919 80 180 280 380 180 80 - - 380 80 6920 82 182 282 382 182 82 - - - - 6921 84 184 284 384 184 84 284 84 - - 6922 86 186 286 386 186 86 - - - - 6923 88 188 288 388 188 88 - - - - 6924 90 190 290 390 190 90 290 90 390 90 6925 92 192 292 392 192 92 - - - - 6926 94 194 294 394 194 94 - - - - 6927 - - - - - - 200 0 - - 6928 - - - - - - 203 3 - - 6929 - - - - - - 209 9 - - 6930 - - - - - - 215 15 - - 6931 - - - - - - 221 21 - - 6932 - - - - - - 227 27 - - 6933 - - - - - - 233 33 - - 6934 - - - - - - 239 39 - - 6935 - - - - - - 245 45 - - 6936 - - - - - - 251 51 - - 6937 - - - - - - 257 57 - - 6938 - - - - - - 263 63 - - 6939 - - - - - - 269 69 - - 6940 - - - - - - 275 75 - - 6941 - - - - - - 281 81 - - 6942 - - - - - - 287 87 - - 6943 - - - - - - 293 93 - - 6944} 6945do_execsql_test joinD-265 { 6946 SELECT t1.*, t2.*, t3.*, t4.* 6947 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 6948 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6949 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 6950 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6951} { 6952 10 110 210 310 110 10 - - 310 10 6953 20 120 220 320 120 20 - - 320 20 6954 30 130 230 330 130 30 230 30 330 30 6955 40 140 240 340 140 40 - - 340 40 6956 50 150 250 350 150 50 - - 350 50 6957 60 160 260 360 160 60 260 60 360 60 6958 70 170 270 370 170 70 - - 370 70 6959 80 180 280 380 180 80 - - 380 80 6960 90 190 290 390 190 90 290 90 390 90 6961 - - - - - - - - 300 0 6962 - - - - - - - - 305 5 6963 - - - - - - - - 315 15 6964 - - - - - - - - 325 25 6965 - - - - - - - - 335 35 6966 - - - - - - - - 345 45 6967 - - - - - - - - 355 55 6968 - - - - - - - - 365 65 6969 - - - - - - - - 375 75 6970 - - - - - - - - 385 85 6971 - - - - - - - - 395 95 6972} 6973do_execsql_test joinD-266 { 6974 SELECT t1.*, t2.*, t3.*, t4.* 6975 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 6976 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 6977 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 6978 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 6979} { 6980 10 110 210 310 110 10 - - 310 10 6981 20 120 220 320 120 20 - - 320 20 6982 30 130 230 330 130 30 230 30 330 30 6983 40 140 240 340 140 40 - - 340 40 6984 50 150 250 350 150 50 - - 350 50 6985 60 160 260 360 160 60 260 60 360 60 6986 70 170 270 370 170 70 - - 370 70 6987 80 180 280 380 180 80 - - 380 80 6988 90 190 290 390 190 90 290 90 390 90 6989 - - - - - - - - 300 0 6990 - - - - - - - - 305 5 6991 - - - - - - - - 315 15 6992 - - - - - - - - 325 25 6993 - - - - - - - - 335 35 6994 - - - - - - - - 345 45 6995 - - - - - - - - 355 55 6996 - - - - - - - - 365 65 6997 - - - - - - - - 375 75 6998 - - - - - - - - 385 85 6999 - - - - - - - - 395 95 7000} 7001do_execsql_test joinD-267 { 7002 SELECT t1.*, t2.*, t3.*, t4.* 7003 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7004 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7005 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 7006 WHERE t2.x>0 7007 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7008} { 7009 10 110 210 310 110 10 - - 310 10 7010 20 120 220 320 120 20 - - 320 20 7011 30 130 230 330 130 30 230 30 330 30 7012 40 140 240 340 140 40 - - 340 40 7013 50 150 250 350 150 50 - - 350 50 7014 60 160 260 360 160 60 260 60 360 60 7015 70 170 270 370 170 70 - - 370 70 7016 80 180 280 380 180 80 - - 380 80 7017 90 190 290 390 190 90 290 90 390 90 7018} 7019do_execsql_test joinD-268 { 7020 SELECT t1.*, t2.*, t3.*, t4.* 7021 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7022 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7023 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 7024 WHERE (t2.x>0 OR t2.x IS NULL) 7025 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7026} { 7027 10 110 210 310 110 10 - - 310 10 7028 20 120 220 320 120 20 - - 320 20 7029 30 130 230 330 130 30 230 30 330 30 7030 40 140 240 340 140 40 - - 340 40 7031 50 150 250 350 150 50 - - 350 50 7032 60 160 260 360 160 60 260 60 360 60 7033 70 170 270 370 170 70 - - 370 70 7034 80 180 280 380 180 80 - - 380 80 7035 90 190 290 390 190 90 290 90 390 90 7036 - - - - - - - - 300 0 7037 - - - - - - - - 305 5 7038 - - - - - - - - 315 15 7039 - - - - - - - - 325 25 7040 - - - - - - - - 335 35 7041 - - - - - - - - 345 45 7042 - - - - - - - - 355 55 7043 - - - - - - - - 365 65 7044 - - - - - - - - 375 75 7045 - - - - - - - - 385 85 7046 - - - - - - - - 395 95 7047} 7048do_execsql_test joinD-269 { 7049 SELECT t1.*, t2.*, t3.*, t4.* 7050 FROM t1 INNER JOIN t2 ON true 7051 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7052 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 7053 WHERE t1.b=t2.b AND t2.x>0 7054 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7055} { 7056 10 110 210 310 110 10 - - 310 10 7057 20 120 220 320 120 20 - - 320 20 7058 30 130 230 330 130 30 230 30 330 30 7059 40 140 240 340 140 40 - - 340 40 7060 50 150 250 350 150 50 - - 350 50 7061 60 160 260 360 160 60 260 60 360 60 7062 70 170 270 370 170 70 - - 370 70 7063 80 180 280 380 180 80 - - 380 80 7064 90 190 290 390 190 90 290 90 390 90 7065} 7066do_execsql_test joinD-270 { 7067 SELECT t1.*, t2.*, t3.*, t4.* 7068 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7069 FULL JOIN t3 ON t1.c=t3.c 7070 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 7071 WHERE t3.y>0 7072 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7073} { 7074 30 130 230 330 130 30 230 30 330 30 7075 60 160 260 360 160 60 260 60 360 60 7076 90 190 290 390 190 90 290 90 390 90 7077} 7078do_execsql_test joinD-271 { 7079 SELECT t1.*, t2.*, t3.*, t4.* 7080 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7081 FULL JOIN t3 ON t1.c=t3.c 7082 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 7083 WHERE t3.y>0 OR t3.y IS NULL 7084 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7085} { 7086 10 110 210 310 110 10 - - 310 10 7087 20 120 220 320 120 20 - - 320 20 7088 30 130 230 330 130 30 230 30 330 30 7089 40 140 240 340 140 40 - - 340 40 7090 50 150 250 350 150 50 - - 350 50 7091 60 160 260 360 160 60 260 60 360 60 7092 70 170 270 370 170 70 - - 370 70 7093 80 180 280 380 180 80 - - 380 80 7094 90 190 290 390 190 90 290 90 390 90 7095 - - - - - - - - 300 0 7096 - - - - - - - - 305 5 7097 - - - - - - - - 315 15 7098 - - - - - - - - 325 25 7099 - - - - - - - - 335 35 7100 - - - - - - - - 345 45 7101 - - - - - - - - 355 55 7102 - - - - - - - - 365 65 7103 - - - - - - - - 375 75 7104 - - - - - - - - 385 85 7105 - - - - - - - - 395 95 7106} 7107do_execsql_test joinD-272 { 7108 SELECT t1.*, t2.*, t3.*, t4.* 7109 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7110 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7111 RIGHT JOIN t4 ON t1.d=t4.d 7112 WHERE t4.z>0 7113 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7114} { 7115 10 110 210 310 110 10 - - 310 10 7116 20 120 220 320 120 20 - - 320 20 7117 30 130 230 330 130 30 230 30 330 30 7118 40 140 240 340 140 40 - - 340 40 7119 50 150 250 350 150 50 - - 350 50 7120 60 160 260 360 160 60 260 60 360 60 7121 70 170 270 370 170 70 - - 370 70 7122 80 180 280 380 180 80 - - 380 80 7123 90 190 290 390 190 90 290 90 390 90 7124 - - - - - - - - 305 5 7125 - - - - - - - - 315 15 7126 - - - - - - - - 325 25 7127 - - - - - - - - 335 35 7128 - - - - - - - - 345 45 7129 - - - - - - - - 355 55 7130 - - - - - - - - 365 65 7131 - - - - - - - - 375 75 7132 - - - - - - - - 385 85 7133 - - - - - - - - 395 95 7134} 7135do_execsql_test joinD-273 { 7136 SELECT t1.*, t2.*, t3.*, t4.* 7137 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7138 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7139 RIGHT JOIN t4 ON t1.d=t4.d 7140 WHERE t4.z IS NULL OR t4.z>0 7141 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7142} { 7143 10 110 210 310 110 10 - - 310 10 7144 20 120 220 320 120 20 - - 320 20 7145 30 130 230 330 130 30 230 30 330 30 7146 40 140 240 340 140 40 - - 340 40 7147 50 150 250 350 150 50 - - 350 50 7148 60 160 260 360 160 60 260 60 360 60 7149 70 170 270 370 170 70 - - 370 70 7150 80 180 280 380 180 80 - - 380 80 7151 90 190 290 390 190 90 290 90 390 90 7152 - - - - - - - - 305 5 7153 - - - - - - - - 315 15 7154 - - - - - - - - 325 25 7155 - - - - - - - - 335 35 7156 - - - - - - - - 345 45 7157 - - - - - - - - 355 55 7158 - - - - - - - - 365 65 7159 - - - - - - - - 375 75 7160 - - - - - - - - 385 85 7161 - - - - - - - - 395 95 7162} 7163do_execsql_test joinD-274 { 7164 SELECT t1.*, t2.*, t3.*, t4.* 7165 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7166 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7167 RIGHT JOIN t4 ON t1.d=t4.d 7168 WHERE t2.x>0 AND t4.z>0 7169 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7170} { 7171 10 110 210 310 110 10 - - 310 10 7172 20 120 220 320 120 20 - - 320 20 7173 30 130 230 330 130 30 230 30 330 30 7174 40 140 240 340 140 40 - - 340 40 7175 50 150 250 350 150 50 - - 350 50 7176 60 160 260 360 160 60 260 60 360 60 7177 70 170 270 370 170 70 - - 370 70 7178 80 180 280 380 180 80 - - 380 80 7179 90 190 290 390 190 90 290 90 390 90 7180} 7181do_execsql_test joinD-275 { 7182 SELECT t1.*, t2.*, t3.*, t4.* 7183 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7184 FULL JOIN t3 ON t1.c=t3.c 7185 RIGHT JOIN t4 ON t1.d=t4.d 7186 WHERE t4.z>0 AND t3.y>0 7187 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7188} { 7189 30 130 230 330 130 30 230 30 330 30 7190 60 160 260 360 160 60 260 60 360 60 7191 90 190 290 390 190 90 290 90 390 90 7192} 7193do_execsql_test joinD-276 { 7194 SELECT t1.*, t2.*, t3.*, t4.* 7195 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7196 FULL JOIN t3 ON t1.c=t3.c 7197 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 7198 WHERE t2.x>0 AND t3.y>0 7199 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7200} { 7201 30 130 230 330 130 30 230 30 330 30 7202 60 160 260 360 160 60 260 60 360 60 7203 90 190 290 390 190 90 290 90 390 90 7204} 7205do_execsql_test joinD-277 { 7206 SELECT t1.*, t2.*, t3.*, t4.* 7207 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7208 FULL JOIN t3 ON t1.c=t3.c 7209 RIGHT JOIN t4 ON t1.d=t4.d 7210 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 7211 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7212} { 7213 30 130 230 330 130 30 230 30 330 30 7214 60 160 260 360 160 60 260 60 360 60 7215 90 190 290 390 190 90 290 90 390 90 7216} 7217do_execsql_test joinD-278 { 7218 SELECT t1.*, t2.*, t3.*, t4.* 7219 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 7220 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 7221 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 7222 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7223} { 7224 10 110 210 310 110 10 - - 310 10 7225 20 120 220 320 120 20 - - 320 20 7226 30 130 230 330 130 30 230 30 330 30 7227 40 140 240 340 140 40 - - 340 40 7228 50 150 250 350 150 50 - - 350 50 7229 60 160 260 360 160 60 260 60 360 60 7230 70 170 270 370 170 70 - - 370 70 7231 80 180 280 380 180 80 - - 380 80 7232 90 190 290 390 190 90 290 90 390 90 7233 - - - - - - - - 300 0 7234 - - - - - - - - 305 5 7235 - - - - - - - - 315 15 7236 - - - - - - - - 325 25 7237 - - - - - - - - 335 35 7238 - - - - - - - - 345 45 7239 - - - - - - - - 355 55 7240 - - - - - - - - 365 65 7241 - - - - - - - - 375 75 7242 - - - - - - - - 385 85 7243 - - - - - - - - 395 95 7244} 7245do_execsql_test joinD-279 { 7246 SELECT t1.*, t2.*, t3.*, t4.* 7247 FROM t1 INNER JOIN t2 ON t2.x>0 7248 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 7249 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 7250 WHERE t1.b IS NOT DISTINCT FROM t2.b 7251 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7252} { 7253 10 110 210 310 110 10 - - 310 10 7254 20 120 220 320 120 20 - - 320 20 7255 30 130 230 330 130 30 230 30 330 30 7256 40 140 240 340 140 40 - - 340 40 7257 50 150 250 350 150 50 - - 350 50 7258 60 160 260 360 160 60 260 60 360 60 7259 70 170 270 370 170 70 - - 370 70 7260 80 180 280 380 180 80 - - 380 80 7261 90 190 290 390 190 90 290 90 390 90 7262 - - - - - - - - 300 0 7263} 7264do_execsql_test joinD-280 { 7265 SELECT t1.*, t2.*, t3.*, t4.* 7266 FROM t1 INNER JOIN t2 ON t2.x>0 7267 FULL JOIN t3 ON t3.y>0 7268 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 7269 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 7270 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7271} { 7272 30 130 230 330 130 30 230 30 330 30 7273 60 160 260 360 160 60 260 60 360 60 7274 90 190 290 390 190 90 290 90 390 90 7275} 7276do_execsql_test joinD-281 { 7277 SELECT t1.*, t2.*, t3.*, t4.* 7278 FROM t1 INNER JOIN t2 ON t2.x>0 7279 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 7280 RIGHT JOIN t4 ON t4.z>0 7281 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 7282 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7283} { 7284 10 110 210 310 110 10 - - 310 10 7285 20 120 220 320 120 20 - - 320 20 7286 30 130 230 330 130 30 230 30 330 30 7287 40 140 240 340 140 40 - - 340 40 7288 50 150 250 350 150 50 - - 350 50 7289 60 160 260 360 160 60 260 60 360 60 7290 70 170 270 370 170 70 - - 370 70 7291 80 180 280 380 180 80 - - 380 80 7292 90 190 290 390 190 90 290 90 390 90 7293} 7294do_execsql_test joinD-282 { 7295 SELECT t1.*, t2.*, t3.*, t4.* 7296 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 7297 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7298 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 7299 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7300} { 7301 10 110 210 310 110 10 - - 310 10 7302 20 120 220 320 120 20 - - 320 20 7303 30 130 230 330 130 30 230 30 330 30 7304 40 140 240 340 140 40 - - 340 40 7305 50 150 250 350 150 50 - - 350 50 7306 60 160 260 360 160 60 260 60 360 60 7307 70 170 270 370 170 70 - - 370 70 7308 80 180 280 380 180 80 - - 380 80 7309 90 190 290 390 190 90 290 90 390 90 7310 - - - - - - - - 300 0 7311 - - - - - - - - 305 5 7312 - - - - - - - - 315 15 7313 - - - - - - - - 325 25 7314 - - - - - - - - 335 35 7315 - - - - - - - - 345 45 7316 - - - - - - - - 355 55 7317 - - - - - - - - 365 65 7318 - - - - - - - - 375 75 7319 - - - - - - - - 385 85 7320 - - - - - - - - 395 95 7321} 7322do_execsql_test joinD-283 { 7323 SELECT t1.*, t2.*, t3.*, t4.* 7324 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7325 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7326 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 7327 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7328} { 7329 2 102 202 302 102 2 - - - - 7330 4 104 204 304 104 4 - - - - 7331 6 106 206 306 106 6 206 6 - - 7332 8 108 208 308 108 8 - - - - 7333 10 110 210 310 110 10 - - 310 10 7334 12 112 212 312 112 12 212 12 - - 7335 14 114 214 314 114 14 - - - - 7336 16 116 216 316 116 16 - - - - 7337 18 118 218 318 118 18 218 18 - - 7338 20 120 220 320 120 20 - - 320 20 7339 22 122 222 322 122 22 - - - - 7340 24 124 224 324 124 24 224 24 - - 7341 26 126 226 326 126 26 - - - - 7342 28 128 228 328 128 28 - - - - 7343 30 130 230 330 130 30 230 30 330 30 7344 32 132 232 332 132 32 - - - - 7345 34 134 234 334 134 34 - - - - 7346 36 136 236 336 136 36 236 36 - - 7347 38 138 238 338 138 38 - - - - 7348 40 140 240 340 140 40 - - 340 40 7349 42 142 242 342 142 42 242 42 - - 7350 44 144 244 344 144 44 - - - - 7351 46 146 246 346 146 46 - - - - 7352 48 148 248 348 148 48 248 48 - - 7353 50 150 250 350 150 50 - - 350 50 7354 52 152 252 352 152 52 - - - - 7355 54 154 254 354 154 54 254 54 - - 7356 56 156 256 356 156 56 - - - - 7357 58 158 258 358 158 58 - - - - 7358 60 160 260 360 160 60 260 60 360 60 7359 62 162 262 362 162 62 - - - - 7360 64 164 264 364 164 64 - - - - 7361 66 166 266 366 166 66 266 66 - - 7362 68 168 268 368 168 68 - - - - 7363 70 170 270 370 170 70 - - 370 70 7364 72 172 272 372 172 72 272 72 - - 7365 74 174 274 374 174 74 - - - - 7366 76 176 276 376 176 76 - - - - 7367 78 178 278 378 178 78 278 78 - - 7368 80 180 280 380 180 80 - - 380 80 7369 82 182 282 382 182 82 - - - - 7370 84 184 284 384 184 84 284 84 - - 7371 86 186 286 386 186 86 - - - - 7372 88 188 288 388 188 88 - - - - 7373 90 190 290 390 190 90 290 90 390 90 7374 92 192 292 392 192 92 - - - - 7375 94 194 294 394 194 94 - - - - 7376 - - - - - - 200 0 - - 7377 - - - - - - 203 3 - - 7378 - - - - - - 209 9 - - 7379 - - - - - - 215 15 - - 7380 - - - - - - 221 21 - - 7381 - - - - - - 227 27 - - 7382 - - - - - - 233 33 - - 7383 - - - - - - 239 39 - - 7384 - - - - - - 245 45 - - 7385 - - - - - - 251 51 - - 7386 - - - - - - 257 57 - - 7387 - - - - - - 263 63 - - 7388 - - - - - - 269 69 - - 7389 - - - - - - 275 75 - - 7390 - - - - - - 281 81 - - 7391 - - - - - - 287 87 - - 7392 - - - - - - 293 93 - - 7393 - - - - - - - - 300 0 7394 - - - - - - - - 305 5 7395 - - - - - - - - 315 15 7396 - - - - - - - - 325 25 7397 - - - - - - - - 335 35 7398 - - - - - - - - 345 45 7399 - - - - - - - - 355 55 7400 - - - - - - - - 365 65 7401 - - - - - - - - 375 75 7402 - - - - - - - - 385 85 7403 - - - - - - - - 395 95 7404} 7405do_execsql_test joinD-284 { 7406 SELECT t1.*, t2.*, t3.*, t4.* 7407 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 7408 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7409 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 7410 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7411} { 7412 2 102 202 302 102 2 - - - - 7413 4 104 204 304 104 4 - - - - 7414 6 106 206 306 106 6 206 6 - - 7415 8 108 208 308 108 8 - - - - 7416 10 110 210 310 110 10 - - 310 10 7417 12 112 212 312 112 12 212 12 - - 7418 14 114 214 314 114 14 - - - - 7419 16 116 216 316 116 16 - - - - 7420 18 118 218 318 118 18 218 18 - - 7421 20 120 220 320 120 20 - - 320 20 7422 22 122 222 322 122 22 - - - - 7423 24 124 224 324 124 24 224 24 - - 7424 26 126 226 326 126 26 - - - - 7425 28 128 228 328 128 28 - - - - 7426 30 130 230 330 130 30 230 30 330 30 7427 32 132 232 332 132 32 - - - - 7428 34 134 234 334 134 34 - - - - 7429 36 136 236 336 136 36 236 36 - - 7430 38 138 238 338 138 38 - - - - 7431 40 140 240 340 140 40 - - 340 40 7432 42 142 242 342 142 42 242 42 - - 7433 44 144 244 344 144 44 - - - - 7434 46 146 246 346 146 46 - - - - 7435 48 148 248 348 148 48 248 48 - - 7436 50 150 250 350 150 50 - - 350 50 7437 52 152 252 352 152 52 - - - - 7438 54 154 254 354 154 54 254 54 - - 7439 56 156 256 356 156 56 - - - - 7440 58 158 258 358 158 58 - - - - 7441 60 160 260 360 160 60 260 60 360 60 7442 62 162 262 362 162 62 - - - - 7443 64 164 264 364 164 64 - - - - 7444 66 166 266 366 166 66 266 66 - - 7445 68 168 268 368 168 68 - - - - 7446 70 170 270 370 170 70 - - 370 70 7447 72 172 272 372 172 72 272 72 - - 7448 74 174 274 374 174 74 - - - - 7449 76 176 276 376 176 76 - - - - 7450 78 178 278 378 178 78 278 78 - - 7451 80 180 280 380 180 80 - - 380 80 7452 82 182 282 382 182 82 - - - - 7453 84 184 284 384 184 84 284 84 - - 7454 86 186 286 386 186 86 - - - - 7455 88 188 288 388 188 88 - - - - 7456 90 190 290 390 190 90 290 90 390 90 7457 92 192 292 392 192 92 - - - - 7458 94 194 294 394 194 94 - - - - 7459 - - - - - - 200 0 - - 7460 - - - - - - 203 3 - - 7461 - - - - - - 209 9 - - 7462 - - - - - - 215 15 - - 7463 - - - - - - 221 21 - - 7464 - - - - - - 227 27 - - 7465 - - - - - - 233 33 - - 7466 - - - - - - 239 39 - - 7467 - - - - - - 245 45 - - 7468 - - - - - - 251 51 - - 7469 - - - - - - 257 57 - - 7470 - - - - - - 263 63 - - 7471 - - - - - - 269 69 - - 7472 - - - - - - 275 75 - - 7473 - - - - - - 281 81 - - 7474 - - - - - - 287 87 - - 7475 - - - - - - 293 93 - - 7476 - - - - - - - - 300 0 7477 - - - - - - - - 305 5 7478 - - - - - - - - 315 15 7479 - - - - - - - - 325 25 7480 - - - - - - - - 335 35 7481 - - - - - - - - 345 45 7482 - - - - - - - - 355 55 7483 - - - - - - - - 365 65 7484 - - - - - - - - 375 75 7485 - - - - - - - - 385 85 7486 - - - - - - - - 395 95 7487} 7488do_execsql_test joinD-285 { 7489 SELECT t1.*, t2.*, t3.*, t4.* 7490 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7491 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7492 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 7493 WHERE t2.x>0 7494 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7495} { 7496 2 102 202 302 102 2 - - - - 7497 4 104 204 304 104 4 - - - - 7498 6 106 206 306 106 6 206 6 - - 7499 8 108 208 308 108 8 - - - - 7500 10 110 210 310 110 10 - - 310 10 7501 12 112 212 312 112 12 212 12 - - 7502 14 114 214 314 114 14 - - - - 7503 16 116 216 316 116 16 - - - - 7504 18 118 218 318 118 18 218 18 - - 7505 20 120 220 320 120 20 - - 320 20 7506 22 122 222 322 122 22 - - - - 7507 24 124 224 324 124 24 224 24 - - 7508 26 126 226 326 126 26 - - - - 7509 28 128 228 328 128 28 - - - - 7510 30 130 230 330 130 30 230 30 330 30 7511 32 132 232 332 132 32 - - - - 7512 34 134 234 334 134 34 - - - - 7513 36 136 236 336 136 36 236 36 - - 7514 38 138 238 338 138 38 - - - - 7515 40 140 240 340 140 40 - - 340 40 7516 42 142 242 342 142 42 242 42 - - 7517 44 144 244 344 144 44 - - - - 7518 46 146 246 346 146 46 - - - - 7519 48 148 248 348 148 48 248 48 - - 7520 50 150 250 350 150 50 - - 350 50 7521 52 152 252 352 152 52 - - - - 7522 54 154 254 354 154 54 254 54 - - 7523 56 156 256 356 156 56 - - - - 7524 58 158 258 358 158 58 - - - - 7525 60 160 260 360 160 60 260 60 360 60 7526 62 162 262 362 162 62 - - - - 7527 64 164 264 364 164 64 - - - - 7528 66 166 266 366 166 66 266 66 - - 7529 68 168 268 368 168 68 - - - - 7530 70 170 270 370 170 70 - - 370 70 7531 72 172 272 372 172 72 272 72 - - 7532 74 174 274 374 174 74 - - - - 7533 76 176 276 376 176 76 - - - - 7534 78 178 278 378 178 78 278 78 - - 7535 80 180 280 380 180 80 - - 380 80 7536 82 182 282 382 182 82 - - - - 7537 84 184 284 384 184 84 284 84 - - 7538 86 186 286 386 186 86 - - - - 7539 88 188 288 388 188 88 - - - - 7540 90 190 290 390 190 90 290 90 390 90 7541 92 192 292 392 192 92 - - - - 7542 94 194 294 394 194 94 - - - - 7543} 7544do_execsql_test joinD-286 { 7545 SELECT t1.*, t2.*, t3.*, t4.* 7546 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7547 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7548 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 7549 WHERE (t2.x>0 OR t2.x IS NULL) 7550 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7551} { 7552 2 102 202 302 102 2 - - - - 7553 4 104 204 304 104 4 - - - - 7554 6 106 206 306 106 6 206 6 - - 7555 8 108 208 308 108 8 - - - - 7556 10 110 210 310 110 10 - - 310 10 7557 12 112 212 312 112 12 212 12 - - 7558 14 114 214 314 114 14 - - - - 7559 16 116 216 316 116 16 - - - - 7560 18 118 218 318 118 18 218 18 - - 7561 20 120 220 320 120 20 - - 320 20 7562 22 122 222 322 122 22 - - - - 7563 24 124 224 324 124 24 224 24 - - 7564 26 126 226 326 126 26 - - - - 7565 28 128 228 328 128 28 - - - - 7566 30 130 230 330 130 30 230 30 330 30 7567 32 132 232 332 132 32 - - - - 7568 34 134 234 334 134 34 - - - - 7569 36 136 236 336 136 36 236 36 - - 7570 38 138 238 338 138 38 - - - - 7571 40 140 240 340 140 40 - - 340 40 7572 42 142 242 342 142 42 242 42 - - 7573 44 144 244 344 144 44 - - - - 7574 46 146 246 346 146 46 - - - - 7575 48 148 248 348 148 48 248 48 - - 7576 50 150 250 350 150 50 - - 350 50 7577 52 152 252 352 152 52 - - - - 7578 54 154 254 354 154 54 254 54 - - 7579 56 156 256 356 156 56 - - - - 7580 58 158 258 358 158 58 - - - - 7581 60 160 260 360 160 60 260 60 360 60 7582 62 162 262 362 162 62 - - - - 7583 64 164 264 364 164 64 - - - - 7584 66 166 266 366 166 66 266 66 - - 7585 68 168 268 368 168 68 - - - - 7586 70 170 270 370 170 70 - - 370 70 7587 72 172 272 372 172 72 272 72 - - 7588 74 174 274 374 174 74 - - - - 7589 76 176 276 376 176 76 - - - - 7590 78 178 278 378 178 78 278 78 - - 7591 80 180 280 380 180 80 - - 380 80 7592 82 182 282 382 182 82 - - - - 7593 84 184 284 384 184 84 284 84 - - 7594 86 186 286 386 186 86 - - - - 7595 88 188 288 388 188 88 - - - - 7596 90 190 290 390 190 90 290 90 390 90 7597 92 192 292 392 192 92 - - - - 7598 94 194 294 394 194 94 - - - - 7599 - - - - - - 200 0 - - 7600 - - - - - - 203 3 - - 7601 - - - - - - 209 9 - - 7602 - - - - - - 215 15 - - 7603 - - - - - - 221 21 - - 7604 - - - - - - 227 27 - - 7605 - - - - - - 233 33 - - 7606 - - - - - - 239 39 - - 7607 - - - - - - 245 45 - - 7608 - - - - - - 251 51 - - 7609 - - - - - - 257 57 - - 7610 - - - - - - 263 63 - - 7611 - - - - - - 269 69 - - 7612 - - - - - - 275 75 - - 7613 - - - - - - 281 81 - - 7614 - - - - - - 287 87 - - 7615 - - - - - - 293 93 - - 7616 - - - - - - - - 300 0 7617 - - - - - - - - 305 5 7618 - - - - - - - - 315 15 7619 - - - - - - - - 325 25 7620 - - - - - - - - 335 35 7621 - - - - - - - - 345 45 7622 - - - - - - - - 355 55 7623 - - - - - - - - 365 65 7624 - - - - - - - - 375 75 7625 - - - - - - - - 385 85 7626 - - - - - - - - 395 95 7627} 7628do_execsql_test joinD-287 { 7629 SELECT t1.*, t2.*, t3.*, t4.* 7630 FROM t1 INNER JOIN t2 ON true 7631 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7632 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 7633 WHERE t1.b=t2.b AND t2.x>0 7634 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7635} { 7636 2 102 202 302 102 2 - - - - 7637 4 104 204 304 104 4 - - - - 7638 6 106 206 306 106 6 206 6 - - 7639 8 108 208 308 108 8 - - - - 7640 10 110 210 310 110 10 - - 310 10 7641 12 112 212 312 112 12 212 12 - - 7642 14 114 214 314 114 14 - - - - 7643 16 116 216 316 116 16 - - - - 7644 18 118 218 318 118 18 218 18 - - 7645 20 120 220 320 120 20 - - 320 20 7646 22 122 222 322 122 22 - - - - 7647 24 124 224 324 124 24 224 24 - - 7648 26 126 226 326 126 26 - - - - 7649 28 128 228 328 128 28 - - - - 7650 30 130 230 330 130 30 230 30 330 30 7651 32 132 232 332 132 32 - - - - 7652 34 134 234 334 134 34 - - - - 7653 36 136 236 336 136 36 236 36 - - 7654 38 138 238 338 138 38 - - - - 7655 40 140 240 340 140 40 - - 340 40 7656 42 142 242 342 142 42 242 42 - - 7657 44 144 244 344 144 44 - - - - 7658 46 146 246 346 146 46 - - - - 7659 48 148 248 348 148 48 248 48 - - 7660 50 150 250 350 150 50 - - 350 50 7661 52 152 252 352 152 52 - - - - 7662 54 154 254 354 154 54 254 54 - - 7663 56 156 256 356 156 56 - - - - 7664 58 158 258 358 158 58 - - - - 7665 60 160 260 360 160 60 260 60 360 60 7666 62 162 262 362 162 62 - - - - 7667 64 164 264 364 164 64 - - - - 7668 66 166 266 366 166 66 266 66 - - 7669 68 168 268 368 168 68 - - - - 7670 70 170 270 370 170 70 - - 370 70 7671 72 172 272 372 172 72 272 72 - - 7672 74 174 274 374 174 74 - - - - 7673 76 176 276 376 176 76 - - - - 7674 78 178 278 378 178 78 278 78 - - 7675 80 180 280 380 180 80 - - 380 80 7676 82 182 282 382 182 82 - - - - 7677 84 184 284 384 184 84 284 84 - - 7678 86 186 286 386 186 86 - - - - 7679 88 188 288 388 188 88 - - - - 7680 90 190 290 390 190 90 290 90 390 90 7681 92 192 292 392 192 92 - - - - 7682 94 194 294 394 194 94 - - - - 7683} 7684do_execsql_test joinD-288 { 7685 SELECT t1.*, t2.*, t3.*, t4.* 7686 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7687 FULL JOIN t3 ON t1.c=t3.c 7688 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 7689 WHERE t3.y>0 7690 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7691} { 7692 6 106 206 306 106 6 206 6 - - 7693 12 112 212 312 112 12 212 12 - - 7694 18 118 218 318 118 18 218 18 - - 7695 24 124 224 324 124 24 224 24 - - 7696 30 130 230 330 130 30 230 30 330 30 7697 36 136 236 336 136 36 236 36 - - 7698 42 142 242 342 142 42 242 42 - - 7699 48 148 248 348 148 48 248 48 - - 7700 54 154 254 354 154 54 254 54 - - 7701 60 160 260 360 160 60 260 60 360 60 7702 66 166 266 366 166 66 266 66 - - 7703 72 172 272 372 172 72 272 72 - - 7704 78 178 278 378 178 78 278 78 - - 7705 84 184 284 384 184 84 284 84 - - 7706 90 190 290 390 190 90 290 90 390 90 7707 - - - - - - 203 3 - - 7708 - - - - - - 209 9 - - 7709 - - - - - - 215 15 - - 7710 - - - - - - 221 21 - - 7711 - - - - - - 227 27 - - 7712 - - - - - - 233 33 - - 7713 - - - - - - 239 39 - - 7714 - - - - - - 245 45 - - 7715 - - - - - - 251 51 - - 7716 - - - - - - 257 57 - - 7717 - - - - - - 263 63 - - 7718 - - - - - - 269 69 - - 7719 - - - - - - 275 75 - - 7720 - - - - - - 281 81 - - 7721 - - - - - - 287 87 - - 7722 - - - - - - 293 93 - - 7723} 7724do_execsql_test joinD-289 { 7725 SELECT t1.*, t2.*, t3.*, t4.* 7726 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7727 FULL JOIN t3 ON t1.c=t3.c 7728 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 7729 WHERE t3.y>0 OR t3.y IS NULL 7730 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7731} { 7732 2 102 202 302 102 2 - - - - 7733 4 104 204 304 104 4 - - - - 7734 6 106 206 306 106 6 206 6 - - 7735 8 108 208 308 108 8 - - - - 7736 10 110 210 310 110 10 - - 310 10 7737 12 112 212 312 112 12 212 12 - - 7738 14 114 214 314 114 14 - - - - 7739 16 116 216 316 116 16 - - - - 7740 18 118 218 318 118 18 218 18 - - 7741 20 120 220 320 120 20 - - 320 20 7742 22 122 222 322 122 22 - - - - 7743 24 124 224 324 124 24 224 24 - - 7744 26 126 226 326 126 26 - - - - 7745 28 128 228 328 128 28 - - - - 7746 30 130 230 330 130 30 230 30 330 30 7747 32 132 232 332 132 32 - - - - 7748 34 134 234 334 134 34 - - - - 7749 36 136 236 336 136 36 236 36 - - 7750 38 138 238 338 138 38 - - - - 7751 40 140 240 340 140 40 - - 340 40 7752 42 142 242 342 142 42 242 42 - - 7753 44 144 244 344 144 44 - - - - 7754 46 146 246 346 146 46 - - - - 7755 48 148 248 348 148 48 248 48 - - 7756 50 150 250 350 150 50 - - 350 50 7757 52 152 252 352 152 52 - - - - 7758 54 154 254 354 154 54 254 54 - - 7759 56 156 256 356 156 56 - - - - 7760 58 158 258 358 158 58 - - - - 7761 60 160 260 360 160 60 260 60 360 60 7762 62 162 262 362 162 62 - - - - 7763 64 164 264 364 164 64 - - - - 7764 66 166 266 366 166 66 266 66 - - 7765 68 168 268 368 168 68 - - - - 7766 70 170 270 370 170 70 - - 370 70 7767 72 172 272 372 172 72 272 72 - - 7768 74 174 274 374 174 74 - - - - 7769 76 176 276 376 176 76 - - - - 7770 78 178 278 378 178 78 278 78 - - 7771 80 180 280 380 180 80 - - 380 80 7772 82 182 282 382 182 82 - - - - 7773 84 184 284 384 184 84 284 84 - - 7774 86 186 286 386 186 86 - - - - 7775 88 188 288 388 188 88 - - - - 7776 90 190 290 390 190 90 290 90 390 90 7777 92 192 292 392 192 92 - - - - 7778 94 194 294 394 194 94 - - - - 7779 - - - - - - 203 3 - - 7780 - - - - - - 209 9 - - 7781 - - - - - - 215 15 - - 7782 - - - - - - 221 21 - - 7783 - - - - - - 227 27 - - 7784 - - - - - - 233 33 - - 7785 - - - - - - 239 39 - - 7786 - - - - - - 245 45 - - 7787 - - - - - - 251 51 - - 7788 - - - - - - 257 57 - - 7789 - - - - - - 263 63 - - 7790 - - - - - - 269 69 - - 7791 - - - - - - 275 75 - - 7792 - - - - - - 281 81 - - 7793 - - - - - - 287 87 - - 7794 - - - - - - 293 93 - - 7795 - - - - - - - - 300 0 7796 - - - - - - - - 305 5 7797 - - - - - - - - 315 15 7798 - - - - - - - - 325 25 7799 - - - - - - - - 335 35 7800 - - - - - - - - 345 45 7801 - - - - - - - - 355 55 7802 - - - - - - - - 365 65 7803 - - - - - - - - 375 75 7804 - - - - - - - - 385 85 7805 - - - - - - - - 395 95 7806} 7807do_execsql_test joinD-290 { 7808 SELECT t1.*, t2.*, t3.*, t4.* 7809 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7810 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7811 FULL JOIN t4 ON t1.d=t4.d 7812 WHERE t4.z>0 7813 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7814} { 7815 10 110 210 310 110 10 - - 310 10 7816 20 120 220 320 120 20 - - 320 20 7817 30 130 230 330 130 30 230 30 330 30 7818 40 140 240 340 140 40 - - 340 40 7819 50 150 250 350 150 50 - - 350 50 7820 60 160 260 360 160 60 260 60 360 60 7821 70 170 270 370 170 70 - - 370 70 7822 80 180 280 380 180 80 - - 380 80 7823 90 190 290 390 190 90 290 90 390 90 7824 - - - - - - - - 305 5 7825 - - - - - - - - 315 15 7826 - - - - - - - - 325 25 7827 - - - - - - - - 335 35 7828 - - - - - - - - 345 45 7829 - - - - - - - - 355 55 7830 - - - - - - - - 365 65 7831 - - - - - - - - 375 75 7832 - - - - - - - - 385 85 7833 - - - - - - - - 395 95 7834} 7835do_execsql_test joinD-291 { 7836 SELECT t1.*, t2.*, t3.*, t4.* 7837 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7838 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7839 FULL JOIN t4 ON t1.d=t4.d 7840 WHERE t4.z IS NULL OR t4.z>0 7841 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7842} { 7843 2 102 202 302 102 2 - - - - 7844 4 104 204 304 104 4 - - - - 7845 6 106 206 306 106 6 206 6 - - 7846 8 108 208 308 108 8 - - - - 7847 10 110 210 310 110 10 - - 310 10 7848 12 112 212 312 112 12 212 12 - - 7849 14 114 214 314 114 14 - - - - 7850 16 116 216 316 116 16 - - - - 7851 18 118 218 318 118 18 218 18 - - 7852 20 120 220 320 120 20 - - 320 20 7853 22 122 222 322 122 22 - - - - 7854 24 124 224 324 124 24 224 24 - - 7855 26 126 226 326 126 26 - - - - 7856 28 128 228 328 128 28 - - - - 7857 30 130 230 330 130 30 230 30 330 30 7858 32 132 232 332 132 32 - - - - 7859 34 134 234 334 134 34 - - - - 7860 36 136 236 336 136 36 236 36 - - 7861 38 138 238 338 138 38 - - - - 7862 40 140 240 340 140 40 - - 340 40 7863 42 142 242 342 142 42 242 42 - - 7864 44 144 244 344 144 44 - - - - 7865 46 146 246 346 146 46 - - - - 7866 48 148 248 348 148 48 248 48 - - 7867 50 150 250 350 150 50 - - 350 50 7868 52 152 252 352 152 52 - - - - 7869 54 154 254 354 154 54 254 54 - - 7870 56 156 256 356 156 56 - - - - 7871 58 158 258 358 158 58 - - - - 7872 60 160 260 360 160 60 260 60 360 60 7873 62 162 262 362 162 62 - - - - 7874 64 164 264 364 164 64 - - - - 7875 66 166 266 366 166 66 266 66 - - 7876 68 168 268 368 168 68 - - - - 7877 70 170 270 370 170 70 - - 370 70 7878 72 172 272 372 172 72 272 72 - - 7879 74 174 274 374 174 74 - - - - 7880 76 176 276 376 176 76 - - - - 7881 78 178 278 378 178 78 278 78 - - 7882 80 180 280 380 180 80 - - 380 80 7883 82 182 282 382 182 82 - - - - 7884 84 184 284 384 184 84 284 84 - - 7885 86 186 286 386 186 86 - - - - 7886 88 188 288 388 188 88 - - - - 7887 90 190 290 390 190 90 290 90 390 90 7888 92 192 292 392 192 92 - - - - 7889 94 194 294 394 194 94 - - - - 7890 - - - - - - 200 0 - - 7891 - - - - - - 203 3 - - 7892 - - - - - - 209 9 - - 7893 - - - - - - 215 15 - - 7894 - - - - - - 221 21 - - 7895 - - - - - - 227 27 - - 7896 - - - - - - 233 33 - - 7897 - - - - - - 239 39 - - 7898 - - - - - - 245 45 - - 7899 - - - - - - 251 51 - - 7900 - - - - - - 257 57 - - 7901 - - - - - - 263 63 - - 7902 - - - - - - 269 69 - - 7903 - - - - - - 275 75 - - 7904 - - - - - - 281 81 - - 7905 - - - - - - 287 87 - - 7906 - - - - - - 293 93 - - 7907 - - - - - - - - 305 5 7908 - - - - - - - - 315 15 7909 - - - - - - - - 325 25 7910 - - - - - - - - 335 35 7911 - - - - - - - - 345 45 7912 - - - - - - - - 355 55 7913 - - - - - - - - 365 65 7914 - - - - - - - - 375 75 7915 - - - - - - - - 385 85 7916 - - - - - - - - 395 95 7917} 7918do_execsql_test joinD-292 { 7919 SELECT t1.*, t2.*, t3.*, t4.* 7920 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7921 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 7922 FULL JOIN t4 ON t1.d=t4.d 7923 WHERE t2.x>0 AND t4.z>0 7924 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7925} { 7926 10 110 210 310 110 10 - - 310 10 7927 20 120 220 320 120 20 - - 320 20 7928 30 130 230 330 130 30 230 30 330 30 7929 40 140 240 340 140 40 - - 340 40 7930 50 150 250 350 150 50 - - 350 50 7931 60 160 260 360 160 60 260 60 360 60 7932 70 170 270 370 170 70 - - 370 70 7933 80 180 280 380 180 80 - - 380 80 7934 90 190 290 390 190 90 290 90 390 90 7935} 7936do_execsql_test joinD-293 { 7937 SELECT t1.*, t2.*, t3.*, t4.* 7938 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 7939 FULL JOIN t3 ON t1.c=t3.c 7940 FULL JOIN t4 ON t1.d=t4.d 7941 WHERE t4.z>0 AND t3.y>0 7942 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7943} { 7944 30 130 230 330 130 30 230 30 330 30 7945 60 160 260 360 160 60 260 60 360 60 7946 90 190 290 390 190 90 290 90 390 90 7947} 7948do_execsql_test joinD-294 { 7949 SELECT t1.*, t2.*, t3.*, t4.* 7950 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7951 FULL JOIN t3 ON t1.c=t3.c 7952 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 7953 WHERE t2.x>0 AND t3.y>0 7954 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7955} { 7956 6 106 206 306 106 6 206 6 - - 7957 12 112 212 312 112 12 212 12 - - 7958 18 118 218 318 118 18 218 18 - - 7959 24 124 224 324 124 24 224 24 - - 7960 30 130 230 330 130 30 230 30 330 30 7961 36 136 236 336 136 36 236 36 - - 7962 42 142 242 342 142 42 242 42 - - 7963 48 148 248 348 148 48 248 48 - - 7964 54 154 254 354 154 54 254 54 - - 7965 60 160 260 360 160 60 260 60 360 60 7966 66 166 266 366 166 66 266 66 - - 7967 72 172 272 372 172 72 272 72 - - 7968 78 178 278 378 178 78 278 78 - - 7969 84 184 284 384 184 84 284 84 - - 7970 90 190 290 390 190 90 290 90 390 90 7971} 7972do_execsql_test joinD-295 { 7973 SELECT t1.*, t2.*, t3.*, t4.* 7974 FROM t1 INNER JOIN t2 ON t1.b=t2.b 7975 FULL JOIN t3 ON t1.c=t3.c 7976 FULL JOIN t4 ON t1.d=t4.d 7977 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 7978 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7979} { 7980 30 130 230 330 130 30 230 30 330 30 7981 60 160 260 360 160 60 260 60 360 60 7982 90 190 290 390 190 90 290 90 390 90 7983} 7984do_execsql_test joinD-296 { 7985 SELECT t1.*, t2.*, t3.*, t4.* 7986 FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 7987 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 7988 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 7989 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 7990} { 7991 2 102 202 302 102 2 - - - - 7992 4 104 204 304 104 4 - - - - 7993 6 106 206 306 106 6 206 6 - - 7994 8 108 208 308 108 8 - - - - 7995 10 110 210 310 110 10 - - 310 10 7996 12 112 212 312 112 12 212 12 - - 7997 14 114 214 314 114 14 - - - - 7998 16 116 216 316 116 16 - - - - 7999 18 118 218 318 118 18 218 18 - - 8000 20 120 220 320 120 20 - - 320 20 8001 22 122 222 322 122 22 - - - - 8002 24 124 224 324 124 24 224 24 - - 8003 26 126 226 326 126 26 - - - - 8004 28 128 228 328 128 28 - - - - 8005 30 130 230 330 130 30 230 30 330 30 8006 32 132 232 332 132 32 - - - - 8007 34 134 234 334 134 34 - - - - 8008 36 136 236 336 136 36 236 36 - - 8009 38 138 238 338 138 38 - - - - 8010 40 140 240 340 140 40 - - 340 40 8011 42 142 242 342 142 42 242 42 - - 8012 44 144 244 344 144 44 - - - - 8013 46 146 246 346 146 46 - - - - 8014 48 148 248 348 148 48 248 48 - - 8015 50 150 250 350 150 50 - - 350 50 8016 52 152 252 352 152 52 - - - - 8017 54 154 254 354 154 54 254 54 - - 8018 56 156 256 356 156 56 - - - - 8019 58 158 258 358 158 58 - - - - 8020 60 160 260 360 160 60 260 60 360 60 8021 62 162 262 362 162 62 - - - - 8022 64 164 264 364 164 64 - - - - 8023 66 166 266 366 166 66 266 66 - - 8024 68 168 268 368 168 68 - - - - 8025 70 170 270 370 170 70 - - 370 70 8026 72 172 272 372 172 72 272 72 - - 8027 74 174 274 374 174 74 - - - - 8028 76 176 276 376 176 76 - - - - 8029 78 178 278 378 178 78 278 78 - - 8030 80 180 280 380 180 80 - - 380 80 8031 82 182 282 382 182 82 - - - - 8032 84 184 284 384 184 84 284 84 - - 8033 86 186 286 386 186 86 - - - - 8034 88 188 288 388 188 88 - - - - 8035 90 190 290 390 190 90 290 90 390 90 8036 92 192 292 392 192 92 - - - - 8037 94 194 294 394 194 94 - - - - 8038 - - - - - - 200 0 - - 8039 - - - - - - 203 3 - - 8040 - - - - - - 209 9 - - 8041 - - - - - - 215 15 - - 8042 - - - - - - 221 21 - - 8043 - - - - - - 227 27 - - 8044 - - - - - - 233 33 - - 8045 - - - - - - 239 39 - - 8046 - - - - - - 245 45 - - 8047 - - - - - - 251 51 - - 8048 - - - - - - 257 57 - - 8049 - - - - - - 263 63 - - 8050 - - - - - - 269 69 - - 8051 - - - - - - 275 75 - - 8052 - - - - - - 281 81 - - 8053 - - - - - - 287 87 - - 8054 - - - - - - 293 93 - - 8055 - - - - - - - - 300 0 8056 - - - - - - - - 305 5 8057 - - - - - - - - 315 15 8058 - - - - - - - - 325 25 8059 - - - - - - - - 335 35 8060 - - - - - - - - 345 45 8061 - - - - - - - - 355 55 8062 - - - - - - - - 365 65 8063 - - - - - - - - 375 75 8064 - - - - - - - - 385 85 8065 - - - - - - - - 395 95 8066} 8067do_execsql_test joinD-297 { 8068 SELECT t1.*, t2.*, t3.*, t4.* 8069 FROM t1 INNER JOIN t2 ON t2.x>0 8070 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 8071 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 8072 WHERE t1.b IS NOT DISTINCT FROM t2.b 8073 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8074} { 8075 2 102 202 302 102 2 - - - - 8076 4 104 204 304 104 4 - - - - 8077 6 106 206 306 106 6 206 6 - - 8078 8 108 208 308 108 8 - - - - 8079 10 110 210 310 110 10 - - 310 10 8080 12 112 212 312 112 12 212 12 - - 8081 14 114 214 314 114 14 - - - - 8082 16 116 216 316 116 16 - - - - 8083 18 118 218 318 118 18 218 18 - - 8084 20 120 220 320 120 20 - - 320 20 8085 22 122 222 322 122 22 - - - - 8086 24 124 224 324 124 24 224 24 - - 8087 26 126 226 326 126 26 - - - - 8088 28 128 228 328 128 28 - - - - 8089 30 130 230 330 130 30 230 30 330 30 8090 32 132 232 332 132 32 - - - - 8091 34 134 234 334 134 34 - - - - 8092 36 136 236 336 136 36 236 36 - - 8093 38 138 238 338 138 38 - - - - 8094 40 140 240 340 140 40 - - 340 40 8095 42 142 242 342 142 42 242 42 - - 8096 44 144 244 344 144 44 - - - - 8097 46 146 246 346 146 46 - - - - 8098 48 148 248 348 148 48 248 48 - - 8099 50 150 250 350 150 50 - - 350 50 8100 52 152 252 352 152 52 - - - - 8101 54 154 254 354 154 54 254 54 - - 8102 56 156 256 356 156 56 - - - - 8103 58 158 258 358 158 58 - - - - 8104 60 160 260 360 160 60 260 60 360 60 8105 62 162 262 362 162 62 - - - - 8106 64 164 264 364 164 64 - - - - 8107 66 166 266 366 166 66 266 66 - - 8108 68 168 268 368 168 68 - - - - 8109 70 170 270 370 170 70 - - 370 70 8110 72 172 272 372 172 72 272 72 - - 8111 74 174 274 374 174 74 - - - - 8112 76 176 276 376 176 76 - - - - 8113 78 178 278 378 178 78 278 78 - - 8114 80 180 280 380 180 80 - - 380 80 8115 82 182 282 382 182 82 - - - - 8116 84 184 284 384 184 84 284 84 - - 8117 86 186 286 386 186 86 - - - - 8118 88 188 288 388 188 88 - - - - 8119 90 190 290 390 190 90 290 90 390 90 8120 92 192 292 392 192 92 - - - - 8121 94 194 294 394 194 94 - - - - 8122 - - - - - - 200 0 - - 8123 - - - - - - - - 300 0 8124} 8125do_execsql_test joinD-298 { 8126 SELECT t1.*, t2.*, t3.*, t4.* 8127 FROM t1 INNER JOIN t2 ON t2.x>0 8128 FULL JOIN t3 ON t3.y>0 8129 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 8130 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 8131 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8132} { 8133 6 106 206 306 106 6 206 6 - - 8134 12 112 212 312 112 12 212 12 - - 8135 18 118 218 318 118 18 218 18 - - 8136 24 124 224 324 124 24 224 24 - - 8137 30 130 230 330 130 30 230 30 330 30 8138 36 136 236 336 136 36 236 36 - - 8139 42 142 242 342 142 42 242 42 - - 8140 48 148 248 348 148 48 248 48 - - 8141 54 154 254 354 154 54 254 54 - - 8142 60 160 260 360 160 60 260 60 360 60 8143 66 166 266 366 166 66 266 66 - - 8144 72 172 272 372 172 72 272 72 - - 8145 78 178 278 378 178 78 278 78 - - 8146 84 184 284 384 184 84 284 84 - - 8147 90 190 290 390 190 90 290 90 390 90 8148} 8149do_execsql_test joinD-299 { 8150 SELECT t1.*, t2.*, t3.*, t4.* 8151 FROM t1 INNER JOIN t2 ON t2.x>0 8152 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 8153 FULL JOIN t4 ON t4.z>0 8154 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 8155 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8156} { 8157 10 110 210 310 110 10 - - 310 10 8158 20 120 220 320 120 20 - - 320 20 8159 30 130 230 330 130 30 230 30 330 30 8160 40 140 240 340 140 40 - - 340 40 8161 50 150 250 350 150 50 - - 350 50 8162 60 160 260 360 160 60 260 60 360 60 8163 70 170 270 370 170 70 - - 370 70 8164 80 180 280 380 180 80 - - 380 80 8165 90 190 290 390 190 90 290 90 390 90 8166} 8167do_execsql_test joinD-300 { 8168 SELECT t1.*, t2.*, t3.*, t4.* 8169 FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 8170 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 8171 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 8172 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8173} { 8174 2 102 202 302 102 2 - - - - 8175 4 104 204 304 104 4 - - - - 8176 6 106 206 306 106 6 206 6 - - 8177 8 108 208 308 108 8 - - - - 8178 10 110 210 310 110 10 - - 310 10 8179 12 112 212 312 112 12 212 12 - - 8180 14 114 214 314 114 14 - - - - 8181 16 116 216 316 116 16 - - - - 8182 18 118 218 318 118 18 218 18 - - 8183 20 120 220 320 120 20 - - 320 20 8184 22 122 222 322 122 22 - - - - 8185 24 124 224 324 124 24 224 24 - - 8186 26 126 226 326 126 26 - - - - 8187 28 128 228 328 128 28 - - - - 8188 30 130 230 330 130 30 230 30 330 30 8189 32 132 232 332 132 32 - - - - 8190 34 134 234 334 134 34 - - - - 8191 36 136 236 336 136 36 236 36 - - 8192 38 138 238 338 138 38 - - - - 8193 40 140 240 340 140 40 - - 340 40 8194 42 142 242 342 142 42 242 42 - - 8195 44 144 244 344 144 44 - - - - 8196 46 146 246 346 146 46 - - - - 8197 48 148 248 348 148 48 248 48 - - 8198 50 150 250 350 150 50 - - 350 50 8199 52 152 252 352 152 52 - - - - 8200 54 154 254 354 154 54 254 54 - - 8201 56 156 256 356 156 56 - - - - 8202 58 158 258 358 158 58 - - - - 8203 60 160 260 360 160 60 260 60 360 60 8204 62 162 262 362 162 62 - - - - 8205 64 164 264 364 164 64 - - - - 8206 66 166 266 366 166 66 266 66 - - 8207 68 168 268 368 168 68 - - - - 8208 70 170 270 370 170 70 - - 370 70 8209 72 172 272 372 172 72 272 72 - - 8210 74 174 274 374 174 74 - - - - 8211 76 176 276 376 176 76 - - - - 8212 78 178 278 378 178 78 278 78 - - 8213 80 180 280 380 180 80 - - 380 80 8214 82 182 282 382 182 82 - - - - 8215 84 184 284 384 184 84 284 84 - - 8216 86 186 286 386 186 86 - - - - 8217 88 188 288 388 188 88 - - - - 8218 90 190 290 390 190 90 290 90 390 90 8219 92 192 292 392 192 92 - - - - 8220 94 194 294 394 194 94 - - - - 8221 - - - - - - 200 0 - - 8222 - - - - - - 203 3 - - 8223 - - - - - - 209 9 - - 8224 - - - - - - 215 15 - - 8225 - - - - - - 221 21 - - 8226 - - - - - - 227 27 - - 8227 - - - - - - 233 33 - - 8228 - - - - - - 239 39 - - 8229 - - - - - - 245 45 - - 8230 - - - - - - 251 51 - - 8231 - - - - - - 257 57 - - 8232 - - - - - - 263 63 - - 8233 - - - - - - 269 69 - - 8234 - - - - - - 275 75 - - 8235 - - - - - - 281 81 - - 8236 - - - - - - 287 87 - - 8237 - - - - - - 293 93 - - 8238 - - - - - - - - 300 0 8239 - - - - - - - - 305 5 8240 - - - - - - - - 315 15 8241 - - - - - - - - 325 25 8242 - - - - - - - - 335 35 8243 - - - - - - - - 345 45 8244 - - - - - - - - 355 55 8245 - - - - - - - - 365 65 8246 - - - - - - - - 375 75 8247 - - - - - - - - 385 85 8248 - - - - - - - - 395 95 8249} 8250do_execsql_test joinD-301 { 8251 SELECT t1.*, t2.*, t3.*, t4.* 8252 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8253 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8254 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8255 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8256} { 8257 15 115 215 315 - - 215 15 315 15 8258 30 130 230 330 130 30 230 30 330 30 8259 45 145 245 345 - - 245 45 345 45 8260 60 160 260 360 160 60 260 60 360 60 8261 75 175 275 375 - - 275 75 375 75 8262 90 190 290 390 190 90 290 90 390 90 8263} 8264do_execsql_test joinD-302 { 8265 SELECT t1.*, t2.*, t3.*, t4.* 8266 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 8267 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8268 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8269 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8270} { 8271 15 115 215 315 - - 215 15 315 15 8272 30 130 230 330 130 30 230 30 330 30 8273 45 145 245 345 - - 245 45 345 45 8274 60 160 260 360 160 60 260 60 360 60 8275 75 175 275 375 - - 275 75 375 75 8276 90 190 290 390 190 90 290 90 390 90 8277} 8278do_execsql_test joinD-303 { 8279 SELECT t1.*, t2.*, t3.*, t4.* 8280 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8281 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8282 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8283 WHERE t2.x>0 8284 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8285} { 8286 30 130 230 330 130 30 230 30 330 30 8287 60 160 260 360 160 60 260 60 360 60 8288 90 190 290 390 190 90 290 90 390 90 8289} 8290do_execsql_test joinD-304 { 8291 SELECT t1.*, t2.*, t3.*, t4.* 8292 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8293 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8294 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8295 WHERE (t2.x>0 OR t2.x IS NULL) 8296 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8297} { 8298 15 115 215 315 - - 215 15 315 15 8299 30 130 230 330 130 30 230 30 330 30 8300 45 145 245 345 - - 245 45 345 45 8301 60 160 260 360 160 60 260 60 360 60 8302 75 175 275 375 - - 275 75 375 75 8303 90 190 290 390 190 90 290 90 390 90 8304} 8305do_execsql_test joinD-305 { 8306 SELECT t1.*, t2.*, t3.*, t4.* 8307 FROM t1 LEFT JOIN t2 ON true 8308 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8309 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8310 WHERE t1.b=t2.b AND t2.x>0 8311 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8312} { 8313 30 130 230 330 130 30 230 30 330 30 8314 60 160 260 360 160 60 260 60 360 60 8315 90 190 290 390 190 90 290 90 390 90 8316} 8317do_execsql_test joinD-306 { 8318 SELECT t1.*, t2.*, t3.*, t4.* 8319 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8320 INNER JOIN t3 ON t1.c=t3.c 8321 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8322 WHERE t3.y>0 8323 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8324} { 8325 15 115 215 315 - - 215 15 315 15 8326 30 130 230 330 130 30 230 30 330 30 8327 45 145 245 345 - - 245 45 345 45 8328 60 160 260 360 160 60 260 60 360 60 8329 75 175 275 375 - - 275 75 375 75 8330 90 190 290 390 190 90 290 90 390 90 8331} 8332do_execsql_test joinD-307 { 8333 SELECT t1.*, t2.*, t3.*, t4.* 8334 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8335 INNER JOIN t3 ON t1.c=t3.c 8336 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8337 WHERE t3.y>0 OR t3.y IS NULL 8338 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8339} { 8340 15 115 215 315 - - 215 15 315 15 8341 30 130 230 330 130 30 230 30 330 30 8342 45 145 245 345 - - 245 45 345 45 8343 60 160 260 360 160 60 260 60 360 60 8344 75 175 275 375 - - 275 75 375 75 8345 90 190 290 390 190 90 290 90 390 90 8346} 8347do_execsql_test joinD-308 { 8348 SELECT t1.*, t2.*, t3.*, t4.* 8349 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8350 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8351 INNER JOIN t4 ON t1.d=t4.d 8352 WHERE t4.z>0 8353 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8354} { 8355 15 115 215 315 - - 215 15 315 15 8356 30 130 230 330 130 30 230 30 330 30 8357 45 145 245 345 - - 245 45 345 45 8358 60 160 260 360 160 60 260 60 360 60 8359 75 175 275 375 - - 275 75 375 75 8360 90 190 290 390 190 90 290 90 390 90 8361} 8362do_execsql_test joinD-309 { 8363 SELECT t1.*, t2.*, t3.*, t4.* 8364 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8365 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8366 INNER JOIN t4 ON t1.d=t4.d 8367 WHERE t4.z IS NULL OR t4.z>0 8368 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8369} { 8370 15 115 215 315 - - 215 15 315 15 8371 30 130 230 330 130 30 230 30 330 30 8372 45 145 245 345 - - 245 45 345 45 8373 60 160 260 360 160 60 260 60 360 60 8374 75 175 275 375 - - 275 75 375 75 8375 90 190 290 390 190 90 290 90 390 90 8376} 8377do_execsql_test joinD-310 { 8378 SELECT t1.*, t2.*, t3.*, t4.* 8379 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8380 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8381 INNER JOIN t4 ON t1.d=t4.d 8382 WHERE t2.x>0 AND t4.z>0 8383 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8384} { 8385 30 130 230 330 130 30 230 30 330 30 8386 60 160 260 360 160 60 260 60 360 60 8387 90 190 290 390 190 90 290 90 390 90 8388} 8389do_execsql_test joinD-311 { 8390 SELECT t1.*, t2.*, t3.*, t4.* 8391 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8392 INNER JOIN t3 ON t1.c=t3.c 8393 INNER JOIN t4 ON t1.d=t4.d 8394 WHERE t4.z>0 AND t3.y>0 8395 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8396} { 8397 15 115 215 315 - - 215 15 315 15 8398 30 130 230 330 130 30 230 30 330 30 8399 45 145 245 345 - - 245 45 345 45 8400 60 160 260 360 160 60 260 60 360 60 8401 75 175 275 375 - - 275 75 375 75 8402 90 190 290 390 190 90 290 90 390 90 8403} 8404do_execsql_test joinD-312 { 8405 SELECT t1.*, t2.*, t3.*, t4.* 8406 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8407 INNER JOIN t3 ON t1.c=t3.c 8408 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8409 WHERE t2.x>0 AND t3.y>0 8410 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8411} { 8412 30 130 230 330 130 30 230 30 330 30 8413 60 160 260 360 160 60 260 60 360 60 8414 90 190 290 390 190 90 290 90 390 90 8415} 8416do_execsql_test joinD-313 { 8417 SELECT t1.*, t2.*, t3.*, t4.* 8418 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8419 INNER JOIN t3 ON t1.c=t3.c 8420 INNER JOIN t4 ON t1.d=t4.d 8421 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 8422 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8423} { 8424 30 130 230 330 130 30 230 30 330 30 8425 60 160 260 360 160 60 260 60 360 60 8426 90 190 290 390 190 90 290 90 390 90 8427} 8428do_execsql_test joinD-314 { 8429 SELECT t1.*, t2.*, t3.*, t4.* 8430 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 8431 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 8432 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 8433 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8434} { 8435 15 115 215 315 - - 215 15 315 15 8436 30 130 230 330 130 30 230 30 330 30 8437 45 145 245 345 - - 245 45 345 45 8438 60 160 260 360 160 60 260 60 360 60 8439 75 175 275 375 - - 275 75 375 75 8440 90 190 290 390 190 90 290 90 390 90 8441} 8442do_execsql_test joinD-315 { 8443 SELECT t1.*, t2.*, t3.*, t4.* 8444 FROM t1 LEFT JOIN t2 ON t2.x>0 8445 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 8446 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 8447 WHERE t1.b IS NOT DISTINCT FROM t2.b 8448 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8449} { 8450 30 130 230 330 130 30 230 30 330 30 8451 60 160 260 360 160 60 260 60 360 60 8452 90 190 290 390 190 90 290 90 390 90 8453} 8454do_execsql_test joinD-316 { 8455 SELECT t1.*, t2.*, t3.*, t4.* 8456 FROM t1 LEFT JOIN t2 ON t2.x>0 8457 INNER JOIN t3 ON t3.y>0 8458 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 8459 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 8460 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8461} { 8462 30 130 230 330 130 30 230 30 330 30 8463 60 160 260 360 160 60 260 60 360 60 8464 90 190 290 390 190 90 290 90 390 90 8465} 8466do_execsql_test joinD-317 { 8467 SELECT t1.*, t2.*, t3.*, t4.* 8468 FROM t1 LEFT JOIN t2 ON t2.x>0 8469 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 8470 INNER JOIN t4 ON t4.z>0 8471 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 8472 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8473} { 8474 30 130 230 330 130 30 230 30 330 30 8475 60 160 260 360 160 60 260 60 360 60 8476 90 190 290 390 190 90 290 90 390 90 8477} 8478do_execsql_test joinD-318 { 8479 SELECT t1.*, t2.*, t3.*, t4.* 8480 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 8481 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8482 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8483 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8484} { 8485 15 115 215 315 - - 215 15 315 15 8486 30 130 230 330 130 30 230 30 330 30 8487 45 145 245 345 - - 245 45 345 45 8488 60 160 260 360 160 60 260 60 360 60 8489 75 175 275 375 - - 275 75 375 75 8490 90 190 290 390 190 90 290 90 390 90 8491} 8492do_execsql_test joinD-319 { 8493 SELECT t1.*, t2.*, t3.*, t4.* 8494 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8495 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 8496 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 8497 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8498} { 8499 15 115 215 315 - - 215 15 315 15 8500 30 130 230 330 130 30 230 30 330 30 8501 45 145 245 345 - - 245 45 345 45 8502 60 160 260 360 160 60 260 60 360 60 8503 75 175 275 375 - - 275 75 375 75 8504 90 190 290 390 190 90 290 90 390 90 8505} 8506do_execsql_test joinD-320 { 8507 SELECT t1.*, t2.*, t3.*, t4.* 8508 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8509 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8510 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 8511 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8512} { 8513 3 103 203 303 - - 203 3 - - 8514 6 106 206 306 106 6 206 6 - - 8515 9 109 209 309 - - 209 9 - - 8516 12 112 212 312 112 12 212 12 - - 8517 15 115 215 315 - - 215 15 315 15 8518 18 118 218 318 118 18 218 18 - - 8519 21 121 221 321 - - 221 21 - - 8520 24 124 224 324 124 24 224 24 - - 8521 27 127 227 327 - - 227 27 - - 8522 30 130 230 330 130 30 230 30 330 30 8523 33 133 233 333 - - 233 33 - - 8524 36 136 236 336 136 36 236 36 - - 8525 39 139 239 339 - - 239 39 - - 8526 42 142 242 342 142 42 242 42 - - 8527 45 145 245 345 - - 245 45 345 45 8528 48 148 248 348 148 48 248 48 - - 8529 51 151 251 351 - - 251 51 - - 8530 54 154 254 354 154 54 254 54 - - 8531 57 157 257 357 - - 257 57 - - 8532 60 160 260 360 160 60 260 60 360 60 8533 63 163 263 363 - - 263 63 - - 8534 66 166 266 366 166 66 266 66 - - 8535 69 169 269 369 - - 269 69 - - 8536 72 172 272 372 172 72 272 72 - - 8537 75 175 275 375 - - 275 75 375 75 8538 78 178 278 378 178 78 278 78 - - 8539 81 181 281 381 - - 281 81 - - 8540 84 184 284 384 184 84 284 84 - - 8541 87 187 287 387 - - 287 87 - - 8542 90 190 290 390 190 90 290 90 390 90 8543 93 193 293 393 - - 293 93 - - 8544} 8545do_execsql_test joinD-321 { 8546 SELECT t1.*, t2.*, t3.*, t4.* 8547 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 8548 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8549 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 8550 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8551} { 8552 3 103 203 303 - - 203 3 - - 8553 6 106 206 306 106 6 206 6 - - 8554 9 109 209 309 - - 209 9 - - 8555 12 112 212 312 112 12 212 12 - - 8556 15 115 215 315 - - 215 15 315 15 8557 18 118 218 318 118 18 218 18 - - 8558 21 121 221 321 - - 221 21 - - 8559 24 124 224 324 124 24 224 24 - - 8560 27 127 227 327 - - 227 27 - - 8561 30 130 230 330 130 30 230 30 330 30 8562 33 133 233 333 - - 233 33 - - 8563 36 136 236 336 136 36 236 36 - - 8564 39 139 239 339 - - 239 39 - - 8565 42 142 242 342 142 42 242 42 - - 8566 45 145 245 345 - - 245 45 345 45 8567 48 148 248 348 148 48 248 48 - - 8568 51 151 251 351 - - 251 51 - - 8569 54 154 254 354 154 54 254 54 - - 8570 57 157 257 357 - - 257 57 - - 8571 60 160 260 360 160 60 260 60 360 60 8572 63 163 263 363 - - 263 63 - - 8573 66 166 266 366 166 66 266 66 - - 8574 69 169 269 369 - - 269 69 - - 8575 72 172 272 372 172 72 272 72 - - 8576 75 175 275 375 - - 275 75 375 75 8577 78 178 278 378 178 78 278 78 - - 8578 81 181 281 381 - - 281 81 - - 8579 84 184 284 384 184 84 284 84 - - 8580 87 187 287 387 - - 287 87 - - 8581 90 190 290 390 190 90 290 90 390 90 8582 93 193 293 393 - - 293 93 - - 8583} 8584do_execsql_test joinD-322 { 8585 SELECT t1.*, t2.*, t3.*, t4.* 8586 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8587 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8588 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 8589 WHERE t2.x>0 8590 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8591} { 8592 6 106 206 306 106 6 206 6 - - 8593 12 112 212 312 112 12 212 12 - - 8594 18 118 218 318 118 18 218 18 - - 8595 24 124 224 324 124 24 224 24 - - 8596 30 130 230 330 130 30 230 30 330 30 8597 36 136 236 336 136 36 236 36 - - 8598 42 142 242 342 142 42 242 42 - - 8599 48 148 248 348 148 48 248 48 - - 8600 54 154 254 354 154 54 254 54 - - 8601 60 160 260 360 160 60 260 60 360 60 8602 66 166 266 366 166 66 266 66 - - 8603 72 172 272 372 172 72 272 72 - - 8604 78 178 278 378 178 78 278 78 - - 8605 84 184 284 384 184 84 284 84 - - 8606 90 190 290 390 190 90 290 90 390 90 8607} 8608do_execsql_test joinD-323 { 8609 SELECT t1.*, t2.*, t3.*, t4.* 8610 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8611 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8612 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 8613 WHERE (t2.x>0 OR t2.x IS NULL) 8614 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8615} { 8616 3 103 203 303 - - 203 3 - - 8617 6 106 206 306 106 6 206 6 - - 8618 9 109 209 309 - - 209 9 - - 8619 12 112 212 312 112 12 212 12 - - 8620 15 115 215 315 - - 215 15 315 15 8621 18 118 218 318 118 18 218 18 - - 8622 21 121 221 321 - - 221 21 - - 8623 24 124 224 324 124 24 224 24 - - 8624 27 127 227 327 - - 227 27 - - 8625 30 130 230 330 130 30 230 30 330 30 8626 33 133 233 333 - - 233 33 - - 8627 36 136 236 336 136 36 236 36 - - 8628 39 139 239 339 - - 239 39 - - 8629 42 142 242 342 142 42 242 42 - - 8630 45 145 245 345 - - 245 45 345 45 8631 48 148 248 348 148 48 248 48 - - 8632 51 151 251 351 - - 251 51 - - 8633 54 154 254 354 154 54 254 54 - - 8634 57 157 257 357 - - 257 57 - - 8635 60 160 260 360 160 60 260 60 360 60 8636 63 163 263 363 - - 263 63 - - 8637 66 166 266 366 166 66 266 66 - - 8638 69 169 269 369 - - 269 69 - - 8639 72 172 272 372 172 72 272 72 - - 8640 75 175 275 375 - - 275 75 375 75 8641 78 178 278 378 178 78 278 78 - - 8642 81 181 281 381 - - 281 81 - - 8643 84 184 284 384 184 84 284 84 - - 8644 87 187 287 387 - - 287 87 - - 8645 90 190 290 390 190 90 290 90 390 90 8646 93 193 293 393 - - 293 93 - - 8647} 8648do_execsql_test joinD-324 { 8649 SELECT t1.*, t2.*, t3.*, t4.* 8650 FROM t1 LEFT JOIN t2 ON true 8651 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8652 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 8653 WHERE t1.b=t2.b AND t2.x>0 8654 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8655} { 8656 6 106 206 306 106 6 206 6 - - 8657 12 112 212 312 112 12 212 12 - - 8658 18 118 218 318 118 18 218 18 - - 8659 24 124 224 324 124 24 224 24 - - 8660 30 130 230 330 130 30 230 30 330 30 8661 36 136 236 336 136 36 236 36 - - 8662 42 142 242 342 142 42 242 42 - - 8663 48 148 248 348 148 48 248 48 - - 8664 54 154 254 354 154 54 254 54 - - 8665 60 160 260 360 160 60 260 60 360 60 8666 66 166 266 366 166 66 266 66 - - 8667 72 172 272 372 172 72 272 72 - - 8668 78 178 278 378 178 78 278 78 - - 8669 84 184 284 384 184 84 284 84 - - 8670 90 190 290 390 190 90 290 90 390 90 8671} 8672do_execsql_test joinD-325 { 8673 SELECT t1.*, t2.*, t3.*, t4.* 8674 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8675 INNER JOIN t3 ON t1.c=t3.c 8676 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 8677 WHERE t3.y>0 8678 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8679} { 8680 3 103 203 303 - - 203 3 - - 8681 6 106 206 306 106 6 206 6 - - 8682 9 109 209 309 - - 209 9 - - 8683 12 112 212 312 112 12 212 12 - - 8684 15 115 215 315 - - 215 15 315 15 8685 18 118 218 318 118 18 218 18 - - 8686 21 121 221 321 - - 221 21 - - 8687 24 124 224 324 124 24 224 24 - - 8688 27 127 227 327 - - 227 27 - - 8689 30 130 230 330 130 30 230 30 330 30 8690 33 133 233 333 - - 233 33 - - 8691 36 136 236 336 136 36 236 36 - - 8692 39 139 239 339 - - 239 39 - - 8693 42 142 242 342 142 42 242 42 - - 8694 45 145 245 345 - - 245 45 345 45 8695 48 148 248 348 148 48 248 48 - - 8696 51 151 251 351 - - 251 51 - - 8697 54 154 254 354 154 54 254 54 - - 8698 57 157 257 357 - - 257 57 - - 8699 60 160 260 360 160 60 260 60 360 60 8700 63 163 263 363 - - 263 63 - - 8701 66 166 266 366 166 66 266 66 - - 8702 69 169 269 369 - - 269 69 - - 8703 72 172 272 372 172 72 272 72 - - 8704 75 175 275 375 - - 275 75 375 75 8705 78 178 278 378 178 78 278 78 - - 8706 81 181 281 381 - - 281 81 - - 8707 84 184 284 384 184 84 284 84 - - 8708 87 187 287 387 - - 287 87 - - 8709 90 190 290 390 190 90 290 90 390 90 8710 93 193 293 393 - - 293 93 - - 8711} 8712do_execsql_test joinD-326 { 8713 SELECT t1.*, t2.*, t3.*, t4.* 8714 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8715 INNER JOIN t3 ON t1.c=t3.c 8716 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 8717 WHERE t3.y>0 OR t3.y IS NULL 8718 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8719} { 8720 3 103 203 303 - - 203 3 - - 8721 6 106 206 306 106 6 206 6 - - 8722 9 109 209 309 - - 209 9 - - 8723 12 112 212 312 112 12 212 12 - - 8724 15 115 215 315 - - 215 15 315 15 8725 18 118 218 318 118 18 218 18 - - 8726 21 121 221 321 - - 221 21 - - 8727 24 124 224 324 124 24 224 24 - - 8728 27 127 227 327 - - 227 27 - - 8729 30 130 230 330 130 30 230 30 330 30 8730 33 133 233 333 - - 233 33 - - 8731 36 136 236 336 136 36 236 36 - - 8732 39 139 239 339 - - 239 39 - - 8733 42 142 242 342 142 42 242 42 - - 8734 45 145 245 345 - - 245 45 345 45 8735 48 148 248 348 148 48 248 48 - - 8736 51 151 251 351 - - 251 51 - - 8737 54 154 254 354 154 54 254 54 - - 8738 57 157 257 357 - - 257 57 - - 8739 60 160 260 360 160 60 260 60 360 60 8740 63 163 263 363 - - 263 63 - - 8741 66 166 266 366 166 66 266 66 - - 8742 69 169 269 369 - - 269 69 - - 8743 72 172 272 372 172 72 272 72 - - 8744 75 175 275 375 - - 275 75 375 75 8745 78 178 278 378 178 78 278 78 - - 8746 81 181 281 381 - - 281 81 - - 8747 84 184 284 384 184 84 284 84 - - 8748 87 187 287 387 - - 287 87 - - 8749 90 190 290 390 190 90 290 90 390 90 8750 93 193 293 393 - - 293 93 - - 8751} 8752do_execsql_test joinD-327 { 8753 SELECT t1.*, t2.*, t3.*, t4.* 8754 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8755 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8756 LEFT JOIN t4 ON t1.d=t4.d 8757 WHERE t4.z>0 8758 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8759} { 8760 15 115 215 315 - - 215 15 315 15 8761 30 130 230 330 130 30 230 30 330 30 8762 45 145 245 345 - - 245 45 345 45 8763 60 160 260 360 160 60 260 60 360 60 8764 75 175 275 375 - - 275 75 375 75 8765 90 190 290 390 190 90 290 90 390 90 8766} 8767do_execsql_test joinD-328 { 8768 SELECT t1.*, t2.*, t3.*, t4.* 8769 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8770 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8771 LEFT JOIN t4 ON t1.d=t4.d 8772 WHERE t4.z IS NULL OR t4.z>0 8773 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8774} { 8775 3 103 203 303 - - 203 3 - - 8776 6 106 206 306 106 6 206 6 - - 8777 9 109 209 309 - - 209 9 - - 8778 12 112 212 312 112 12 212 12 - - 8779 15 115 215 315 - - 215 15 315 15 8780 18 118 218 318 118 18 218 18 - - 8781 21 121 221 321 - - 221 21 - - 8782 24 124 224 324 124 24 224 24 - - 8783 27 127 227 327 - - 227 27 - - 8784 30 130 230 330 130 30 230 30 330 30 8785 33 133 233 333 - - 233 33 - - 8786 36 136 236 336 136 36 236 36 - - 8787 39 139 239 339 - - 239 39 - - 8788 42 142 242 342 142 42 242 42 - - 8789 45 145 245 345 - - 245 45 345 45 8790 48 148 248 348 148 48 248 48 - - 8791 51 151 251 351 - - 251 51 - - 8792 54 154 254 354 154 54 254 54 - - 8793 57 157 257 357 - - 257 57 - - 8794 60 160 260 360 160 60 260 60 360 60 8795 63 163 263 363 - - 263 63 - - 8796 66 166 266 366 166 66 266 66 - - 8797 69 169 269 369 - - 269 69 - - 8798 72 172 272 372 172 72 272 72 - - 8799 75 175 275 375 - - 275 75 375 75 8800 78 178 278 378 178 78 278 78 - - 8801 81 181 281 381 - - 281 81 - - 8802 84 184 284 384 184 84 284 84 - - 8803 87 187 287 387 - - 287 87 - - 8804 90 190 290 390 190 90 290 90 390 90 8805 93 193 293 393 - - 293 93 - - 8806} 8807do_execsql_test joinD-329 { 8808 SELECT t1.*, t2.*, t3.*, t4.* 8809 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8810 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8811 LEFT JOIN t4 ON t1.d=t4.d 8812 WHERE t2.x>0 AND t4.z>0 8813 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8814} { 8815 30 130 230 330 130 30 230 30 330 30 8816 60 160 260 360 160 60 260 60 360 60 8817 90 190 290 390 190 90 290 90 390 90 8818} 8819do_execsql_test joinD-330 { 8820 SELECT t1.*, t2.*, t3.*, t4.* 8821 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 8822 INNER JOIN t3 ON t1.c=t3.c 8823 LEFT JOIN t4 ON t1.d=t4.d 8824 WHERE t4.z>0 AND t3.y>0 8825 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8826} { 8827 15 115 215 315 - - 215 15 315 15 8828 30 130 230 330 130 30 230 30 330 30 8829 45 145 245 345 - - 245 45 345 45 8830 60 160 260 360 160 60 260 60 360 60 8831 75 175 275 375 - - 275 75 375 75 8832 90 190 290 390 190 90 290 90 390 90 8833} 8834do_execsql_test joinD-331 { 8835 SELECT t1.*, t2.*, t3.*, t4.* 8836 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8837 INNER JOIN t3 ON t1.c=t3.c 8838 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 8839 WHERE t2.x>0 AND t3.y>0 8840 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8841} { 8842 6 106 206 306 106 6 206 6 - - 8843 12 112 212 312 112 12 212 12 - - 8844 18 118 218 318 118 18 218 18 - - 8845 24 124 224 324 124 24 224 24 - - 8846 30 130 230 330 130 30 230 30 330 30 8847 36 136 236 336 136 36 236 36 - - 8848 42 142 242 342 142 42 242 42 - - 8849 48 148 248 348 148 48 248 48 - - 8850 54 154 254 354 154 54 254 54 - - 8851 60 160 260 360 160 60 260 60 360 60 8852 66 166 266 366 166 66 266 66 - - 8853 72 172 272 372 172 72 272 72 - - 8854 78 178 278 378 178 78 278 78 - - 8855 84 184 284 384 184 84 284 84 - - 8856 90 190 290 390 190 90 290 90 390 90 8857} 8858do_execsql_test joinD-332 { 8859 SELECT t1.*, t2.*, t3.*, t4.* 8860 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 8861 INNER JOIN t3 ON t1.c=t3.c 8862 LEFT JOIN t4 ON t1.d=t4.d 8863 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 8864 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8865} { 8866 30 130 230 330 130 30 230 30 330 30 8867 60 160 260 360 160 60 260 60 360 60 8868 90 190 290 390 190 90 290 90 390 90 8869} 8870do_execsql_test joinD-333 { 8871 SELECT t1.*, t2.*, t3.*, t4.* 8872 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 8873 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 8874 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 8875 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8876} { 8877 3 103 203 303 - - 203 3 - - 8878 6 106 206 306 106 6 206 6 - - 8879 9 109 209 309 - - 209 9 - - 8880 12 112 212 312 112 12 212 12 - - 8881 15 115 215 315 - - 215 15 315 15 8882 18 118 218 318 118 18 218 18 - - 8883 21 121 221 321 - - 221 21 - - 8884 24 124 224 324 124 24 224 24 - - 8885 27 127 227 327 - - 227 27 - - 8886 30 130 230 330 130 30 230 30 330 30 8887 33 133 233 333 - - 233 33 - - 8888 36 136 236 336 136 36 236 36 - - 8889 39 139 239 339 - - 239 39 - - 8890 42 142 242 342 142 42 242 42 - - 8891 45 145 245 345 - - 245 45 345 45 8892 48 148 248 348 148 48 248 48 - - 8893 51 151 251 351 - - 251 51 - - 8894 54 154 254 354 154 54 254 54 - - 8895 57 157 257 357 - - 257 57 - - 8896 60 160 260 360 160 60 260 60 360 60 8897 63 163 263 363 - - 263 63 - - 8898 66 166 266 366 166 66 266 66 - - 8899 69 169 269 369 - - 269 69 - - 8900 72 172 272 372 172 72 272 72 - - 8901 75 175 275 375 - - 275 75 375 75 8902 78 178 278 378 178 78 278 78 - - 8903 81 181 281 381 - - 281 81 - - 8904 84 184 284 384 184 84 284 84 - - 8905 87 187 287 387 - - 287 87 - - 8906 90 190 290 390 190 90 290 90 390 90 8907 93 193 293 393 - - 293 93 - - 8908} 8909do_execsql_test joinD-334 { 8910 SELECT t1.*, t2.*, t3.*, t4.* 8911 FROM t1 LEFT JOIN t2 ON t2.x>0 8912 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 8913 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 8914 WHERE t1.b IS NOT DISTINCT FROM t2.b 8915 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8916} { 8917 6 106 206 306 106 6 206 6 - - 8918 12 112 212 312 112 12 212 12 - - 8919 18 118 218 318 118 18 218 18 - - 8920 24 124 224 324 124 24 224 24 - - 8921 30 130 230 330 130 30 230 30 330 30 8922 36 136 236 336 136 36 236 36 - - 8923 42 142 242 342 142 42 242 42 - - 8924 48 148 248 348 148 48 248 48 - - 8925 54 154 254 354 154 54 254 54 - - 8926 60 160 260 360 160 60 260 60 360 60 8927 66 166 266 366 166 66 266 66 - - 8928 72 172 272 372 172 72 272 72 - - 8929 78 178 278 378 178 78 278 78 - - 8930 84 184 284 384 184 84 284 84 - - 8931 90 190 290 390 190 90 290 90 390 90 8932} 8933do_execsql_test joinD-335 { 8934 SELECT t1.*, t2.*, t3.*, t4.* 8935 FROM t1 LEFT JOIN t2 ON t2.x>0 8936 INNER JOIN t3 ON t3.y>0 8937 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 8938 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 8939 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8940} { 8941 6 106 206 306 106 6 206 6 - - 8942 12 112 212 312 112 12 212 12 - - 8943 18 118 218 318 118 18 218 18 - - 8944 24 124 224 324 124 24 224 24 - - 8945 30 130 230 330 130 30 230 30 330 30 8946 36 136 236 336 136 36 236 36 - - 8947 42 142 242 342 142 42 242 42 - - 8948 48 148 248 348 148 48 248 48 - - 8949 54 154 254 354 154 54 254 54 - - 8950 60 160 260 360 160 60 260 60 360 60 8951 66 166 266 366 166 66 266 66 - - 8952 72 172 272 372 172 72 272 72 - - 8953 78 178 278 378 178 78 278 78 - - 8954 84 184 284 384 184 84 284 84 - - 8955 90 190 290 390 190 90 290 90 390 90 8956} 8957do_execsql_test joinD-336 { 8958 SELECT t1.*, t2.*, t3.*, t4.* 8959 FROM t1 LEFT JOIN t2 ON t2.x>0 8960 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 8961 LEFT JOIN t4 ON t4.z>0 8962 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 8963 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8964} { 8965 30 130 230 330 130 30 230 30 330 30 8966 60 160 260 360 160 60 260 60 360 60 8967 90 190 290 390 190 90 290 90 390 90 8968} 8969do_execsql_test joinD-337 { 8970 SELECT t1.*, t2.*, t3.*, t4.* 8971 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 8972 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 8973 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 8974 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 8975} { 8976 3 103 203 303 - - 203 3 - - 8977 6 106 206 306 106 6 206 6 - - 8978 9 109 209 309 - - 209 9 - - 8979 12 112 212 312 112 12 212 12 - - 8980 15 115 215 315 - - 215 15 315 15 8981 18 118 218 318 118 18 218 18 - - 8982 21 121 221 321 - - 221 21 - - 8983 24 124 224 324 124 24 224 24 - - 8984 27 127 227 327 - - 227 27 - - 8985 30 130 230 330 130 30 230 30 330 30 8986 33 133 233 333 - - 233 33 - - 8987 36 136 236 336 136 36 236 36 - - 8988 39 139 239 339 - - 239 39 - - 8989 42 142 242 342 142 42 242 42 - - 8990 45 145 245 345 - - 245 45 345 45 8991 48 148 248 348 148 48 248 48 - - 8992 51 151 251 351 - - 251 51 - - 8993 54 154 254 354 154 54 254 54 - - 8994 57 157 257 357 - - 257 57 - - 8995 60 160 260 360 160 60 260 60 360 60 8996 63 163 263 363 - - 263 63 - - 8997 66 166 266 366 166 66 266 66 - - 8998 69 169 269 369 - - 269 69 - - 8999 72 172 272 372 172 72 272 72 - - 9000 75 175 275 375 - - 275 75 375 75 9001 78 178 278 378 178 78 278 78 - - 9002 81 181 281 381 - - 281 81 - - 9003 84 184 284 384 184 84 284 84 - - 9004 87 187 287 387 - - 287 87 - - 9005 90 190 290 390 190 90 290 90 390 90 9006 93 193 293 393 - - 293 93 - - 9007} 9008do_execsql_test joinD-338 { 9009 SELECT t1.*, t2.*, t3.*, t4.* 9010 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9011 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 9012 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 9013 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9014} { 9015 3 103 203 303 - - 203 3 - - 9016 6 106 206 306 106 6 206 6 - - 9017 9 109 209 309 - - 209 9 - - 9018 12 112 212 312 112 12 212 12 - - 9019 15 115 215 315 - - 215 15 315 15 9020 18 118 218 318 118 18 218 18 - - 9021 21 121 221 321 - - 221 21 - - 9022 24 124 224 324 124 24 224 24 - - 9023 27 127 227 327 - - 227 27 - - 9024 30 130 230 330 130 30 230 30 330 30 9025 33 133 233 333 - - 233 33 - - 9026 36 136 236 336 136 36 236 36 - - 9027 39 139 239 339 - - 239 39 - - 9028 42 142 242 342 142 42 242 42 - - 9029 45 145 245 345 - - 245 45 345 45 9030 48 148 248 348 148 48 248 48 - - 9031 51 151 251 351 - - 251 51 - - 9032 54 154 254 354 154 54 254 54 - - 9033 57 157 257 357 - - 257 57 - - 9034 60 160 260 360 160 60 260 60 360 60 9035 63 163 263 363 - - 263 63 - - 9036 66 166 266 366 166 66 266 66 - - 9037 69 169 269 369 - - 269 69 - - 9038 72 172 272 372 172 72 272 72 - - 9039 75 175 275 375 - - 275 75 375 75 9040 78 178 278 378 178 78 278 78 - - 9041 81 181 281 381 - - 281 81 - - 9042 84 184 284 384 184 84 284 84 - - 9043 87 187 287 387 - - 287 87 - - 9044 90 190 290 390 190 90 290 90 390 90 9045 93 193 293 393 - - 293 93 - - 9046} 9047do_execsql_test joinD-339 { 9048 SELECT t1.*, t2.*, t3.*, t4.* 9049 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9050 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9051 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9052 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9053} { 9054 15 115 215 315 - - 215 15 315 15 9055 30 130 230 330 130 30 230 30 330 30 9056 45 145 245 345 - - 245 45 345 45 9057 60 160 260 360 160 60 260 60 360 60 9058 75 175 275 375 - - 275 75 375 75 9059 90 190 290 390 190 90 290 90 390 90 9060 - - - - - - - - 300 0 9061 - - - - - - - - 305 5 9062 - - - - - - - - 310 10 9063 - - - - - - - - 320 20 9064 - - - - - - - - 325 25 9065 - - - - - - - - 335 35 9066 - - - - - - - - 340 40 9067 - - - - - - - - 350 50 9068 - - - - - - - - 355 55 9069 - - - - - - - - 365 65 9070 - - - - - - - - 370 70 9071 - - - - - - - - 380 80 9072 - - - - - - - - 385 85 9073 - - - - - - - - 395 95 9074} 9075do_execsql_test joinD-340 { 9076 SELECT t1.*, t2.*, t3.*, t4.* 9077 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 9078 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9079 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9080 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9081} { 9082 15 115 215 315 - - 215 15 315 15 9083 30 130 230 330 130 30 230 30 330 30 9084 45 145 245 345 - - 245 45 345 45 9085 60 160 260 360 160 60 260 60 360 60 9086 75 175 275 375 - - 275 75 375 75 9087 90 190 290 390 190 90 290 90 390 90 9088 - - - - - - - - 300 0 9089 - - - - - - - - 305 5 9090 - - - - - - - - 310 10 9091 - - - - - - - - 320 20 9092 - - - - - - - - 325 25 9093 - - - - - - - - 335 35 9094 - - - - - - - - 340 40 9095 - - - - - - - - 350 50 9096 - - - - - - - - 355 55 9097 - - - - - - - - 365 65 9098 - - - - - - - - 370 70 9099 - - - - - - - - 380 80 9100 - - - - - - - - 385 85 9101 - - - - - - - - 395 95 9102} 9103do_execsql_test joinD-341 { 9104 SELECT t1.*, t2.*, t3.*, t4.* 9105 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9106 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9107 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9108 WHERE t2.x>0 9109 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9110} { 9111 30 130 230 330 130 30 230 30 330 30 9112 60 160 260 360 160 60 260 60 360 60 9113 90 190 290 390 190 90 290 90 390 90 9114} 9115do_execsql_test joinD-342 { 9116 SELECT t1.*, t2.*, t3.*, t4.* 9117 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9118 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9119 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9120 WHERE (t2.x>0 OR t2.x IS NULL) 9121 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9122} { 9123 15 115 215 315 - - 215 15 315 15 9124 30 130 230 330 130 30 230 30 330 30 9125 45 145 245 345 - - 245 45 345 45 9126 60 160 260 360 160 60 260 60 360 60 9127 75 175 275 375 - - 275 75 375 75 9128 90 190 290 390 190 90 290 90 390 90 9129 - - - - - - - - 300 0 9130 - - - - - - - - 305 5 9131 - - - - - - - - 310 10 9132 - - - - - - - - 320 20 9133 - - - - - - - - 325 25 9134 - - - - - - - - 335 35 9135 - - - - - - - - 340 40 9136 - - - - - - - - 350 50 9137 - - - - - - - - 355 55 9138 - - - - - - - - 365 65 9139 - - - - - - - - 370 70 9140 - - - - - - - - 380 80 9141 - - - - - - - - 385 85 9142 - - - - - - - - 395 95 9143} 9144do_execsql_test joinD-343 { 9145 SELECT t1.*, t2.*, t3.*, t4.* 9146 FROM t1 LEFT JOIN t2 ON true 9147 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9148 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9149 WHERE t1.b=t2.b AND t2.x>0 9150 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9151} { 9152 30 130 230 330 130 30 230 30 330 30 9153 60 160 260 360 160 60 260 60 360 60 9154 90 190 290 390 190 90 290 90 390 90 9155} 9156do_execsql_test joinD-344 { 9157 SELECT t1.*, t2.*, t3.*, t4.* 9158 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9159 INNER JOIN t3 ON t1.c=t3.c 9160 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9161 WHERE t3.y>0 9162 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9163} { 9164 15 115 215 315 - - 215 15 315 15 9165 30 130 230 330 130 30 230 30 330 30 9166 45 145 245 345 - - 245 45 345 45 9167 60 160 260 360 160 60 260 60 360 60 9168 75 175 275 375 - - 275 75 375 75 9169 90 190 290 390 190 90 290 90 390 90 9170} 9171do_execsql_test joinD-345 { 9172 SELECT t1.*, t2.*, t3.*, t4.* 9173 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9174 INNER JOIN t3 ON t1.c=t3.c 9175 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9176 WHERE t3.y>0 OR t3.y IS NULL 9177 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9178} { 9179 15 115 215 315 - - 215 15 315 15 9180 30 130 230 330 130 30 230 30 330 30 9181 45 145 245 345 - - 245 45 345 45 9182 60 160 260 360 160 60 260 60 360 60 9183 75 175 275 375 - - 275 75 375 75 9184 90 190 290 390 190 90 290 90 390 90 9185 - - - - - - - - 300 0 9186 - - - - - - - - 305 5 9187 - - - - - - - - 310 10 9188 - - - - - - - - 320 20 9189 - - - - - - - - 325 25 9190 - - - - - - - - 335 35 9191 - - - - - - - - 340 40 9192 - - - - - - - - 350 50 9193 - - - - - - - - 355 55 9194 - - - - - - - - 365 65 9195 - - - - - - - - 370 70 9196 - - - - - - - - 380 80 9197 - - - - - - - - 385 85 9198 - - - - - - - - 395 95 9199} 9200do_execsql_test joinD-346 { 9201 SELECT t1.*, t2.*, t3.*, t4.* 9202 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9203 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9204 RIGHT JOIN t4 ON t1.d=t4.d 9205 WHERE t4.z>0 9206 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9207} { 9208 15 115 215 315 - - 215 15 315 15 9209 30 130 230 330 130 30 230 30 330 30 9210 45 145 245 345 - - 245 45 345 45 9211 60 160 260 360 160 60 260 60 360 60 9212 75 175 275 375 - - 275 75 375 75 9213 90 190 290 390 190 90 290 90 390 90 9214 - - - - - - - - 305 5 9215 - - - - - - - - 310 10 9216 - - - - - - - - 320 20 9217 - - - - - - - - 325 25 9218 - - - - - - - - 335 35 9219 - - - - - - - - 340 40 9220 - - - - - - - - 350 50 9221 - - - - - - - - 355 55 9222 - - - - - - - - 365 65 9223 - - - - - - - - 370 70 9224 - - - - - - - - 380 80 9225 - - - - - - - - 385 85 9226 - - - - - - - - 395 95 9227} 9228do_execsql_test joinD-347 { 9229 SELECT t1.*, t2.*, t3.*, t4.* 9230 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9231 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9232 RIGHT JOIN t4 ON t1.d=t4.d 9233 WHERE t4.z IS NULL OR t4.z>0 9234 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9235} { 9236 15 115 215 315 - - 215 15 315 15 9237 30 130 230 330 130 30 230 30 330 30 9238 45 145 245 345 - - 245 45 345 45 9239 60 160 260 360 160 60 260 60 360 60 9240 75 175 275 375 - - 275 75 375 75 9241 90 190 290 390 190 90 290 90 390 90 9242 - - - - - - - - 305 5 9243 - - - - - - - - 310 10 9244 - - - - - - - - 320 20 9245 - - - - - - - - 325 25 9246 - - - - - - - - 335 35 9247 - - - - - - - - 340 40 9248 - - - - - - - - 350 50 9249 - - - - - - - - 355 55 9250 - - - - - - - - 365 65 9251 - - - - - - - - 370 70 9252 - - - - - - - - 380 80 9253 - - - - - - - - 385 85 9254 - - - - - - - - 395 95 9255} 9256do_execsql_test joinD-348 { 9257 SELECT t1.*, t2.*, t3.*, t4.* 9258 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9259 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9260 RIGHT JOIN t4 ON t1.d=t4.d 9261 WHERE t2.x>0 AND t4.z>0 9262 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9263} { 9264 30 130 230 330 130 30 230 30 330 30 9265 60 160 260 360 160 60 260 60 360 60 9266 90 190 290 390 190 90 290 90 390 90 9267} 9268do_execsql_test joinD-349 { 9269 SELECT t1.*, t2.*, t3.*, t4.* 9270 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9271 INNER JOIN t3 ON t1.c=t3.c 9272 RIGHT JOIN t4 ON t1.d=t4.d 9273 WHERE t4.z>0 AND t3.y>0 9274 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9275} { 9276 15 115 215 315 - - 215 15 315 15 9277 30 130 230 330 130 30 230 30 330 30 9278 45 145 245 345 - - 245 45 345 45 9279 60 160 260 360 160 60 260 60 360 60 9280 75 175 275 375 - - 275 75 375 75 9281 90 190 290 390 190 90 290 90 390 90 9282} 9283do_execsql_test joinD-350 { 9284 SELECT t1.*, t2.*, t3.*, t4.* 9285 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9286 INNER JOIN t3 ON t1.c=t3.c 9287 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9288 WHERE t2.x>0 AND t3.y>0 9289 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9290} { 9291 30 130 230 330 130 30 230 30 330 30 9292 60 160 260 360 160 60 260 60 360 60 9293 90 190 290 390 190 90 290 90 390 90 9294} 9295do_execsql_test joinD-351 { 9296 SELECT t1.*, t2.*, t3.*, t4.* 9297 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9298 INNER JOIN t3 ON t1.c=t3.c 9299 RIGHT JOIN t4 ON t1.d=t4.d 9300 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 9301 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9302} { 9303 30 130 230 330 130 30 230 30 330 30 9304 60 160 260 360 160 60 260 60 360 60 9305 90 190 290 390 190 90 290 90 390 90 9306} 9307do_execsql_test joinD-352 { 9308 SELECT t1.*, t2.*, t3.*, t4.* 9309 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 9310 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 9311 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 9312 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9313} { 9314 15 115 215 315 - - 215 15 315 15 9315 30 130 230 330 130 30 230 30 330 30 9316 45 145 245 345 - - 245 45 345 45 9317 60 160 260 360 160 60 260 60 360 60 9318 75 175 275 375 - - 275 75 375 75 9319 90 190 290 390 190 90 290 90 390 90 9320 - - - - - - - - 300 0 9321 - - - - - - - - 305 5 9322 - - - - - - - - 310 10 9323 - - - - - - - - 320 20 9324 - - - - - - - - 325 25 9325 - - - - - - - - 335 35 9326 - - - - - - - - 340 40 9327 - - - - - - - - 350 50 9328 - - - - - - - - 355 55 9329 - - - - - - - - 365 65 9330 - - - - - - - - 370 70 9331 - - - - - - - - 380 80 9332 - - - - - - - - 385 85 9333 - - - - - - - - 395 95 9334} 9335do_execsql_test joinD-353 { 9336 SELECT t1.*, t2.*, t3.*, t4.* 9337 FROM t1 LEFT JOIN t2 ON t2.x>0 9338 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 9339 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 9340 WHERE t1.b IS NOT DISTINCT FROM t2.b 9341 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9342} { 9343 30 130 230 330 130 30 230 30 330 30 9344 60 160 260 360 160 60 260 60 360 60 9345 90 190 290 390 190 90 290 90 390 90 9346 - - - - - - - - 300 0 9347 - - - - - - - - 305 5 9348 - - - - - - - - 310 10 9349 - - - - - - - - 320 20 9350 - - - - - - - - 325 25 9351 - - - - - - - - 335 35 9352 - - - - - - - - 340 40 9353 - - - - - - - - 350 50 9354 - - - - - - - - 355 55 9355 - - - - - - - - 365 65 9356 - - - - - - - - 370 70 9357 - - - - - - - - 380 80 9358 - - - - - - - - 385 85 9359 - - - - - - - - 395 95 9360} 9361do_execsql_test joinD-354 { 9362 SELECT t1.*, t2.*, t3.*, t4.* 9363 FROM t1 LEFT JOIN t2 ON t2.x>0 9364 INNER JOIN t3 ON t3.y>0 9365 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 9366 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 9367 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9368} { 9369 30 130 230 330 130 30 230 30 330 30 9370 60 160 260 360 160 60 260 60 360 60 9371 90 190 290 390 190 90 290 90 390 90 9372 - - - - - - - - 300 0 9373} 9374do_execsql_test joinD-355 { 9375 SELECT t1.*, t2.*, t3.*, t4.* 9376 FROM t1 LEFT JOIN t2 ON t2.x>0 9377 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 9378 RIGHT JOIN t4 ON t4.z>0 9379 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 9380 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9381} { 9382 30 130 230 330 130 30 230 30 330 30 9383 60 160 260 360 160 60 260 60 360 60 9384 90 190 290 390 190 90 290 90 390 90 9385} 9386do_execsql_test joinD-356 { 9387 SELECT t1.*, t2.*, t3.*, t4.* 9388 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 9389 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9390 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9391 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9392} { 9393 15 115 215 315 - - 215 15 315 15 9394 30 130 230 330 130 30 230 30 330 30 9395 45 145 245 345 - - 245 45 345 45 9396 60 160 260 360 160 60 260 60 360 60 9397 75 175 275 375 - - 275 75 375 75 9398 90 190 290 390 190 90 290 90 390 90 9399 - - - - - - - - 300 0 9400 - - - - - - - - 305 5 9401 - - - - - - - - 310 10 9402 - - - - - - - - 320 20 9403 - - - - - - - - 325 25 9404 - - - - - - - - 335 35 9405 - - - - - - - - 340 40 9406 - - - - - - - - 350 50 9407 - - - - - - - - 355 55 9408 - - - - - - - - 365 65 9409 - - - - - - - - 370 70 9410 - - - - - - - - 380 80 9411 - - - - - - - - 385 85 9412 - - - - - - - - 395 95 9413} 9414do_execsql_test joinD-357 { 9415 SELECT t1.*, t2.*, t3.*, t4.* 9416 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9417 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 9418 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 9419 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9420} { 9421 15 115 215 315 - - 215 15 315 15 9422 30 130 230 330 130 30 230 30 330 30 9423 45 145 245 345 - - 245 45 345 45 9424 60 160 260 360 160 60 260 60 360 60 9425 75 175 275 375 - - 275 75 375 75 9426 90 190 290 390 190 90 290 90 390 90 9427 - - - - - - - - 300 0 9428 - - - - - - - - 305 5 9429 - - - - - - - - 310 10 9430 - - - - - - - - 320 20 9431 - - - - - - - - 325 25 9432 - - - - - - - - 335 35 9433 - - - - - - - - 340 40 9434 - - - - - - - - 350 50 9435 - - - - - - - - 355 55 9436 - - - - - - - - 365 65 9437 - - - - - - - - 370 70 9438 - - - - - - - - 380 80 9439 - - - - - - - - 385 85 9440 - - - - - - - - 395 95 9441} 9442do_execsql_test joinD-358 { 9443 SELECT t1.*, t2.*, t3.*, t4.* 9444 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9445 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9446 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 9447 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9448} { 9449 3 103 203 303 - - 203 3 - - 9450 6 106 206 306 106 6 206 6 - - 9451 9 109 209 309 - - 209 9 - - 9452 12 112 212 312 112 12 212 12 - - 9453 15 115 215 315 - - 215 15 315 15 9454 18 118 218 318 118 18 218 18 - - 9455 21 121 221 321 - - 221 21 - - 9456 24 124 224 324 124 24 224 24 - - 9457 27 127 227 327 - - 227 27 - - 9458 30 130 230 330 130 30 230 30 330 30 9459 33 133 233 333 - - 233 33 - - 9460 36 136 236 336 136 36 236 36 - - 9461 39 139 239 339 - - 239 39 - - 9462 42 142 242 342 142 42 242 42 - - 9463 45 145 245 345 - - 245 45 345 45 9464 48 148 248 348 148 48 248 48 - - 9465 51 151 251 351 - - 251 51 - - 9466 54 154 254 354 154 54 254 54 - - 9467 57 157 257 357 - - 257 57 - - 9468 60 160 260 360 160 60 260 60 360 60 9469 63 163 263 363 - - 263 63 - - 9470 66 166 266 366 166 66 266 66 - - 9471 69 169 269 369 - - 269 69 - - 9472 72 172 272 372 172 72 272 72 - - 9473 75 175 275 375 - - 275 75 375 75 9474 78 178 278 378 178 78 278 78 - - 9475 81 181 281 381 - - 281 81 - - 9476 84 184 284 384 184 84 284 84 - - 9477 87 187 287 387 - - 287 87 - - 9478 90 190 290 390 190 90 290 90 390 90 9479 93 193 293 393 - - 293 93 - - 9480 - - - - - - - - 300 0 9481 - - - - - - - - 305 5 9482 - - - - - - - - 310 10 9483 - - - - - - - - 320 20 9484 - - - - - - - - 325 25 9485 - - - - - - - - 335 35 9486 - - - - - - - - 340 40 9487 - - - - - - - - 350 50 9488 - - - - - - - - 355 55 9489 - - - - - - - - 365 65 9490 - - - - - - - - 370 70 9491 - - - - - - - - 380 80 9492 - - - - - - - - 385 85 9493 - - - - - - - - 395 95 9494} 9495do_execsql_test joinD-359 { 9496 SELECT t1.*, t2.*, t3.*, t4.* 9497 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 9498 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9499 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 9500 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9501} { 9502 3 103 203 303 - - 203 3 - - 9503 6 106 206 306 106 6 206 6 - - 9504 9 109 209 309 - - 209 9 - - 9505 12 112 212 312 112 12 212 12 - - 9506 15 115 215 315 - - 215 15 315 15 9507 18 118 218 318 118 18 218 18 - - 9508 21 121 221 321 - - 221 21 - - 9509 24 124 224 324 124 24 224 24 - - 9510 27 127 227 327 - - 227 27 - - 9511 30 130 230 330 130 30 230 30 330 30 9512 33 133 233 333 - - 233 33 - - 9513 36 136 236 336 136 36 236 36 - - 9514 39 139 239 339 - - 239 39 - - 9515 42 142 242 342 142 42 242 42 - - 9516 45 145 245 345 - - 245 45 345 45 9517 48 148 248 348 148 48 248 48 - - 9518 51 151 251 351 - - 251 51 - - 9519 54 154 254 354 154 54 254 54 - - 9520 57 157 257 357 - - 257 57 - - 9521 60 160 260 360 160 60 260 60 360 60 9522 63 163 263 363 - - 263 63 - - 9523 66 166 266 366 166 66 266 66 - - 9524 69 169 269 369 - - 269 69 - - 9525 72 172 272 372 172 72 272 72 - - 9526 75 175 275 375 - - 275 75 375 75 9527 78 178 278 378 178 78 278 78 - - 9528 81 181 281 381 - - 281 81 - - 9529 84 184 284 384 184 84 284 84 - - 9530 87 187 287 387 - - 287 87 - - 9531 90 190 290 390 190 90 290 90 390 90 9532 93 193 293 393 - - 293 93 - - 9533 - - - - - - - - 300 0 9534 - - - - - - - - 305 5 9535 - - - - - - - - 310 10 9536 - - - - - - - - 320 20 9537 - - - - - - - - 325 25 9538 - - - - - - - - 335 35 9539 - - - - - - - - 340 40 9540 - - - - - - - - 350 50 9541 - - - - - - - - 355 55 9542 - - - - - - - - 365 65 9543 - - - - - - - - 370 70 9544 - - - - - - - - 380 80 9545 - - - - - - - - 385 85 9546 - - - - - - - - 395 95 9547} 9548do_execsql_test joinD-360 { 9549 SELECT t1.*, t2.*, t3.*, t4.* 9550 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9551 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9552 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 9553 WHERE t2.x>0 9554 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9555} { 9556 6 106 206 306 106 6 206 6 - - 9557 12 112 212 312 112 12 212 12 - - 9558 18 118 218 318 118 18 218 18 - - 9559 24 124 224 324 124 24 224 24 - - 9560 30 130 230 330 130 30 230 30 330 30 9561 36 136 236 336 136 36 236 36 - - 9562 42 142 242 342 142 42 242 42 - - 9563 48 148 248 348 148 48 248 48 - - 9564 54 154 254 354 154 54 254 54 - - 9565 60 160 260 360 160 60 260 60 360 60 9566 66 166 266 366 166 66 266 66 - - 9567 72 172 272 372 172 72 272 72 - - 9568 78 178 278 378 178 78 278 78 - - 9569 84 184 284 384 184 84 284 84 - - 9570 90 190 290 390 190 90 290 90 390 90 9571} 9572do_execsql_test joinD-361 { 9573 SELECT t1.*, t2.*, t3.*, t4.* 9574 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9575 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9576 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 9577 WHERE (t2.x>0 OR t2.x IS NULL) 9578 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9579} { 9580 3 103 203 303 - - 203 3 - - 9581 6 106 206 306 106 6 206 6 - - 9582 9 109 209 309 - - 209 9 - - 9583 12 112 212 312 112 12 212 12 - - 9584 15 115 215 315 - - 215 15 315 15 9585 18 118 218 318 118 18 218 18 - - 9586 21 121 221 321 - - 221 21 - - 9587 24 124 224 324 124 24 224 24 - - 9588 27 127 227 327 - - 227 27 - - 9589 30 130 230 330 130 30 230 30 330 30 9590 33 133 233 333 - - 233 33 - - 9591 36 136 236 336 136 36 236 36 - - 9592 39 139 239 339 - - 239 39 - - 9593 42 142 242 342 142 42 242 42 - - 9594 45 145 245 345 - - 245 45 345 45 9595 48 148 248 348 148 48 248 48 - - 9596 51 151 251 351 - - 251 51 - - 9597 54 154 254 354 154 54 254 54 - - 9598 57 157 257 357 - - 257 57 - - 9599 60 160 260 360 160 60 260 60 360 60 9600 63 163 263 363 - - 263 63 - - 9601 66 166 266 366 166 66 266 66 - - 9602 69 169 269 369 - - 269 69 - - 9603 72 172 272 372 172 72 272 72 - - 9604 75 175 275 375 - - 275 75 375 75 9605 78 178 278 378 178 78 278 78 - - 9606 81 181 281 381 - - 281 81 - - 9607 84 184 284 384 184 84 284 84 - - 9608 87 187 287 387 - - 287 87 - - 9609 90 190 290 390 190 90 290 90 390 90 9610 93 193 293 393 - - 293 93 - - 9611 - - - - - - - - 300 0 9612 - - - - - - - - 305 5 9613 - - - - - - - - 310 10 9614 - - - - - - - - 320 20 9615 - - - - - - - - 325 25 9616 - - - - - - - - 335 35 9617 - - - - - - - - 340 40 9618 - - - - - - - - 350 50 9619 - - - - - - - - 355 55 9620 - - - - - - - - 365 65 9621 - - - - - - - - 370 70 9622 - - - - - - - - 380 80 9623 - - - - - - - - 385 85 9624 - - - - - - - - 395 95 9625} 9626do_execsql_test joinD-362 { 9627 SELECT t1.*, t2.*, t3.*, t4.* 9628 FROM t1 LEFT JOIN t2 ON true 9629 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9630 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 9631 WHERE t1.b=t2.b AND t2.x>0 9632 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9633} { 9634 6 106 206 306 106 6 206 6 - - 9635 12 112 212 312 112 12 212 12 - - 9636 18 118 218 318 118 18 218 18 - - 9637 24 124 224 324 124 24 224 24 - - 9638 30 130 230 330 130 30 230 30 330 30 9639 36 136 236 336 136 36 236 36 - - 9640 42 142 242 342 142 42 242 42 - - 9641 48 148 248 348 148 48 248 48 - - 9642 54 154 254 354 154 54 254 54 - - 9643 60 160 260 360 160 60 260 60 360 60 9644 66 166 266 366 166 66 266 66 - - 9645 72 172 272 372 172 72 272 72 - - 9646 78 178 278 378 178 78 278 78 - - 9647 84 184 284 384 184 84 284 84 - - 9648 90 190 290 390 190 90 290 90 390 90 9649} 9650do_execsql_test joinD-363 { 9651 SELECT t1.*, t2.*, t3.*, t4.* 9652 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9653 INNER JOIN t3 ON t1.c=t3.c 9654 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 9655 WHERE t3.y>0 9656 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9657} { 9658 3 103 203 303 - - 203 3 - - 9659 6 106 206 306 106 6 206 6 - - 9660 9 109 209 309 - - 209 9 - - 9661 12 112 212 312 112 12 212 12 - - 9662 15 115 215 315 - - 215 15 315 15 9663 18 118 218 318 118 18 218 18 - - 9664 21 121 221 321 - - 221 21 - - 9665 24 124 224 324 124 24 224 24 - - 9666 27 127 227 327 - - 227 27 - - 9667 30 130 230 330 130 30 230 30 330 30 9668 33 133 233 333 - - 233 33 - - 9669 36 136 236 336 136 36 236 36 - - 9670 39 139 239 339 - - 239 39 - - 9671 42 142 242 342 142 42 242 42 - - 9672 45 145 245 345 - - 245 45 345 45 9673 48 148 248 348 148 48 248 48 - - 9674 51 151 251 351 - - 251 51 - - 9675 54 154 254 354 154 54 254 54 - - 9676 57 157 257 357 - - 257 57 - - 9677 60 160 260 360 160 60 260 60 360 60 9678 63 163 263 363 - - 263 63 - - 9679 66 166 266 366 166 66 266 66 - - 9680 69 169 269 369 - - 269 69 - - 9681 72 172 272 372 172 72 272 72 - - 9682 75 175 275 375 - - 275 75 375 75 9683 78 178 278 378 178 78 278 78 - - 9684 81 181 281 381 - - 281 81 - - 9685 84 184 284 384 184 84 284 84 - - 9686 87 187 287 387 - - 287 87 - - 9687 90 190 290 390 190 90 290 90 390 90 9688 93 193 293 393 - - 293 93 - - 9689} 9690do_execsql_test joinD-364 { 9691 SELECT t1.*, t2.*, t3.*, t4.* 9692 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9693 INNER JOIN t3 ON t1.c=t3.c 9694 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 9695 WHERE t3.y>0 OR t3.y IS NULL 9696 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9697} { 9698 3 103 203 303 - - 203 3 - - 9699 6 106 206 306 106 6 206 6 - - 9700 9 109 209 309 - - 209 9 - - 9701 12 112 212 312 112 12 212 12 - - 9702 15 115 215 315 - - 215 15 315 15 9703 18 118 218 318 118 18 218 18 - - 9704 21 121 221 321 - - 221 21 - - 9705 24 124 224 324 124 24 224 24 - - 9706 27 127 227 327 - - 227 27 - - 9707 30 130 230 330 130 30 230 30 330 30 9708 33 133 233 333 - - 233 33 - - 9709 36 136 236 336 136 36 236 36 - - 9710 39 139 239 339 - - 239 39 - - 9711 42 142 242 342 142 42 242 42 - - 9712 45 145 245 345 - - 245 45 345 45 9713 48 148 248 348 148 48 248 48 - - 9714 51 151 251 351 - - 251 51 - - 9715 54 154 254 354 154 54 254 54 - - 9716 57 157 257 357 - - 257 57 - - 9717 60 160 260 360 160 60 260 60 360 60 9718 63 163 263 363 - - 263 63 - - 9719 66 166 266 366 166 66 266 66 - - 9720 69 169 269 369 - - 269 69 - - 9721 72 172 272 372 172 72 272 72 - - 9722 75 175 275 375 - - 275 75 375 75 9723 78 178 278 378 178 78 278 78 - - 9724 81 181 281 381 - - 281 81 - - 9725 84 184 284 384 184 84 284 84 - - 9726 87 187 287 387 - - 287 87 - - 9727 90 190 290 390 190 90 290 90 390 90 9728 93 193 293 393 - - 293 93 - - 9729 - - - - - - - - 300 0 9730 - - - - - - - - 305 5 9731 - - - - - - - - 310 10 9732 - - - - - - - - 320 20 9733 - - - - - - - - 325 25 9734 - - - - - - - - 335 35 9735 - - - - - - - - 340 40 9736 - - - - - - - - 350 50 9737 - - - - - - - - 355 55 9738 - - - - - - - - 365 65 9739 - - - - - - - - 370 70 9740 - - - - - - - - 380 80 9741 - - - - - - - - 385 85 9742 - - - - - - - - 395 95 9743} 9744do_execsql_test joinD-365 { 9745 SELECT t1.*, t2.*, t3.*, t4.* 9746 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9747 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9748 FULL JOIN t4 ON t1.d=t4.d 9749 WHERE t4.z>0 9750 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9751} { 9752 15 115 215 315 - - 215 15 315 15 9753 30 130 230 330 130 30 230 30 330 30 9754 45 145 245 345 - - 245 45 345 45 9755 60 160 260 360 160 60 260 60 360 60 9756 75 175 275 375 - - 275 75 375 75 9757 90 190 290 390 190 90 290 90 390 90 9758 - - - - - - - - 305 5 9759 - - - - - - - - 310 10 9760 - - - - - - - - 320 20 9761 - - - - - - - - 325 25 9762 - - - - - - - - 335 35 9763 - - - - - - - - 340 40 9764 - - - - - - - - 350 50 9765 - - - - - - - - 355 55 9766 - - - - - - - - 365 65 9767 - - - - - - - - 370 70 9768 - - - - - - - - 380 80 9769 - - - - - - - - 385 85 9770 - - - - - - - - 395 95 9771} 9772do_execsql_test joinD-366 { 9773 SELECT t1.*, t2.*, t3.*, t4.* 9774 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9775 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9776 FULL JOIN t4 ON t1.d=t4.d 9777 WHERE t4.z IS NULL OR t4.z>0 9778 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9779} { 9780 3 103 203 303 - - 203 3 - - 9781 6 106 206 306 106 6 206 6 - - 9782 9 109 209 309 - - 209 9 - - 9783 12 112 212 312 112 12 212 12 - - 9784 15 115 215 315 - - 215 15 315 15 9785 18 118 218 318 118 18 218 18 - - 9786 21 121 221 321 - - 221 21 - - 9787 24 124 224 324 124 24 224 24 - - 9788 27 127 227 327 - - 227 27 - - 9789 30 130 230 330 130 30 230 30 330 30 9790 33 133 233 333 - - 233 33 - - 9791 36 136 236 336 136 36 236 36 - - 9792 39 139 239 339 - - 239 39 - - 9793 42 142 242 342 142 42 242 42 - - 9794 45 145 245 345 - - 245 45 345 45 9795 48 148 248 348 148 48 248 48 - - 9796 51 151 251 351 - - 251 51 - - 9797 54 154 254 354 154 54 254 54 - - 9798 57 157 257 357 - - 257 57 - - 9799 60 160 260 360 160 60 260 60 360 60 9800 63 163 263 363 - - 263 63 - - 9801 66 166 266 366 166 66 266 66 - - 9802 69 169 269 369 - - 269 69 - - 9803 72 172 272 372 172 72 272 72 - - 9804 75 175 275 375 - - 275 75 375 75 9805 78 178 278 378 178 78 278 78 - - 9806 81 181 281 381 - - 281 81 - - 9807 84 184 284 384 184 84 284 84 - - 9808 87 187 287 387 - - 287 87 - - 9809 90 190 290 390 190 90 290 90 390 90 9810 93 193 293 393 - - 293 93 - - 9811 - - - - - - - - 305 5 9812 - - - - - - - - 310 10 9813 - - - - - - - - 320 20 9814 - - - - - - - - 325 25 9815 - - - - - - - - 335 35 9816 - - - - - - - - 340 40 9817 - - - - - - - - 350 50 9818 - - - - - - - - 355 55 9819 - - - - - - - - 365 65 9820 - - - - - - - - 370 70 9821 - - - - - - - - 380 80 9822 - - - - - - - - 385 85 9823 - - - - - - - - 395 95 9824} 9825do_execsql_test joinD-367 { 9826 SELECT t1.*, t2.*, t3.*, t4.* 9827 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9828 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 9829 FULL JOIN t4 ON t1.d=t4.d 9830 WHERE t2.x>0 AND t4.z>0 9831 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9832} { 9833 30 130 230 330 130 30 230 30 330 30 9834 60 160 260 360 160 60 260 60 360 60 9835 90 190 290 390 190 90 290 90 390 90 9836} 9837do_execsql_test joinD-368 { 9838 SELECT t1.*, t2.*, t3.*, t4.* 9839 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 9840 INNER JOIN t3 ON t1.c=t3.c 9841 FULL JOIN t4 ON t1.d=t4.d 9842 WHERE t4.z>0 AND t3.y>0 9843 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9844} { 9845 15 115 215 315 - - 215 15 315 15 9846 30 130 230 330 130 30 230 30 330 30 9847 45 145 245 345 - - 245 45 345 45 9848 60 160 260 360 160 60 260 60 360 60 9849 75 175 275 375 - - 275 75 375 75 9850 90 190 290 390 190 90 290 90 390 90 9851} 9852do_execsql_test joinD-369 { 9853 SELECT t1.*, t2.*, t3.*, t4.* 9854 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9855 INNER JOIN t3 ON t1.c=t3.c 9856 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 9857 WHERE t2.x>0 AND t3.y>0 9858 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9859} { 9860 6 106 206 306 106 6 206 6 - - 9861 12 112 212 312 112 12 212 12 - - 9862 18 118 218 318 118 18 218 18 - - 9863 24 124 224 324 124 24 224 24 - - 9864 30 130 230 330 130 30 230 30 330 30 9865 36 136 236 336 136 36 236 36 - - 9866 42 142 242 342 142 42 242 42 - - 9867 48 148 248 348 148 48 248 48 - - 9868 54 154 254 354 154 54 254 54 - - 9869 60 160 260 360 160 60 260 60 360 60 9870 66 166 266 366 166 66 266 66 - - 9871 72 172 272 372 172 72 272 72 - - 9872 78 178 278 378 178 78 278 78 - - 9873 84 184 284 384 184 84 284 84 - - 9874 90 190 290 390 190 90 290 90 390 90 9875} 9876do_execsql_test joinD-370 { 9877 SELECT t1.*, t2.*, t3.*, t4.* 9878 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 9879 INNER JOIN t3 ON t1.c=t3.c 9880 FULL JOIN t4 ON t1.d=t4.d 9881 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 9882 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9883} { 9884 30 130 230 330 130 30 230 30 330 30 9885 60 160 260 360 160 60 260 60 360 60 9886 90 190 290 390 190 90 290 90 390 90 9887} 9888do_execsql_test joinD-371 { 9889 SELECT t1.*, t2.*, t3.*, t4.* 9890 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 9891 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 9892 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 9893 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9894} { 9895 3 103 203 303 - - 203 3 - - 9896 6 106 206 306 106 6 206 6 - - 9897 9 109 209 309 - - 209 9 - - 9898 12 112 212 312 112 12 212 12 - - 9899 15 115 215 315 - - 215 15 315 15 9900 18 118 218 318 118 18 218 18 - - 9901 21 121 221 321 - - 221 21 - - 9902 24 124 224 324 124 24 224 24 - - 9903 27 127 227 327 - - 227 27 - - 9904 30 130 230 330 130 30 230 30 330 30 9905 33 133 233 333 - - 233 33 - - 9906 36 136 236 336 136 36 236 36 - - 9907 39 139 239 339 - - 239 39 - - 9908 42 142 242 342 142 42 242 42 - - 9909 45 145 245 345 - - 245 45 345 45 9910 48 148 248 348 148 48 248 48 - - 9911 51 151 251 351 - - 251 51 - - 9912 54 154 254 354 154 54 254 54 - - 9913 57 157 257 357 - - 257 57 - - 9914 60 160 260 360 160 60 260 60 360 60 9915 63 163 263 363 - - 263 63 - - 9916 66 166 266 366 166 66 266 66 - - 9917 69 169 269 369 - - 269 69 - - 9918 72 172 272 372 172 72 272 72 - - 9919 75 175 275 375 - - 275 75 375 75 9920 78 178 278 378 178 78 278 78 - - 9921 81 181 281 381 - - 281 81 - - 9922 84 184 284 384 184 84 284 84 - - 9923 87 187 287 387 - - 287 87 - - 9924 90 190 290 390 190 90 290 90 390 90 9925 93 193 293 393 - - 293 93 - - 9926 - - - - - - - - 300 0 9927 - - - - - - - - 305 5 9928 - - - - - - - - 310 10 9929 - - - - - - - - 320 20 9930 - - - - - - - - 325 25 9931 - - - - - - - - 335 35 9932 - - - - - - - - 340 40 9933 - - - - - - - - 350 50 9934 - - - - - - - - 355 55 9935 - - - - - - - - 365 65 9936 - - - - - - - - 370 70 9937 - - - - - - - - 380 80 9938 - - - - - - - - 385 85 9939 - - - - - - - - 395 95 9940} 9941do_execsql_test joinD-372 { 9942 SELECT t1.*, t2.*, t3.*, t4.* 9943 FROM t1 LEFT JOIN t2 ON t2.x>0 9944 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 9945 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 9946 WHERE t1.b IS NOT DISTINCT FROM t2.b 9947 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9948} { 9949 6 106 206 306 106 6 206 6 - - 9950 12 112 212 312 112 12 212 12 - - 9951 18 118 218 318 118 18 218 18 - - 9952 24 124 224 324 124 24 224 24 - - 9953 30 130 230 330 130 30 230 30 330 30 9954 36 136 236 336 136 36 236 36 - - 9955 42 142 242 342 142 42 242 42 - - 9956 48 148 248 348 148 48 248 48 - - 9957 54 154 254 354 154 54 254 54 - - 9958 60 160 260 360 160 60 260 60 360 60 9959 66 166 266 366 166 66 266 66 - - 9960 72 172 272 372 172 72 272 72 - - 9961 78 178 278 378 178 78 278 78 - - 9962 84 184 284 384 184 84 284 84 - - 9963 90 190 290 390 190 90 290 90 390 90 9964 - - - - - - - - 300 0 9965 - - - - - - - - 305 5 9966 - - - - - - - - 310 10 9967 - - - - - - - - 320 20 9968 - - - - - - - - 325 25 9969 - - - - - - - - 335 35 9970 - - - - - - - - 340 40 9971 - - - - - - - - 350 50 9972 - - - - - - - - 355 55 9973 - - - - - - - - 365 65 9974 - - - - - - - - 370 70 9975 - - - - - - - - 380 80 9976 - - - - - - - - 385 85 9977 - - - - - - - - 395 95 9978} 9979do_execsql_test joinD-373 { 9980 SELECT t1.*, t2.*, t3.*, t4.* 9981 FROM t1 LEFT JOIN t2 ON t2.x>0 9982 INNER JOIN t3 ON t3.y>0 9983 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 9984 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 9985 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 9986} { 9987 6 106 206 306 106 6 206 6 - - 9988 12 112 212 312 112 12 212 12 - - 9989 18 118 218 318 118 18 218 18 - - 9990 24 124 224 324 124 24 224 24 - - 9991 30 130 230 330 130 30 230 30 330 30 9992 36 136 236 336 136 36 236 36 - - 9993 42 142 242 342 142 42 242 42 - - 9994 48 148 248 348 148 48 248 48 - - 9995 54 154 254 354 154 54 254 54 - - 9996 60 160 260 360 160 60 260 60 360 60 9997 66 166 266 366 166 66 266 66 - - 9998 72 172 272 372 172 72 272 72 - - 9999 78 178 278 378 178 78 278 78 - - 10000 84 184 284 384 184 84 284 84 - - 10001 90 190 290 390 190 90 290 90 390 90 10002 - - - - - - - - 300 0 10003} 10004do_execsql_test joinD-374 { 10005 SELECT t1.*, t2.*, t3.*, t4.* 10006 FROM t1 LEFT JOIN t2 ON t2.x>0 10007 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 10008 FULL JOIN t4 ON t4.z>0 10009 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 10010 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10011} { 10012 30 130 230 330 130 30 230 30 330 30 10013 60 160 260 360 160 60 260 60 360 60 10014 90 190 290 390 190 90 290 90 390 90 10015} 10016do_execsql_test joinD-375 { 10017 SELECT t1.*, t2.*, t3.*, t4.* 10018 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 10019 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 10020 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 10021 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10022} { 10023 3 103 203 303 - - 203 3 - - 10024 6 106 206 306 106 6 206 6 - - 10025 9 109 209 309 - - 209 9 - - 10026 12 112 212 312 112 12 212 12 - - 10027 15 115 215 315 - - 215 15 315 15 10028 18 118 218 318 118 18 218 18 - - 10029 21 121 221 321 - - 221 21 - - 10030 24 124 224 324 124 24 224 24 - - 10031 27 127 227 327 - - 227 27 - - 10032 30 130 230 330 130 30 230 30 330 30 10033 33 133 233 333 - - 233 33 - - 10034 36 136 236 336 136 36 236 36 - - 10035 39 139 239 339 - - 239 39 - - 10036 42 142 242 342 142 42 242 42 - - 10037 45 145 245 345 - - 245 45 345 45 10038 48 148 248 348 148 48 248 48 - - 10039 51 151 251 351 - - 251 51 - - 10040 54 154 254 354 154 54 254 54 - - 10041 57 157 257 357 - - 257 57 - - 10042 60 160 260 360 160 60 260 60 360 60 10043 63 163 263 363 - - 263 63 - - 10044 66 166 266 366 166 66 266 66 - - 10045 69 169 269 369 - - 269 69 - - 10046 72 172 272 372 172 72 272 72 - - 10047 75 175 275 375 - - 275 75 375 75 10048 78 178 278 378 178 78 278 78 - - 10049 81 181 281 381 - - 281 81 - - 10050 84 184 284 384 184 84 284 84 - - 10051 87 187 287 387 - - 287 87 - - 10052 90 190 290 390 190 90 290 90 390 90 10053 93 193 293 393 - - 293 93 - - 10054 - - - - - - - - 300 0 10055 - - - - - - - - 305 5 10056 - - - - - - - - 310 10 10057 - - - - - - - - 320 20 10058 - - - - - - - - 325 25 10059 - - - - - - - - 335 35 10060 - - - - - - - - 340 40 10061 - - - - - - - - 350 50 10062 - - - - - - - - 355 55 10063 - - - - - - - - 365 65 10064 - - - - - - - - 370 70 10065 - - - - - - - - 380 80 10066 - - - - - - - - 385 85 10067 - - - - - - - - 395 95 10068} 10069do_execsql_test joinD-376 { 10070 SELECT t1.*, t2.*, t3.*, t4.* 10071 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10072 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 10073 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 10074 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10075} { 10076 3 103 203 303 - - 203 3 - - 10077 6 106 206 306 106 6 206 6 - - 10078 9 109 209 309 - - 209 9 - - 10079 12 112 212 312 112 12 212 12 - - 10080 15 115 215 315 - - 215 15 315 15 10081 18 118 218 318 118 18 218 18 - - 10082 21 121 221 321 - - 221 21 - - 10083 24 124 224 324 124 24 224 24 - - 10084 27 127 227 327 - - 227 27 - - 10085 30 130 230 330 130 30 230 30 330 30 10086 33 133 233 333 - - 233 33 - - 10087 36 136 236 336 136 36 236 36 - - 10088 39 139 239 339 - - 239 39 - - 10089 42 142 242 342 142 42 242 42 - - 10090 45 145 245 345 - - 245 45 345 45 10091 48 148 248 348 148 48 248 48 - - 10092 51 151 251 351 - - 251 51 - - 10093 54 154 254 354 154 54 254 54 - - 10094 57 157 257 357 - - 257 57 - - 10095 60 160 260 360 160 60 260 60 360 60 10096 63 163 263 363 - - 263 63 - - 10097 66 166 266 366 166 66 266 66 - - 10098 69 169 269 369 - - 269 69 - - 10099 72 172 272 372 172 72 272 72 - - 10100 75 175 275 375 - - 275 75 375 75 10101 78 178 278 378 178 78 278 78 - - 10102 81 181 281 381 - - 281 81 - - 10103 84 184 284 384 184 84 284 84 - - 10104 87 187 287 387 - - 287 87 - - 10105 90 190 290 390 190 90 290 90 390 90 10106 93 193 293 393 - - 293 93 - - 10107 - - - - - - - - 300 0 10108 - - - - - - - - 305 5 10109 - - - - - - - - 310 10 10110 - - - - - - - - 320 20 10111 - - - - - - - - 325 25 10112 - - - - - - - - 335 35 10113 - - - - - - - - 340 40 10114 - - - - - - - - 350 50 10115 - - - - - - - - 355 55 10116 - - - - - - - - 365 65 10117 - - - - - - - - 370 70 10118 - - - - - - - - 380 80 10119 - - - - - - - - 385 85 10120 - - - - - - - - 395 95 10121} 10122do_execsql_test joinD-377 { 10123 SELECT t1.*, t2.*, t3.*, t4.* 10124 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10125 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10126 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10127 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10128} { 10129 5 105 205 305 - - - - 305 5 10130 10 110 210 310 110 10 - - 310 10 10131 15 115 215 315 - - 215 15 315 15 10132 20 120 220 320 120 20 - - 320 20 10133 25 125 225 325 - - - - 325 25 10134 30 130 230 330 130 30 230 30 330 30 10135 35 135 235 335 - - - - 335 35 10136 40 140 240 340 140 40 - - 340 40 10137 45 145 245 345 - - 245 45 345 45 10138 50 150 250 350 150 50 - - 350 50 10139 55 155 255 355 - - - - 355 55 10140 60 160 260 360 160 60 260 60 360 60 10141 65 165 265 365 - - - - 365 65 10142 70 170 270 370 170 70 - - 370 70 10143 75 175 275 375 - - 275 75 375 75 10144 80 180 280 380 180 80 - - 380 80 10145 85 185 285 385 - - - - 385 85 10146 90 190 290 390 190 90 290 90 390 90 10147 95 195 295 395 - - - - 395 95 10148} 10149do_execsql_test joinD-378 { 10150 SELECT t1.*, t2.*, t3.*, t4.* 10151 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 10152 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10153 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10154 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10155} { 10156 5 105 205 305 - - - - 305 5 10157 10 110 210 310 110 10 - - 310 10 10158 15 115 215 315 - - 215 15 315 15 10159 20 120 220 320 120 20 - - 320 20 10160 25 125 225 325 - - - - 325 25 10161 30 130 230 330 130 30 230 30 330 30 10162 35 135 235 335 - - - - 335 35 10163 40 140 240 340 140 40 - - 340 40 10164 45 145 245 345 - - 245 45 345 45 10165 50 150 250 350 150 50 - - 350 50 10166 55 155 255 355 - - - - 355 55 10167 60 160 260 360 160 60 260 60 360 60 10168 65 165 265 365 - - - - 365 65 10169 70 170 270 370 170 70 - - 370 70 10170 75 175 275 375 - - 275 75 375 75 10171 80 180 280 380 180 80 - - 380 80 10172 85 185 285 385 - - - - 385 85 10173 90 190 290 390 190 90 290 90 390 90 10174 95 195 295 395 - - - - 395 95 10175} 10176do_execsql_test joinD-379 { 10177 SELECT t1.*, t2.*, t3.*, t4.* 10178 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 10179 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10180 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10181 WHERE t2.x>0 10182 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10183} { 10184 10 110 210 310 110 10 - - 310 10 10185 20 120 220 320 120 20 - - 320 20 10186 30 130 230 330 130 30 230 30 330 30 10187 40 140 240 340 140 40 - - 340 40 10188 50 150 250 350 150 50 - - 350 50 10189 60 160 260 360 160 60 260 60 360 60 10190 70 170 270 370 170 70 - - 370 70 10191 80 180 280 380 180 80 - - 380 80 10192 90 190 290 390 190 90 290 90 390 90 10193} 10194do_execsql_test joinD-380 { 10195 SELECT t1.*, t2.*, t3.*, t4.* 10196 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 10197 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10198 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10199 WHERE (t2.x>0 OR t2.x IS NULL) 10200 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10201} { 10202 5 105 205 305 - - - - 305 5 10203 10 110 210 310 110 10 - - 310 10 10204 15 115 215 315 - - 215 15 315 15 10205 20 120 220 320 120 20 - - 320 20 10206 25 125 225 325 - - - - 325 25 10207 30 130 230 330 130 30 230 30 330 30 10208 35 135 235 335 - - - - 335 35 10209 40 140 240 340 140 40 - - 340 40 10210 45 145 245 345 - - 245 45 345 45 10211 50 150 250 350 150 50 - - 350 50 10212 55 155 255 355 - - - - 355 55 10213 60 160 260 360 160 60 260 60 360 60 10214 65 165 265 365 - - - - 365 65 10215 70 170 270 370 170 70 - - 370 70 10216 75 175 275 375 - - 275 75 375 75 10217 80 180 280 380 180 80 - - 380 80 10218 85 185 285 385 - - - - 385 85 10219 90 190 290 390 190 90 290 90 390 90 10220 95 195 295 395 - - - - 395 95 10221} 10222do_execsql_test joinD-381 { 10223 SELECT t1.*, t2.*, t3.*, t4.* 10224 FROM t1 LEFT JOIN t2 ON true 10225 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10226 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10227 WHERE t1.b=t2.b AND t2.x>0 10228 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10229} { 10230 10 110 210 310 110 10 - - 310 10 10231 20 120 220 320 120 20 - - 320 20 10232 30 130 230 330 130 30 230 30 330 30 10233 40 140 240 340 140 40 - - 340 40 10234 50 150 250 350 150 50 - - 350 50 10235 60 160 260 360 160 60 260 60 360 60 10236 70 170 270 370 170 70 - - 370 70 10237 80 180 280 380 180 80 - - 380 80 10238 90 190 290 390 190 90 290 90 390 90 10239} 10240do_execsql_test joinD-382 { 10241 SELECT t1.*, t2.*, t3.*, t4.* 10242 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10243 LEFT JOIN t3 ON t1.c=t3.c 10244 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10245 WHERE t3.y>0 10246 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10247} { 10248 15 115 215 315 - - 215 15 315 15 10249 30 130 230 330 130 30 230 30 330 30 10250 45 145 245 345 - - 245 45 345 45 10251 60 160 260 360 160 60 260 60 360 60 10252 75 175 275 375 - - 275 75 375 75 10253 90 190 290 390 190 90 290 90 390 90 10254} 10255do_execsql_test joinD-383 { 10256 SELECT t1.*, t2.*, t3.*, t4.* 10257 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10258 LEFT JOIN t3 ON t1.c=t3.c 10259 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10260 WHERE t3.y>0 OR t3.y IS NULL 10261 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10262} { 10263 5 105 205 305 - - - - 305 5 10264 10 110 210 310 110 10 - - 310 10 10265 15 115 215 315 - - 215 15 315 15 10266 20 120 220 320 120 20 - - 320 20 10267 25 125 225 325 - - - - 325 25 10268 30 130 230 330 130 30 230 30 330 30 10269 35 135 235 335 - - - - 335 35 10270 40 140 240 340 140 40 - - 340 40 10271 45 145 245 345 - - 245 45 345 45 10272 50 150 250 350 150 50 - - 350 50 10273 55 155 255 355 - - - - 355 55 10274 60 160 260 360 160 60 260 60 360 60 10275 65 165 265 365 - - - - 365 65 10276 70 170 270 370 170 70 - - 370 70 10277 75 175 275 375 - - 275 75 375 75 10278 80 180 280 380 180 80 - - 380 80 10279 85 185 285 385 - - - - 385 85 10280 90 190 290 390 190 90 290 90 390 90 10281 95 195 295 395 - - - - 395 95 10282} 10283do_execsql_test joinD-384 { 10284 SELECT t1.*, t2.*, t3.*, t4.* 10285 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10286 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10287 INNER JOIN t4 ON t1.d=t4.d 10288 WHERE t4.z>0 10289 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10290} { 10291 5 105 205 305 - - - - 305 5 10292 10 110 210 310 110 10 - - 310 10 10293 15 115 215 315 - - 215 15 315 15 10294 20 120 220 320 120 20 - - 320 20 10295 25 125 225 325 - - - - 325 25 10296 30 130 230 330 130 30 230 30 330 30 10297 35 135 235 335 - - - - 335 35 10298 40 140 240 340 140 40 - - 340 40 10299 45 145 245 345 - - 245 45 345 45 10300 50 150 250 350 150 50 - - 350 50 10301 55 155 255 355 - - - - 355 55 10302 60 160 260 360 160 60 260 60 360 60 10303 65 165 265 365 - - - - 365 65 10304 70 170 270 370 170 70 - - 370 70 10305 75 175 275 375 - - 275 75 375 75 10306 80 180 280 380 180 80 - - 380 80 10307 85 185 285 385 - - - - 385 85 10308 90 190 290 390 190 90 290 90 390 90 10309 95 195 295 395 - - - - 395 95 10310} 10311do_execsql_test joinD-385 { 10312 SELECT t1.*, t2.*, t3.*, t4.* 10313 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10314 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10315 INNER JOIN t4 ON t1.d=t4.d 10316 WHERE t4.z IS NULL OR t4.z>0 10317 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10318} { 10319 5 105 205 305 - - - - 305 5 10320 10 110 210 310 110 10 - - 310 10 10321 15 115 215 315 - - 215 15 315 15 10322 20 120 220 320 120 20 - - 320 20 10323 25 125 225 325 - - - - 325 25 10324 30 130 230 330 130 30 230 30 330 30 10325 35 135 235 335 - - - - 335 35 10326 40 140 240 340 140 40 - - 340 40 10327 45 145 245 345 - - 245 45 345 45 10328 50 150 250 350 150 50 - - 350 50 10329 55 155 255 355 - - - - 355 55 10330 60 160 260 360 160 60 260 60 360 60 10331 65 165 265 365 - - - - 365 65 10332 70 170 270 370 170 70 - - 370 70 10333 75 175 275 375 - - 275 75 375 75 10334 80 180 280 380 180 80 - - 380 80 10335 85 185 285 385 - - - - 385 85 10336 90 190 290 390 190 90 290 90 390 90 10337 95 195 295 395 - - - - 395 95 10338} 10339do_execsql_test joinD-386 { 10340 SELECT t1.*, t2.*, t3.*, t4.* 10341 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 10342 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10343 INNER JOIN t4 ON t1.d=t4.d 10344 WHERE t2.x>0 AND t4.z>0 10345 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10346} { 10347 10 110 210 310 110 10 - - 310 10 10348 20 120 220 320 120 20 - - 320 20 10349 30 130 230 330 130 30 230 30 330 30 10350 40 140 240 340 140 40 - - 340 40 10351 50 150 250 350 150 50 - - 350 50 10352 60 160 260 360 160 60 260 60 360 60 10353 70 170 270 370 170 70 - - 370 70 10354 80 180 280 380 180 80 - - 380 80 10355 90 190 290 390 190 90 290 90 390 90 10356} 10357do_execsql_test joinD-387 { 10358 SELECT t1.*, t2.*, t3.*, t4.* 10359 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10360 LEFT JOIN t3 ON t1.c=t3.c 10361 INNER JOIN t4 ON t1.d=t4.d 10362 WHERE t4.z>0 AND t3.y>0 10363 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10364} { 10365 15 115 215 315 - - 215 15 315 15 10366 30 130 230 330 130 30 230 30 330 30 10367 45 145 245 345 - - 245 45 345 45 10368 60 160 260 360 160 60 260 60 360 60 10369 75 175 275 375 - - 275 75 375 75 10370 90 190 290 390 190 90 290 90 390 90 10371} 10372do_execsql_test joinD-388 { 10373 SELECT t1.*, t2.*, t3.*, t4.* 10374 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 10375 LEFT JOIN t3 ON t1.c=t3.c 10376 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10377 WHERE t2.x>0 AND t3.y>0 10378 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10379} { 10380 30 130 230 330 130 30 230 30 330 30 10381 60 160 260 360 160 60 260 60 360 60 10382 90 190 290 390 190 90 290 90 390 90 10383} 10384do_execsql_test joinD-389 { 10385 SELECT t1.*, t2.*, t3.*, t4.* 10386 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 10387 LEFT JOIN t3 ON t1.c=t3.c 10388 INNER JOIN t4 ON t1.d=t4.d 10389 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 10390 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10391} { 10392 30 130 230 330 130 30 230 30 330 30 10393 60 160 260 360 160 60 260 60 360 60 10394 90 190 290 390 190 90 290 90 390 90 10395} 10396do_execsql_test joinD-390 { 10397 SELECT t1.*, t2.*, t3.*, t4.* 10398 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 10399 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 10400 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 10401 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10402} { 10403 5 105 205 305 - - - - 305 5 10404 10 110 210 310 110 10 - - 310 10 10405 15 115 215 315 - - 215 15 315 15 10406 20 120 220 320 120 20 - - 320 20 10407 25 125 225 325 - - - - 325 25 10408 30 130 230 330 130 30 230 30 330 30 10409 35 135 235 335 - - - - 335 35 10410 40 140 240 340 140 40 - - 340 40 10411 45 145 245 345 - - 245 45 345 45 10412 50 150 250 350 150 50 - - 350 50 10413 55 155 255 355 - - - - 355 55 10414 60 160 260 360 160 60 260 60 360 60 10415 65 165 265 365 - - - - 365 65 10416 70 170 270 370 170 70 - - 370 70 10417 75 175 275 375 - - 275 75 375 75 10418 80 180 280 380 180 80 - - 380 80 10419 85 185 285 385 - - - - 385 85 10420 90 190 290 390 190 90 290 90 390 90 10421 95 195 295 395 - - - - 395 95 10422} 10423do_execsql_test joinD-391 { 10424 SELECT t1.*, t2.*, t3.*, t4.* 10425 FROM t1 LEFT JOIN t2 ON t2.x>0 10426 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 10427 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 10428 WHERE t1.b IS NOT DISTINCT FROM t2.b 10429 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10430} { 10431 10 110 210 310 110 10 - - 310 10 10432 20 120 220 320 120 20 - - 320 20 10433 30 130 230 330 130 30 230 30 330 30 10434 40 140 240 340 140 40 - - 340 40 10435 50 150 250 350 150 50 - - 350 50 10436 60 160 260 360 160 60 260 60 360 60 10437 70 170 270 370 170 70 - - 370 70 10438 80 180 280 380 180 80 - - 380 80 10439 90 190 290 390 190 90 290 90 390 90 10440} 10441do_execsql_test joinD-392 { 10442 SELECT t1.*, t2.*, t3.*, t4.* 10443 FROM t1 LEFT JOIN t2 ON t2.x>0 10444 LEFT JOIN t3 ON t3.y>0 10445 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 10446 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 10447 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10448} { 10449 30 130 230 330 130 30 230 30 330 30 10450 60 160 260 360 160 60 260 60 360 60 10451 90 190 290 390 190 90 290 90 390 90 10452} 10453do_execsql_test joinD-393 { 10454 SELECT t1.*, t2.*, t3.*, t4.* 10455 FROM t1 LEFT JOIN t2 ON t2.x>0 10456 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 10457 INNER JOIN t4 ON t4.z>0 10458 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 10459 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10460} { 10461 10 110 210 310 110 10 - - 310 10 10462 20 120 220 320 120 20 - - 320 20 10463 30 130 230 330 130 30 230 30 330 30 10464 40 140 240 340 140 40 - - 340 40 10465 50 150 250 350 150 50 - - 350 50 10466 60 160 260 360 160 60 260 60 360 60 10467 70 170 270 370 170 70 - - 370 70 10468 80 180 280 380 180 80 - - 380 80 10469 90 190 290 390 190 90 290 90 390 90 10470} 10471do_execsql_test joinD-394 { 10472 SELECT t1.*, t2.*, t3.*, t4.* 10473 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 10474 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10475 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10476 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10477} { 10478 5 105 205 305 - - - - 305 5 10479 10 110 210 310 110 10 - - 310 10 10480 15 115 215 315 - - 215 15 315 15 10481 20 120 220 320 120 20 - - 320 20 10482 25 125 225 325 - - - - 325 25 10483 30 130 230 330 130 30 230 30 330 30 10484 35 135 235 335 - - - - 335 35 10485 40 140 240 340 140 40 - - 340 40 10486 45 145 245 345 - - 245 45 345 45 10487 50 150 250 350 150 50 - - 350 50 10488 55 155 255 355 - - - - 355 55 10489 60 160 260 360 160 60 260 60 360 60 10490 65 165 265 365 - - - - 365 65 10491 70 170 270 370 170 70 - - 370 70 10492 75 175 275 375 - - 275 75 375 75 10493 80 180 280 380 180 80 - - 380 80 10494 85 185 285 385 - - - - 385 85 10495 90 190 290 390 190 90 290 90 390 90 10496 95 195 295 395 - - - - 395 95 10497} 10498do_execsql_test joinD-395 { 10499 SELECT t1.*, t2.*, t3.*, t4.* 10500 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10501 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 10502 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 10503 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10504} { 10505 5 105 205 305 - - - - 305 5 10506 10 110 210 310 110 10 - - 310 10 10507 15 115 215 315 - - 215 15 315 15 10508 20 120 220 320 120 20 - - 320 20 10509 25 125 225 325 - - - - 325 25 10510 30 130 230 330 130 30 230 30 330 30 10511 35 135 235 335 - - - - 335 35 10512 40 140 240 340 140 40 - - 340 40 10513 45 145 245 345 - - 245 45 345 45 10514 50 150 250 350 150 50 - - 350 50 10515 55 155 255 355 - - - - 355 55 10516 60 160 260 360 160 60 260 60 360 60 10517 65 165 265 365 - - - - 365 65 10518 70 170 270 370 170 70 - - 370 70 10519 75 175 275 375 - - 275 75 375 75 10520 80 180 280 380 180 80 - - 380 80 10521 85 185 285 385 - - - - 385 85 10522 90 190 290 390 190 90 290 90 390 90 10523 95 195 295 395 - - - - 395 95 10524} 10525do_execsql_test joinD-396 { 10526 SELECT t1.*, t2.*, t3.*, t4.* 10527 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10528 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10529 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 10530 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10531} { 10532 0 100 200 300 - - - - - - 10533 1 101 201 301 - - - - - - 10534 2 102 202 302 102 2 - - - - 10535 3 103 203 303 - - 203 3 - - 10536 4 104 204 304 104 4 - - - - 10537 5 105 205 305 - - - - 305 5 10538 6 106 206 306 106 6 206 6 - - 10539 7 107 207 307 - - - - - - 10540 8 108 208 308 108 8 - - - - 10541 9 109 209 309 - - 209 9 - - 10542 10 110 210 310 110 10 - - 310 10 10543 11 111 211 311 - - - - - - 10544 12 112 212 312 112 12 212 12 - - 10545 13 113 213 313 - - - - - - 10546 14 114 214 314 114 14 - - - - 10547 15 115 215 315 - - 215 15 315 15 10548 16 116 216 316 116 16 - - - - 10549 17 117 217 317 - - - - - - 10550 18 118 218 318 118 18 218 18 - - 10551 19 119 219 319 - - - - - - 10552 20 120 220 320 120 20 - - 320 20 10553 21 121 221 321 - - 221 21 - - 10554 22 122 222 322 122 22 - - - - 10555 23 123 223 323 - - - - - - 10556 24 124 224 324 124 24 224 24 - - 10557 25 125 225 325 - - - - 325 25 10558 26 126 226 326 126 26 - - - - 10559 27 127 227 327 - - 227 27 - - 10560 28 128 228 328 128 28 - - - - 10561 29 129 229 329 - - - - - - 10562 30 130 230 330 130 30 230 30 330 30 10563 31 131 231 331 - - - - - - 10564 32 132 232 332 132 32 - - - - 10565 33 133 233 333 - - 233 33 - - 10566 34 134 234 334 134 34 - - - - 10567 35 135 235 335 - - - - 335 35 10568 36 136 236 336 136 36 236 36 - - 10569 37 137 237 337 - - - - - - 10570 38 138 238 338 138 38 - - - - 10571 39 139 239 339 - - 239 39 - - 10572 40 140 240 340 140 40 - - 340 40 10573 41 141 241 341 - - - - - - 10574 42 142 242 342 142 42 242 42 - - 10575 43 143 243 343 - - - - - - 10576 44 144 244 344 144 44 - - - - 10577 45 145 245 345 - - 245 45 345 45 10578 46 146 246 346 146 46 - - - - 10579 47 147 247 347 - - - - - - 10580 48 148 248 348 148 48 248 48 - - 10581 49 149 249 349 - - - - - - 10582 50 150 250 350 150 50 - - 350 50 10583 51 151 251 351 - - 251 51 - - 10584 52 152 252 352 152 52 - - - - 10585 53 153 253 353 - - - - - - 10586 54 154 254 354 154 54 254 54 - - 10587 55 155 255 355 - - - - 355 55 10588 56 156 256 356 156 56 - - - - 10589 57 157 257 357 - - 257 57 - - 10590 58 158 258 358 158 58 - - - - 10591 59 159 259 359 - - - - - - 10592 60 160 260 360 160 60 260 60 360 60 10593 61 161 261 361 - - - - - - 10594 62 162 262 362 162 62 - - - - 10595 63 163 263 363 - - 263 63 - - 10596 64 164 264 364 164 64 - - - - 10597 65 165 265 365 - - - - 365 65 10598 66 166 266 366 166 66 266 66 - - 10599 67 167 267 367 - - - - - - 10600 68 168 268 368 168 68 - - - - 10601 69 169 269 369 - - 269 69 - - 10602 70 170 270 370 170 70 - - 370 70 10603 71 171 271 371 - - - - - - 10604 72 172 272 372 172 72 272 72 - - 10605 73 173 273 373 - - - - - - 10606 74 174 274 374 174 74 - - - - 10607 75 175 275 375 - - 275 75 375 75 10608 76 176 276 376 176 76 - - - - 10609 77 177 277 377 - - - - - - 10610 78 178 278 378 178 78 278 78 - - 10611 79 179 279 379 - - - - - - 10612 80 180 280 380 180 80 - - 380 80 10613 81 181 281 381 - - 281 81 - - 10614 82 182 282 382 182 82 - - - - 10615 83 183 283 383 - - - - - - 10616 84 184 284 384 184 84 284 84 - - 10617 85 185 285 385 - - - - 385 85 10618 86 186 286 386 186 86 - - - - 10619 87 187 287 387 - - 287 87 - - 10620 88 188 288 388 188 88 - - - - 10621 89 189 289 389 - - - - - - 10622 90 190 290 390 190 90 290 90 390 90 10623 91 191 291 391 - - - - - - 10624 92 192 292 392 192 92 - - - - 10625 93 193 293 393 - - 293 93 - - 10626 94 194 294 394 194 94 - - - - 10627 95 195 295 395 - - - - 395 95 10628 96 - 296 396 - - - - - - 10629 97 197 - 397 - - - - - - 10630 98 198 298 - - - - - - - 10631 99 - - - - - - - - - 10632} 10633do_execsql_test joinD-397 { 10634 SELECT t1.*, t2.*, t3.*, t4.* 10635 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 10636 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10637 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 10638 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10639} { 10640 0 100 200 300 - - - - - - 10641 1 101 201 301 - - - - - - 10642 2 102 202 302 102 2 - - - - 10643 3 103 203 303 - - 203 3 - - 10644 4 104 204 304 104 4 - - - - 10645 5 105 205 305 - - - - 305 5 10646 6 106 206 306 106 6 206 6 - - 10647 7 107 207 307 - - - - - - 10648 8 108 208 308 108 8 - - - - 10649 9 109 209 309 - - 209 9 - - 10650 10 110 210 310 110 10 - - 310 10 10651 11 111 211 311 - - - - - - 10652 12 112 212 312 112 12 212 12 - - 10653 13 113 213 313 - - - - - - 10654 14 114 214 314 114 14 - - - - 10655 15 115 215 315 - - 215 15 315 15 10656 16 116 216 316 116 16 - - - - 10657 17 117 217 317 - - - - - - 10658 18 118 218 318 118 18 218 18 - - 10659 19 119 219 319 - - - - - - 10660 20 120 220 320 120 20 - - 320 20 10661 21 121 221 321 - - 221 21 - - 10662 22 122 222 322 122 22 - - - - 10663 23 123 223 323 - - - - - - 10664 24 124 224 324 124 24 224 24 - - 10665 25 125 225 325 - - - - 325 25 10666 26 126 226 326 126 26 - - - - 10667 27 127 227 327 - - 227 27 - - 10668 28 128 228 328 128 28 - - - - 10669 29 129 229 329 - - - - - - 10670 30 130 230 330 130 30 230 30 330 30 10671 31 131 231 331 - - - - - - 10672 32 132 232 332 132 32 - - - - 10673 33 133 233 333 - - 233 33 - - 10674 34 134 234 334 134 34 - - - - 10675 35 135 235 335 - - - - 335 35 10676 36 136 236 336 136 36 236 36 - - 10677 37 137 237 337 - - - - - - 10678 38 138 238 338 138 38 - - - - 10679 39 139 239 339 - - 239 39 - - 10680 40 140 240 340 140 40 - - 340 40 10681 41 141 241 341 - - - - - - 10682 42 142 242 342 142 42 242 42 - - 10683 43 143 243 343 - - - - - - 10684 44 144 244 344 144 44 - - - - 10685 45 145 245 345 - - 245 45 345 45 10686 46 146 246 346 146 46 - - - - 10687 47 147 247 347 - - - - - - 10688 48 148 248 348 148 48 248 48 - - 10689 49 149 249 349 - - - - - - 10690 50 150 250 350 150 50 - - 350 50 10691 51 151 251 351 - - 251 51 - - 10692 52 152 252 352 152 52 - - - - 10693 53 153 253 353 - - - - - - 10694 54 154 254 354 154 54 254 54 - - 10695 55 155 255 355 - - - - 355 55 10696 56 156 256 356 156 56 - - - - 10697 57 157 257 357 - - 257 57 - - 10698 58 158 258 358 158 58 - - - - 10699 59 159 259 359 - - - - - - 10700 60 160 260 360 160 60 260 60 360 60 10701 61 161 261 361 - - - - - - 10702 62 162 262 362 162 62 - - - - 10703 63 163 263 363 - - 263 63 - - 10704 64 164 264 364 164 64 - - - - 10705 65 165 265 365 - - - - 365 65 10706 66 166 266 366 166 66 266 66 - - 10707 67 167 267 367 - - - - - - 10708 68 168 268 368 168 68 - - - - 10709 69 169 269 369 - - 269 69 - - 10710 70 170 270 370 170 70 - - 370 70 10711 71 171 271 371 - - - - - - 10712 72 172 272 372 172 72 272 72 - - 10713 73 173 273 373 - - - - - - 10714 74 174 274 374 174 74 - - - - 10715 75 175 275 375 - - 275 75 375 75 10716 76 176 276 376 176 76 - - - - 10717 77 177 277 377 - - - - - - 10718 78 178 278 378 178 78 278 78 - - 10719 79 179 279 379 - - - - - - 10720 80 180 280 380 180 80 - - 380 80 10721 81 181 281 381 - - 281 81 - - 10722 82 182 282 382 182 82 - - - - 10723 83 183 283 383 - - - - - - 10724 84 184 284 384 184 84 284 84 - - 10725 85 185 285 385 - - - - 385 85 10726 86 186 286 386 186 86 - - - - 10727 87 187 287 387 - - 287 87 - - 10728 88 188 288 388 188 88 - - - - 10729 89 189 289 389 - - - - - - 10730 90 190 290 390 190 90 290 90 390 90 10731 91 191 291 391 - - - - - - 10732 92 192 292 392 192 92 - - - - 10733 93 193 293 393 - - 293 93 - - 10734 94 194 294 394 194 94 - - - - 10735 95 195 295 395 - - - - 395 95 10736 96 - 296 396 - - - - - - 10737 97 197 - 397 - - - - - - 10738 98 198 298 - - - - - - - 10739 99 - - - - - - - - - 10740} 10741do_execsql_test joinD-398 { 10742 SELECT t1.*, t2.*, t3.*, t4.* 10743 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 10744 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10745 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 10746 WHERE t2.x>0 10747 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10748} { 10749 2 102 202 302 102 2 - - - - 10750 4 104 204 304 104 4 - - - - 10751 6 106 206 306 106 6 206 6 - - 10752 8 108 208 308 108 8 - - - - 10753 10 110 210 310 110 10 - - 310 10 10754 12 112 212 312 112 12 212 12 - - 10755 14 114 214 314 114 14 - - - - 10756 16 116 216 316 116 16 - - - - 10757 18 118 218 318 118 18 218 18 - - 10758 20 120 220 320 120 20 - - 320 20 10759 22 122 222 322 122 22 - - - - 10760 24 124 224 324 124 24 224 24 - - 10761 26 126 226 326 126 26 - - - - 10762 28 128 228 328 128 28 - - - - 10763 30 130 230 330 130 30 230 30 330 30 10764 32 132 232 332 132 32 - - - - 10765 34 134 234 334 134 34 - - - - 10766 36 136 236 336 136 36 236 36 - - 10767 38 138 238 338 138 38 - - - - 10768 40 140 240 340 140 40 - - 340 40 10769 42 142 242 342 142 42 242 42 - - 10770 44 144 244 344 144 44 - - - - 10771 46 146 246 346 146 46 - - - - 10772 48 148 248 348 148 48 248 48 - - 10773 50 150 250 350 150 50 - - 350 50 10774 52 152 252 352 152 52 - - - - 10775 54 154 254 354 154 54 254 54 - - 10776 56 156 256 356 156 56 - - - - 10777 58 158 258 358 158 58 - - - - 10778 60 160 260 360 160 60 260 60 360 60 10779 62 162 262 362 162 62 - - - - 10780 64 164 264 364 164 64 - - - - 10781 66 166 266 366 166 66 266 66 - - 10782 68 168 268 368 168 68 - - - - 10783 70 170 270 370 170 70 - - 370 70 10784 72 172 272 372 172 72 272 72 - - 10785 74 174 274 374 174 74 - - - - 10786 76 176 276 376 176 76 - - - - 10787 78 178 278 378 178 78 278 78 - - 10788 80 180 280 380 180 80 - - 380 80 10789 82 182 282 382 182 82 - - - - 10790 84 184 284 384 184 84 284 84 - - 10791 86 186 286 386 186 86 - - - - 10792 88 188 288 388 188 88 - - - - 10793 90 190 290 390 190 90 290 90 390 90 10794 92 192 292 392 192 92 - - - - 10795 94 194 294 394 194 94 - - - - 10796} 10797do_execsql_test joinD-399 { 10798 SELECT t1.*, t2.*, t3.*, t4.* 10799 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 10800 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10801 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 10802 WHERE (t2.x>0 OR t2.x IS NULL) 10803 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10804} { 10805 1 101 201 301 - - - - - - 10806 2 102 202 302 102 2 - - - - 10807 3 103 203 303 - - 203 3 - - 10808 4 104 204 304 104 4 - - - - 10809 5 105 205 305 - - - - 305 5 10810 6 106 206 306 106 6 206 6 - - 10811 7 107 207 307 - - - - - - 10812 8 108 208 308 108 8 - - - - 10813 9 109 209 309 - - 209 9 - - 10814 10 110 210 310 110 10 - - 310 10 10815 11 111 211 311 - - - - - - 10816 12 112 212 312 112 12 212 12 - - 10817 13 113 213 313 - - - - - - 10818 14 114 214 314 114 14 - - - - 10819 15 115 215 315 - - 215 15 315 15 10820 16 116 216 316 116 16 - - - - 10821 17 117 217 317 - - - - - - 10822 18 118 218 318 118 18 218 18 - - 10823 19 119 219 319 - - - - - - 10824 20 120 220 320 120 20 - - 320 20 10825 21 121 221 321 - - 221 21 - - 10826 22 122 222 322 122 22 - - - - 10827 23 123 223 323 - - - - - - 10828 24 124 224 324 124 24 224 24 - - 10829 25 125 225 325 - - - - 325 25 10830 26 126 226 326 126 26 - - - - 10831 27 127 227 327 - - 227 27 - - 10832 28 128 228 328 128 28 - - - - 10833 29 129 229 329 - - - - - - 10834 30 130 230 330 130 30 230 30 330 30 10835 31 131 231 331 - - - - - - 10836 32 132 232 332 132 32 - - - - 10837 33 133 233 333 - - 233 33 - - 10838 34 134 234 334 134 34 - - - - 10839 35 135 235 335 - - - - 335 35 10840 36 136 236 336 136 36 236 36 - - 10841 37 137 237 337 - - - - - - 10842 38 138 238 338 138 38 - - - - 10843 39 139 239 339 - - 239 39 - - 10844 40 140 240 340 140 40 - - 340 40 10845 41 141 241 341 - - - - - - 10846 42 142 242 342 142 42 242 42 - - 10847 43 143 243 343 - - - - - - 10848 44 144 244 344 144 44 - - - - 10849 45 145 245 345 - - 245 45 345 45 10850 46 146 246 346 146 46 - - - - 10851 47 147 247 347 - - - - - - 10852 48 148 248 348 148 48 248 48 - - 10853 49 149 249 349 - - - - - - 10854 50 150 250 350 150 50 - - 350 50 10855 51 151 251 351 - - 251 51 - - 10856 52 152 252 352 152 52 - - - - 10857 53 153 253 353 - - - - - - 10858 54 154 254 354 154 54 254 54 - - 10859 55 155 255 355 - - - - 355 55 10860 56 156 256 356 156 56 - - - - 10861 57 157 257 357 - - 257 57 - - 10862 58 158 258 358 158 58 - - - - 10863 59 159 259 359 - - - - - - 10864 60 160 260 360 160 60 260 60 360 60 10865 61 161 261 361 - - - - - - 10866 62 162 262 362 162 62 - - - - 10867 63 163 263 363 - - 263 63 - - 10868 64 164 264 364 164 64 - - - - 10869 65 165 265 365 - - - - 365 65 10870 66 166 266 366 166 66 266 66 - - 10871 67 167 267 367 - - - - - - 10872 68 168 268 368 168 68 - - - - 10873 69 169 269 369 - - 269 69 - - 10874 70 170 270 370 170 70 - - 370 70 10875 71 171 271 371 - - - - - - 10876 72 172 272 372 172 72 272 72 - - 10877 73 173 273 373 - - - - - - 10878 74 174 274 374 174 74 - - - - 10879 75 175 275 375 - - 275 75 375 75 10880 76 176 276 376 176 76 - - - - 10881 77 177 277 377 - - - - - - 10882 78 178 278 378 178 78 278 78 - - 10883 79 179 279 379 - - - - - - 10884 80 180 280 380 180 80 - - 380 80 10885 81 181 281 381 - - 281 81 - - 10886 82 182 282 382 182 82 - - - - 10887 83 183 283 383 - - - - - - 10888 84 184 284 384 184 84 284 84 - - 10889 85 185 285 385 - - - - 385 85 10890 86 186 286 386 186 86 - - - - 10891 87 187 287 387 - - 287 87 - - 10892 88 188 288 388 188 88 - - - - 10893 89 189 289 389 - - - - - - 10894 90 190 290 390 190 90 290 90 390 90 10895 91 191 291 391 - - - - - - 10896 92 192 292 392 192 92 - - - - 10897 93 193 293 393 - - 293 93 - - 10898 94 194 294 394 194 94 - - - - 10899 95 195 295 395 - - - - 395 95 10900 96 - 296 396 - - - - - - 10901 97 197 - 397 - - - - - - 10902 98 198 298 - - - - - - - 10903 99 - - - - - - - - - 10904} 10905do_execsql_test joinD-400 { 10906 SELECT t1.*, t2.*, t3.*, t4.* 10907 FROM t1 LEFT JOIN t2 ON true 10908 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 10909 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 10910 WHERE t1.b=t2.b AND t2.x>0 10911 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10912} { 10913 2 102 202 302 102 2 - - - - 10914 4 104 204 304 104 4 - - - - 10915 6 106 206 306 106 6 206 6 - - 10916 8 108 208 308 108 8 - - - - 10917 10 110 210 310 110 10 - - 310 10 10918 12 112 212 312 112 12 212 12 - - 10919 14 114 214 314 114 14 - - - - 10920 16 116 216 316 116 16 - - - - 10921 18 118 218 318 118 18 218 18 - - 10922 20 120 220 320 120 20 - - 320 20 10923 22 122 222 322 122 22 - - - - 10924 24 124 224 324 124 24 224 24 - - 10925 26 126 226 326 126 26 - - - - 10926 28 128 228 328 128 28 - - - - 10927 30 130 230 330 130 30 230 30 330 30 10928 32 132 232 332 132 32 - - - - 10929 34 134 234 334 134 34 - - - - 10930 36 136 236 336 136 36 236 36 - - 10931 38 138 238 338 138 38 - - - - 10932 40 140 240 340 140 40 - - 340 40 10933 42 142 242 342 142 42 242 42 - - 10934 44 144 244 344 144 44 - - - - 10935 46 146 246 346 146 46 - - - - 10936 48 148 248 348 148 48 248 48 - - 10937 50 150 250 350 150 50 - - 350 50 10938 52 152 252 352 152 52 - - - - 10939 54 154 254 354 154 54 254 54 - - 10940 56 156 256 356 156 56 - - - - 10941 58 158 258 358 158 58 - - - - 10942 60 160 260 360 160 60 260 60 360 60 10943 62 162 262 362 162 62 - - - - 10944 64 164 264 364 164 64 - - - - 10945 66 166 266 366 166 66 266 66 - - 10946 68 168 268 368 168 68 - - - - 10947 70 170 270 370 170 70 - - 370 70 10948 72 172 272 372 172 72 272 72 - - 10949 74 174 274 374 174 74 - - - - 10950 76 176 276 376 176 76 - - - - 10951 78 178 278 378 178 78 278 78 - - 10952 80 180 280 380 180 80 - - 380 80 10953 82 182 282 382 182 82 - - - - 10954 84 184 284 384 184 84 284 84 - - 10955 86 186 286 386 186 86 - - - - 10956 88 188 288 388 188 88 - - - - 10957 90 190 290 390 190 90 290 90 390 90 10958 92 192 292 392 192 92 - - - - 10959 94 194 294 394 194 94 - - - - 10960} 10961do_execsql_test joinD-401 { 10962 SELECT t1.*, t2.*, t3.*, t4.* 10963 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 10964 LEFT JOIN t3 ON t1.c=t3.c 10965 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 10966 WHERE t3.y>0 10967 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 10968} { 10969 3 103 203 303 - - 203 3 - - 10970 6 106 206 306 106 6 206 6 - - 10971 9 109 209 309 - - 209 9 - - 10972 12 112 212 312 112 12 212 12 - - 10973 15 115 215 315 - - 215 15 315 15 10974 18 118 218 318 118 18 218 18 - - 10975 21 121 221 321 - - 221 21 - - 10976 24 124 224 324 124 24 224 24 - - 10977 27 127 227 327 - - 227 27 - - 10978 30 130 230 330 130 30 230 30 330 30 10979 33 133 233 333 - - 233 33 - - 10980 36 136 236 336 136 36 236 36 - - 10981 39 139 239 339 - - 239 39 - - 10982 42 142 242 342 142 42 242 42 - - 10983 45 145 245 345 - - 245 45 345 45 10984 48 148 248 348 148 48 248 48 - - 10985 51 151 251 351 - - 251 51 - - 10986 54 154 254 354 154 54 254 54 - - 10987 57 157 257 357 - - 257 57 - - 10988 60 160 260 360 160 60 260 60 360 60 10989 63 163 263 363 - - 263 63 - - 10990 66 166 266 366 166 66 266 66 - - 10991 69 169 269 369 - - 269 69 - - 10992 72 172 272 372 172 72 272 72 - - 10993 75 175 275 375 - - 275 75 375 75 10994 78 178 278 378 178 78 278 78 - - 10995 81 181 281 381 - - 281 81 - - 10996 84 184 284 384 184 84 284 84 - - 10997 87 187 287 387 - - 287 87 - - 10998 90 190 290 390 190 90 290 90 390 90 10999 93 193 293 393 - - 293 93 - - 11000} 11001do_execsql_test joinD-402 { 11002 SELECT t1.*, t2.*, t3.*, t4.* 11003 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11004 LEFT JOIN t3 ON t1.c=t3.c 11005 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 11006 WHERE t3.y>0 OR t3.y IS NULL 11007 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11008} { 11009 1 101 201 301 - - - - - - 11010 2 102 202 302 102 2 - - - - 11011 3 103 203 303 - - 203 3 - - 11012 4 104 204 304 104 4 - - - - 11013 5 105 205 305 - - - - 305 5 11014 6 106 206 306 106 6 206 6 - - 11015 7 107 207 307 - - - - - - 11016 8 108 208 308 108 8 - - - - 11017 9 109 209 309 - - 209 9 - - 11018 10 110 210 310 110 10 - - 310 10 11019 11 111 211 311 - - - - - - 11020 12 112 212 312 112 12 212 12 - - 11021 13 113 213 313 - - - - - - 11022 14 114 214 314 114 14 - - - - 11023 15 115 215 315 - - 215 15 315 15 11024 16 116 216 316 116 16 - - - - 11025 17 117 217 317 - - - - - - 11026 18 118 218 318 118 18 218 18 - - 11027 19 119 219 319 - - - - - - 11028 20 120 220 320 120 20 - - 320 20 11029 21 121 221 321 - - 221 21 - - 11030 22 122 222 322 122 22 - - - - 11031 23 123 223 323 - - - - - - 11032 24 124 224 324 124 24 224 24 - - 11033 25 125 225 325 - - - - 325 25 11034 26 126 226 326 126 26 - - - - 11035 27 127 227 327 - - 227 27 - - 11036 28 128 228 328 128 28 - - - - 11037 29 129 229 329 - - - - - - 11038 30 130 230 330 130 30 230 30 330 30 11039 31 131 231 331 - - - - - - 11040 32 132 232 332 132 32 - - - - 11041 33 133 233 333 - - 233 33 - - 11042 34 134 234 334 134 34 - - - - 11043 35 135 235 335 - - - - 335 35 11044 36 136 236 336 136 36 236 36 - - 11045 37 137 237 337 - - - - - - 11046 38 138 238 338 138 38 - - - - 11047 39 139 239 339 - - 239 39 - - 11048 40 140 240 340 140 40 - - 340 40 11049 41 141 241 341 - - - - - - 11050 42 142 242 342 142 42 242 42 - - 11051 43 143 243 343 - - - - - - 11052 44 144 244 344 144 44 - - - - 11053 45 145 245 345 - - 245 45 345 45 11054 46 146 246 346 146 46 - - - - 11055 47 147 247 347 - - - - - - 11056 48 148 248 348 148 48 248 48 - - 11057 49 149 249 349 - - - - - - 11058 50 150 250 350 150 50 - - 350 50 11059 51 151 251 351 - - 251 51 - - 11060 52 152 252 352 152 52 - - - - 11061 53 153 253 353 - - - - - - 11062 54 154 254 354 154 54 254 54 - - 11063 55 155 255 355 - - - - 355 55 11064 56 156 256 356 156 56 - - - - 11065 57 157 257 357 - - 257 57 - - 11066 58 158 258 358 158 58 - - - - 11067 59 159 259 359 - - - - - - 11068 60 160 260 360 160 60 260 60 360 60 11069 61 161 261 361 - - - - - - 11070 62 162 262 362 162 62 - - - - 11071 63 163 263 363 - - 263 63 - - 11072 64 164 264 364 164 64 - - - - 11073 65 165 265 365 - - - - 365 65 11074 66 166 266 366 166 66 266 66 - - 11075 67 167 267 367 - - - - - - 11076 68 168 268 368 168 68 - - - - 11077 69 169 269 369 - - 269 69 - - 11078 70 170 270 370 170 70 - - 370 70 11079 71 171 271 371 - - - - - - 11080 72 172 272 372 172 72 272 72 - - 11081 73 173 273 373 - - - - - - 11082 74 174 274 374 174 74 - - - - 11083 75 175 275 375 - - 275 75 375 75 11084 76 176 276 376 176 76 - - - - 11085 77 177 277 377 - - - - - - 11086 78 178 278 378 178 78 278 78 - - 11087 79 179 279 379 - - - - - - 11088 80 180 280 380 180 80 - - 380 80 11089 81 181 281 381 - - 281 81 - - 11090 82 182 282 382 182 82 - - - - 11091 83 183 283 383 - - - - - - 11092 84 184 284 384 184 84 284 84 - - 11093 85 185 285 385 - - - - 385 85 11094 86 186 286 386 186 86 - - - - 11095 87 187 287 387 - - 287 87 - - 11096 88 188 288 388 188 88 - - - - 11097 89 189 289 389 - - - - - - 11098 90 190 290 390 190 90 290 90 390 90 11099 91 191 291 391 - - - - - - 11100 92 192 292 392 192 92 - - - - 11101 93 193 293 393 - - 293 93 - - 11102 94 194 294 394 194 94 - - - - 11103 95 195 295 395 - - - - 395 95 11104 96 - 296 396 - - - - - - 11105 97 197 - 397 - - - - - - 11106 98 198 298 - - - - - - - 11107 99 - - - - - - - - - 11108} 11109do_execsql_test joinD-403 { 11110 SELECT t1.*, t2.*, t3.*, t4.* 11111 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11112 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11113 LEFT JOIN t4 ON t1.d=t4.d 11114 WHERE t4.z>0 11115 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11116} { 11117 5 105 205 305 - - - - 305 5 11118 10 110 210 310 110 10 - - 310 10 11119 15 115 215 315 - - 215 15 315 15 11120 20 120 220 320 120 20 - - 320 20 11121 25 125 225 325 - - - - 325 25 11122 30 130 230 330 130 30 230 30 330 30 11123 35 135 235 335 - - - - 335 35 11124 40 140 240 340 140 40 - - 340 40 11125 45 145 245 345 - - 245 45 345 45 11126 50 150 250 350 150 50 - - 350 50 11127 55 155 255 355 - - - - 355 55 11128 60 160 260 360 160 60 260 60 360 60 11129 65 165 265 365 - - - - 365 65 11130 70 170 270 370 170 70 - - 370 70 11131 75 175 275 375 - - 275 75 375 75 11132 80 180 280 380 180 80 - - 380 80 11133 85 185 285 385 - - - - 385 85 11134 90 190 290 390 190 90 290 90 390 90 11135 95 195 295 395 - - - - 395 95 11136} 11137do_execsql_test joinD-404 { 11138 SELECT t1.*, t2.*, t3.*, t4.* 11139 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11140 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11141 LEFT JOIN t4 ON t1.d=t4.d 11142 WHERE t4.z IS NULL OR t4.z>0 11143 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11144} { 11145 1 101 201 301 - - - - - - 11146 2 102 202 302 102 2 - - - - 11147 3 103 203 303 - - 203 3 - - 11148 4 104 204 304 104 4 - - - - 11149 5 105 205 305 - - - - 305 5 11150 6 106 206 306 106 6 206 6 - - 11151 7 107 207 307 - - - - - - 11152 8 108 208 308 108 8 - - - - 11153 9 109 209 309 - - 209 9 - - 11154 10 110 210 310 110 10 - - 310 10 11155 11 111 211 311 - - - - - - 11156 12 112 212 312 112 12 212 12 - - 11157 13 113 213 313 - - - - - - 11158 14 114 214 314 114 14 - - - - 11159 15 115 215 315 - - 215 15 315 15 11160 16 116 216 316 116 16 - - - - 11161 17 117 217 317 - - - - - - 11162 18 118 218 318 118 18 218 18 - - 11163 19 119 219 319 - - - - - - 11164 20 120 220 320 120 20 - - 320 20 11165 21 121 221 321 - - 221 21 - - 11166 22 122 222 322 122 22 - - - - 11167 23 123 223 323 - - - - - - 11168 24 124 224 324 124 24 224 24 - - 11169 25 125 225 325 - - - - 325 25 11170 26 126 226 326 126 26 - - - - 11171 27 127 227 327 - - 227 27 - - 11172 28 128 228 328 128 28 - - - - 11173 29 129 229 329 - - - - - - 11174 30 130 230 330 130 30 230 30 330 30 11175 31 131 231 331 - - - - - - 11176 32 132 232 332 132 32 - - - - 11177 33 133 233 333 - - 233 33 - - 11178 34 134 234 334 134 34 - - - - 11179 35 135 235 335 - - - - 335 35 11180 36 136 236 336 136 36 236 36 - - 11181 37 137 237 337 - - - - - - 11182 38 138 238 338 138 38 - - - - 11183 39 139 239 339 - - 239 39 - - 11184 40 140 240 340 140 40 - - 340 40 11185 41 141 241 341 - - - - - - 11186 42 142 242 342 142 42 242 42 - - 11187 43 143 243 343 - - - - - - 11188 44 144 244 344 144 44 - - - - 11189 45 145 245 345 - - 245 45 345 45 11190 46 146 246 346 146 46 - - - - 11191 47 147 247 347 - - - - - - 11192 48 148 248 348 148 48 248 48 - - 11193 49 149 249 349 - - - - - - 11194 50 150 250 350 150 50 - - 350 50 11195 51 151 251 351 - - 251 51 - - 11196 52 152 252 352 152 52 - - - - 11197 53 153 253 353 - - - - - - 11198 54 154 254 354 154 54 254 54 - - 11199 55 155 255 355 - - - - 355 55 11200 56 156 256 356 156 56 - - - - 11201 57 157 257 357 - - 257 57 - - 11202 58 158 258 358 158 58 - - - - 11203 59 159 259 359 - - - - - - 11204 60 160 260 360 160 60 260 60 360 60 11205 61 161 261 361 - - - - - - 11206 62 162 262 362 162 62 - - - - 11207 63 163 263 363 - - 263 63 - - 11208 64 164 264 364 164 64 - - - - 11209 65 165 265 365 - - - - 365 65 11210 66 166 266 366 166 66 266 66 - - 11211 67 167 267 367 - - - - - - 11212 68 168 268 368 168 68 - - - - 11213 69 169 269 369 - - 269 69 - - 11214 70 170 270 370 170 70 - - 370 70 11215 71 171 271 371 - - - - - - 11216 72 172 272 372 172 72 272 72 - - 11217 73 173 273 373 - - - - - - 11218 74 174 274 374 174 74 - - - - 11219 75 175 275 375 - - 275 75 375 75 11220 76 176 276 376 176 76 - - - - 11221 77 177 277 377 - - - - - - 11222 78 178 278 378 178 78 278 78 - - 11223 79 179 279 379 - - - - - - 11224 80 180 280 380 180 80 - - 380 80 11225 81 181 281 381 - - 281 81 - - 11226 82 182 282 382 182 82 - - - - 11227 83 183 283 383 - - - - - - 11228 84 184 284 384 184 84 284 84 - - 11229 85 185 285 385 - - - - 385 85 11230 86 186 286 386 186 86 - - - - 11231 87 187 287 387 - - 287 87 - - 11232 88 188 288 388 188 88 - - - - 11233 89 189 289 389 - - - - - - 11234 90 190 290 390 190 90 290 90 390 90 11235 91 191 291 391 - - - - - - 11236 92 192 292 392 192 92 - - - - 11237 93 193 293 393 - - 293 93 - - 11238 94 194 294 394 194 94 - - - - 11239 95 195 295 395 - - - - 395 95 11240 96 - 296 396 - - - - - - 11241 97 197 - 397 - - - - - - 11242 98 198 298 - - - - - - - 11243 99 - - - - - - - - - 11244} 11245do_execsql_test joinD-405 { 11246 SELECT t1.*, t2.*, t3.*, t4.* 11247 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 11248 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11249 LEFT JOIN t4 ON t1.d=t4.d 11250 WHERE t2.x>0 AND t4.z>0 11251 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11252} { 11253 10 110 210 310 110 10 - - 310 10 11254 20 120 220 320 120 20 - - 320 20 11255 30 130 230 330 130 30 230 30 330 30 11256 40 140 240 340 140 40 - - 340 40 11257 50 150 250 350 150 50 - - 350 50 11258 60 160 260 360 160 60 260 60 360 60 11259 70 170 270 370 170 70 - - 370 70 11260 80 180 280 380 180 80 - - 380 80 11261 90 190 290 390 190 90 290 90 390 90 11262} 11263do_execsql_test joinD-406 { 11264 SELECT t1.*, t2.*, t3.*, t4.* 11265 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11266 LEFT JOIN t3 ON t1.c=t3.c 11267 LEFT JOIN t4 ON t1.d=t4.d 11268 WHERE t4.z>0 AND t3.y>0 11269 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11270} { 11271 15 115 215 315 - - 215 15 315 15 11272 30 130 230 330 130 30 230 30 330 30 11273 45 145 245 345 - - 245 45 345 45 11274 60 160 260 360 160 60 260 60 360 60 11275 75 175 275 375 - - 275 75 375 75 11276 90 190 290 390 190 90 290 90 390 90 11277} 11278do_execsql_test joinD-407 { 11279 SELECT t1.*, t2.*, t3.*, t4.* 11280 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 11281 LEFT JOIN t3 ON t1.c=t3.c 11282 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 11283 WHERE t2.x>0 AND t3.y>0 11284 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11285} { 11286 6 106 206 306 106 6 206 6 - - 11287 12 112 212 312 112 12 212 12 - - 11288 18 118 218 318 118 18 218 18 - - 11289 24 124 224 324 124 24 224 24 - - 11290 30 130 230 330 130 30 230 30 330 30 11291 36 136 236 336 136 36 236 36 - - 11292 42 142 242 342 142 42 242 42 - - 11293 48 148 248 348 148 48 248 48 - - 11294 54 154 254 354 154 54 254 54 - - 11295 60 160 260 360 160 60 260 60 360 60 11296 66 166 266 366 166 66 266 66 - - 11297 72 172 272 372 172 72 272 72 - - 11298 78 178 278 378 178 78 278 78 - - 11299 84 184 284 384 184 84 284 84 - - 11300 90 190 290 390 190 90 290 90 390 90 11301} 11302do_execsql_test joinD-408 { 11303 SELECT t1.*, t2.*, t3.*, t4.* 11304 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 11305 LEFT JOIN t3 ON t1.c=t3.c 11306 LEFT JOIN t4 ON t1.d=t4.d 11307 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 11308 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11309} { 11310 30 130 230 330 130 30 230 30 330 30 11311 60 160 260 360 160 60 260 60 360 60 11312 90 190 290 390 190 90 290 90 390 90 11313} 11314do_execsql_test joinD-409 { 11315 SELECT t1.*, t2.*, t3.*, t4.* 11316 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 11317 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 11318 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 11319 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11320} { 11321 0 100 200 300 - - - - - - 11322 1 101 201 301 - - - - - - 11323 2 102 202 302 102 2 - - - - 11324 3 103 203 303 - - 203 3 - - 11325 4 104 204 304 104 4 - - - - 11326 5 105 205 305 - - - - 305 5 11327 6 106 206 306 106 6 206 6 - - 11328 7 107 207 307 - - - - - - 11329 8 108 208 308 108 8 - - - - 11330 9 109 209 309 - - 209 9 - - 11331 10 110 210 310 110 10 - - 310 10 11332 11 111 211 311 - - - - - - 11333 12 112 212 312 112 12 212 12 - - 11334 13 113 213 313 - - - - - - 11335 14 114 214 314 114 14 - - - - 11336 15 115 215 315 - - 215 15 315 15 11337 16 116 216 316 116 16 - - - - 11338 17 117 217 317 - - - - - - 11339 18 118 218 318 118 18 218 18 - - 11340 19 119 219 319 - - - - - - 11341 20 120 220 320 120 20 - - 320 20 11342 21 121 221 321 - - 221 21 - - 11343 22 122 222 322 122 22 - - - - 11344 23 123 223 323 - - - - - - 11345 24 124 224 324 124 24 224 24 - - 11346 25 125 225 325 - - - - 325 25 11347 26 126 226 326 126 26 - - - - 11348 27 127 227 327 - - 227 27 - - 11349 28 128 228 328 128 28 - - - - 11350 29 129 229 329 - - - - - - 11351 30 130 230 330 130 30 230 30 330 30 11352 31 131 231 331 - - - - - - 11353 32 132 232 332 132 32 - - - - 11354 33 133 233 333 - - 233 33 - - 11355 34 134 234 334 134 34 - - - - 11356 35 135 235 335 - - - - 335 35 11357 36 136 236 336 136 36 236 36 - - 11358 37 137 237 337 - - - - - - 11359 38 138 238 338 138 38 - - - - 11360 39 139 239 339 - - 239 39 - - 11361 40 140 240 340 140 40 - - 340 40 11362 41 141 241 341 - - - - - - 11363 42 142 242 342 142 42 242 42 - - 11364 43 143 243 343 - - - - - - 11365 44 144 244 344 144 44 - - - - 11366 45 145 245 345 - - 245 45 345 45 11367 46 146 246 346 146 46 - - - - 11368 47 147 247 347 - - - - - - 11369 48 148 248 348 148 48 248 48 - - 11370 49 149 249 349 - - - - - - 11371 50 150 250 350 150 50 - - 350 50 11372 51 151 251 351 - - 251 51 - - 11373 52 152 252 352 152 52 - - - - 11374 53 153 253 353 - - - - - - 11375 54 154 254 354 154 54 254 54 - - 11376 55 155 255 355 - - - - 355 55 11377 56 156 256 356 156 56 - - - - 11378 57 157 257 357 - - 257 57 - - 11379 58 158 258 358 158 58 - - - - 11380 59 159 259 359 - - - - - - 11381 60 160 260 360 160 60 260 60 360 60 11382 61 161 261 361 - - - - - - 11383 62 162 262 362 162 62 - - - - 11384 63 163 263 363 - - 263 63 - - 11385 64 164 264 364 164 64 - - - - 11386 65 165 265 365 - - - - 365 65 11387 66 166 266 366 166 66 266 66 - - 11388 67 167 267 367 - - - - - - 11389 68 168 268 368 168 68 - - - - 11390 69 169 269 369 - - 269 69 - - 11391 70 170 270 370 170 70 - - 370 70 11392 71 171 271 371 - - - - - - 11393 72 172 272 372 172 72 272 72 - - 11394 73 173 273 373 - - - - - - 11395 74 174 274 374 174 74 - - - - 11396 75 175 275 375 - - 275 75 375 75 11397 76 176 276 376 176 76 - - - - 11398 77 177 277 377 - - - - - - 11399 78 178 278 378 178 78 278 78 - - 11400 79 179 279 379 - - - - - - 11401 80 180 280 380 180 80 - - 380 80 11402 81 181 281 381 - - 281 81 - - 11403 82 182 282 382 182 82 - - - - 11404 83 183 283 383 - - - - - - 11405 84 184 284 384 184 84 284 84 - - 11406 85 185 285 385 - - - - 385 85 11407 86 186 286 386 186 86 - - - - 11408 87 187 287 387 - - 287 87 - - 11409 88 188 288 388 188 88 - - - - 11410 89 189 289 389 - - - - - - 11411 90 190 290 390 190 90 290 90 390 90 11412 91 191 291 391 - - - - - - 11413 92 192 292 392 192 92 - - - - 11414 93 193 293 393 - - 293 93 - - 11415 94 194 294 394 194 94 - - - - 11416 95 195 295 395 - - - - 395 95 11417 96 - 296 396 - - - - - - 11418 97 197 - 397 - - - - - - 11419 98 198 298 - - - - - - - 11420 99 - - - - - - - - - 11421} 11422do_execsql_test joinD-410 { 11423 SELECT t1.*, t2.*, t3.*, t4.* 11424 FROM t1 LEFT JOIN t2 ON t2.x>0 11425 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 11426 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 11427 WHERE t1.b IS NOT DISTINCT FROM t2.b 11428 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11429} { 11430 2 102 202 302 102 2 - - - - 11431 4 104 204 304 104 4 - - - - 11432 6 106 206 306 106 6 206 6 - - 11433 8 108 208 308 108 8 - - - - 11434 10 110 210 310 110 10 - - 310 10 11435 12 112 212 312 112 12 212 12 - - 11436 14 114 214 314 114 14 - - - - 11437 16 116 216 316 116 16 - - - - 11438 18 118 218 318 118 18 218 18 - - 11439 20 120 220 320 120 20 - - 320 20 11440 22 122 222 322 122 22 - - - - 11441 24 124 224 324 124 24 224 24 - - 11442 26 126 226 326 126 26 - - - - 11443 28 128 228 328 128 28 - - - - 11444 30 130 230 330 130 30 230 30 330 30 11445 32 132 232 332 132 32 - - - - 11446 34 134 234 334 134 34 - - - - 11447 36 136 236 336 136 36 236 36 - - 11448 38 138 238 338 138 38 - - - - 11449 40 140 240 340 140 40 - - 340 40 11450 42 142 242 342 142 42 242 42 - - 11451 44 144 244 344 144 44 - - - - 11452 46 146 246 346 146 46 - - - - 11453 48 148 248 348 148 48 248 48 - - 11454 50 150 250 350 150 50 - - 350 50 11455 52 152 252 352 152 52 - - - - 11456 54 154 254 354 154 54 254 54 - - 11457 56 156 256 356 156 56 - - - - 11458 58 158 258 358 158 58 - - - - 11459 60 160 260 360 160 60 260 60 360 60 11460 62 162 262 362 162 62 - - - - 11461 64 164 264 364 164 64 - - - - 11462 66 166 266 366 166 66 266 66 - - 11463 68 168 268 368 168 68 - - - - 11464 70 170 270 370 170 70 - - 370 70 11465 72 172 272 372 172 72 272 72 - - 11466 74 174 274 374 174 74 - - - - 11467 76 176 276 376 176 76 - - - - 11468 78 178 278 378 178 78 278 78 - - 11469 80 180 280 380 180 80 - - 380 80 11470 82 182 282 382 182 82 - - - - 11471 84 184 284 384 184 84 284 84 - - 11472 86 186 286 386 186 86 - - - - 11473 88 188 288 388 188 88 - - - - 11474 90 190 290 390 190 90 290 90 390 90 11475 92 192 292 392 192 92 - - - - 11476 94 194 294 394 194 94 - - - - 11477} 11478do_execsql_test joinD-411 { 11479 SELECT t1.*, t2.*, t3.*, t4.* 11480 FROM t1 LEFT JOIN t2 ON t2.x>0 11481 LEFT JOIN t3 ON t3.y>0 11482 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 11483 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 11484 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11485} { 11486 6 106 206 306 106 6 206 6 - - 11487 12 112 212 312 112 12 212 12 - - 11488 18 118 218 318 118 18 218 18 - - 11489 24 124 224 324 124 24 224 24 - - 11490 30 130 230 330 130 30 230 30 330 30 11491 36 136 236 336 136 36 236 36 - - 11492 42 142 242 342 142 42 242 42 - - 11493 48 148 248 348 148 48 248 48 - - 11494 54 154 254 354 154 54 254 54 - - 11495 60 160 260 360 160 60 260 60 360 60 11496 66 166 266 366 166 66 266 66 - - 11497 72 172 272 372 172 72 272 72 - - 11498 78 178 278 378 178 78 278 78 - - 11499 84 184 284 384 184 84 284 84 - - 11500 90 190 290 390 190 90 290 90 390 90 11501} 11502do_execsql_test joinD-412 { 11503 SELECT t1.*, t2.*, t3.*, t4.* 11504 FROM t1 LEFT JOIN t2 ON t2.x>0 11505 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 11506 LEFT JOIN t4 ON t4.z>0 11507 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 11508 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11509} { 11510 10 110 210 310 110 10 - - 310 10 11511 20 120 220 320 120 20 - - 320 20 11512 30 130 230 330 130 30 230 30 330 30 11513 40 140 240 340 140 40 - - 340 40 11514 50 150 250 350 150 50 - - 350 50 11515 60 160 260 360 160 60 260 60 360 60 11516 70 170 270 370 170 70 - - 370 70 11517 80 180 280 380 180 80 - - 380 80 11518 90 190 290 390 190 90 290 90 390 90 11519} 11520do_execsql_test joinD-413 { 11521 SELECT t1.*, t2.*, t3.*, t4.* 11522 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 11523 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11524 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 11525 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11526} { 11527 0 100 200 300 - - - - - - 11528 1 101 201 301 - - - - - - 11529 2 102 202 302 102 2 - - - - 11530 3 103 203 303 - - 203 3 - - 11531 4 104 204 304 104 4 - - - - 11532 5 105 205 305 - - - - 305 5 11533 6 106 206 306 106 6 206 6 - - 11534 7 107 207 307 - - - - - - 11535 8 108 208 308 108 8 - - - - 11536 9 109 209 309 - - 209 9 - - 11537 10 110 210 310 110 10 - - 310 10 11538 11 111 211 311 - - - - - - 11539 12 112 212 312 112 12 212 12 - - 11540 13 113 213 313 - - - - - - 11541 14 114 214 314 114 14 - - - - 11542 15 115 215 315 - - 215 15 315 15 11543 16 116 216 316 116 16 - - - - 11544 17 117 217 317 - - - - - - 11545 18 118 218 318 118 18 218 18 - - 11546 19 119 219 319 - - - - - - 11547 20 120 220 320 120 20 - - 320 20 11548 21 121 221 321 - - 221 21 - - 11549 22 122 222 322 122 22 - - - - 11550 23 123 223 323 - - - - - - 11551 24 124 224 324 124 24 224 24 - - 11552 25 125 225 325 - - - - 325 25 11553 26 126 226 326 126 26 - - - - 11554 27 127 227 327 - - 227 27 - - 11555 28 128 228 328 128 28 - - - - 11556 29 129 229 329 - - - - - - 11557 30 130 230 330 130 30 230 30 330 30 11558 31 131 231 331 - - - - - - 11559 32 132 232 332 132 32 - - - - 11560 33 133 233 333 - - 233 33 - - 11561 34 134 234 334 134 34 - - - - 11562 35 135 235 335 - - - - 335 35 11563 36 136 236 336 136 36 236 36 - - 11564 37 137 237 337 - - - - - - 11565 38 138 238 338 138 38 - - - - 11566 39 139 239 339 - - 239 39 - - 11567 40 140 240 340 140 40 - - 340 40 11568 41 141 241 341 - - - - - - 11569 42 142 242 342 142 42 242 42 - - 11570 43 143 243 343 - - - - - - 11571 44 144 244 344 144 44 - - - - 11572 45 145 245 345 - - 245 45 345 45 11573 46 146 246 346 146 46 - - - - 11574 47 147 247 347 - - - - - - 11575 48 148 248 348 148 48 248 48 - - 11576 49 149 249 349 - - - - - - 11577 50 150 250 350 150 50 - - 350 50 11578 51 151 251 351 - - 251 51 - - 11579 52 152 252 352 152 52 - - - - 11580 53 153 253 353 - - - - - - 11581 54 154 254 354 154 54 254 54 - - 11582 55 155 255 355 - - - - 355 55 11583 56 156 256 356 156 56 - - - - 11584 57 157 257 357 - - 257 57 - - 11585 58 158 258 358 158 58 - - - - 11586 59 159 259 359 - - - - - - 11587 60 160 260 360 160 60 260 60 360 60 11588 61 161 261 361 - - - - - - 11589 62 162 262 362 162 62 - - - - 11590 63 163 263 363 - - 263 63 - - 11591 64 164 264 364 164 64 - - - - 11592 65 165 265 365 - - - - 365 65 11593 66 166 266 366 166 66 266 66 - - 11594 67 167 267 367 - - - - - - 11595 68 168 268 368 168 68 - - - - 11596 69 169 269 369 - - 269 69 - - 11597 70 170 270 370 170 70 - - 370 70 11598 71 171 271 371 - - - - - - 11599 72 172 272 372 172 72 272 72 - - 11600 73 173 273 373 - - - - - - 11601 74 174 274 374 174 74 - - - - 11602 75 175 275 375 - - 275 75 375 75 11603 76 176 276 376 176 76 - - - - 11604 77 177 277 377 - - - - - - 11605 78 178 278 378 178 78 278 78 - - 11606 79 179 279 379 - - - - - - 11607 80 180 280 380 180 80 - - 380 80 11608 81 181 281 381 - - 281 81 - - 11609 82 182 282 382 182 82 - - - - 11610 83 183 283 383 - - - - - - 11611 84 184 284 384 184 84 284 84 - - 11612 85 185 285 385 - - - - 385 85 11613 86 186 286 386 186 86 - - - - 11614 87 187 287 387 - - 287 87 - - 11615 88 188 288 388 188 88 - - - - 11616 89 189 289 389 - - - - - - 11617 90 190 290 390 190 90 290 90 390 90 11618 91 191 291 391 - - - - - - 11619 92 192 292 392 192 92 - - - - 11620 93 193 293 393 - - 293 93 - - 11621 94 194 294 394 194 94 - - - - 11622 95 195 295 395 - - - - 395 95 11623 96 - 296 396 - - - - - - 11624 97 197 - 397 - - - - - - 11625 98 198 298 - - - - - - - 11626 99 - - - - - - - - - 11627} 11628do_execsql_test joinD-414 { 11629 SELECT t1.*, t2.*, t3.*, t4.* 11630 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11631 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 11632 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 11633 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11634} { 11635 0 100 200 300 - - - - - - 11636 1 101 201 301 - - - - - - 11637 2 102 202 302 102 2 - - - - 11638 3 103 203 303 - - 203 3 - - 11639 4 104 204 304 104 4 - - - - 11640 5 105 205 305 - - - - 305 5 11641 6 106 206 306 106 6 206 6 - - 11642 7 107 207 307 - - - - - - 11643 8 108 208 308 108 8 - - - - 11644 9 109 209 309 - - 209 9 - - 11645 10 110 210 310 110 10 - - 310 10 11646 11 111 211 311 - - - - - - 11647 12 112 212 312 112 12 212 12 - - 11648 13 113 213 313 - - - - - - 11649 14 114 214 314 114 14 - - - - 11650 15 115 215 315 - - 215 15 315 15 11651 16 116 216 316 116 16 - - - - 11652 17 117 217 317 - - - - - - 11653 18 118 218 318 118 18 218 18 - - 11654 19 119 219 319 - - - - - - 11655 20 120 220 320 120 20 - - 320 20 11656 21 121 221 321 - - 221 21 - - 11657 22 122 222 322 122 22 - - - - 11658 23 123 223 323 - - - - - - 11659 24 124 224 324 124 24 224 24 - - 11660 25 125 225 325 - - - - 325 25 11661 26 126 226 326 126 26 - - - - 11662 27 127 227 327 - - 227 27 - - 11663 28 128 228 328 128 28 - - - - 11664 29 129 229 329 - - - - - - 11665 30 130 230 330 130 30 230 30 330 30 11666 31 131 231 331 - - - - - - 11667 32 132 232 332 132 32 - - - - 11668 33 133 233 333 - - 233 33 - - 11669 34 134 234 334 134 34 - - - - 11670 35 135 235 335 - - - - 335 35 11671 36 136 236 336 136 36 236 36 - - 11672 37 137 237 337 - - - - - - 11673 38 138 238 338 138 38 - - - - 11674 39 139 239 339 - - 239 39 - - 11675 40 140 240 340 140 40 - - 340 40 11676 41 141 241 341 - - - - - - 11677 42 142 242 342 142 42 242 42 - - 11678 43 143 243 343 - - - - - - 11679 44 144 244 344 144 44 - - - - 11680 45 145 245 345 - - 245 45 345 45 11681 46 146 246 346 146 46 - - - - 11682 47 147 247 347 - - - - - - 11683 48 148 248 348 148 48 248 48 - - 11684 49 149 249 349 - - - - - - 11685 50 150 250 350 150 50 - - 350 50 11686 51 151 251 351 - - 251 51 - - 11687 52 152 252 352 152 52 - - - - 11688 53 153 253 353 - - - - - - 11689 54 154 254 354 154 54 254 54 - - 11690 55 155 255 355 - - - - 355 55 11691 56 156 256 356 156 56 - - - - 11692 57 157 257 357 - - 257 57 - - 11693 58 158 258 358 158 58 - - - - 11694 59 159 259 359 - - - - - - 11695 60 160 260 360 160 60 260 60 360 60 11696 61 161 261 361 - - - - - - 11697 62 162 262 362 162 62 - - - - 11698 63 163 263 363 - - 263 63 - - 11699 64 164 264 364 164 64 - - - - 11700 65 165 265 365 - - - - 365 65 11701 66 166 266 366 166 66 266 66 - - 11702 67 167 267 367 - - - - - - 11703 68 168 268 368 168 68 - - - - 11704 69 169 269 369 - - 269 69 - - 11705 70 170 270 370 170 70 - - 370 70 11706 71 171 271 371 - - - - - - 11707 72 172 272 372 172 72 272 72 - - 11708 73 173 273 373 - - - - - - 11709 74 174 274 374 174 74 - - - - 11710 75 175 275 375 - - 275 75 375 75 11711 76 176 276 376 176 76 - - - - 11712 77 177 277 377 - - - - - - 11713 78 178 278 378 178 78 278 78 - - 11714 79 179 279 379 - - - - - - 11715 80 180 280 380 180 80 - - 380 80 11716 81 181 281 381 - - 281 81 - - 11717 82 182 282 382 182 82 - - - - 11718 83 183 283 383 - - - - - - 11719 84 184 284 384 184 84 284 84 - - 11720 85 185 285 385 - - - - 385 85 11721 86 186 286 386 186 86 - - - - 11722 87 187 287 387 - - 287 87 - - 11723 88 188 288 388 188 88 - - - - 11724 89 189 289 389 - - - - - - 11725 90 190 290 390 190 90 290 90 390 90 11726 91 191 291 391 - - - - - - 11727 92 192 292 392 192 92 - - - - 11728 93 193 293 393 - - 293 93 - - 11729 94 194 294 394 194 94 - - - - 11730 95 195 295 395 - - - - 395 95 11731 96 - 296 396 - - - - - - 11732 97 197 - 397 - - - - - - 11733 98 198 298 - - - - - - - 11734 99 - - - - - - - - - 11735} 11736do_execsql_test joinD-415 { 11737 SELECT t1.*, t2.*, t3.*, t4.* 11738 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11739 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11740 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 11741 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11742} { 11743 5 105 205 305 - - - - 305 5 11744 10 110 210 310 110 10 - - 310 10 11745 15 115 215 315 - - 215 15 315 15 11746 20 120 220 320 120 20 - - 320 20 11747 25 125 225 325 - - - - 325 25 11748 30 130 230 330 130 30 230 30 330 30 11749 35 135 235 335 - - - - 335 35 11750 40 140 240 340 140 40 - - 340 40 11751 45 145 245 345 - - 245 45 345 45 11752 50 150 250 350 150 50 - - 350 50 11753 55 155 255 355 - - - - 355 55 11754 60 160 260 360 160 60 260 60 360 60 11755 65 165 265 365 - - - - 365 65 11756 70 170 270 370 170 70 - - 370 70 11757 75 175 275 375 - - 275 75 375 75 11758 80 180 280 380 180 80 - - 380 80 11759 85 185 285 385 - - - - 385 85 11760 90 190 290 390 190 90 290 90 390 90 11761 95 195 295 395 - - - - 395 95 11762 - - - - - - - - 300 0 11763} 11764do_execsql_test joinD-416 { 11765 SELECT t1.*, t2.*, t3.*, t4.* 11766 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 11767 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11768 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 11769 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11770} { 11771 5 105 205 305 - - - - 305 5 11772 10 110 210 310 110 10 - - 310 10 11773 15 115 215 315 - - 215 15 315 15 11774 20 120 220 320 120 20 - - 320 20 11775 25 125 225 325 - - - - 325 25 11776 30 130 230 330 130 30 230 30 330 30 11777 35 135 235 335 - - - - 335 35 11778 40 140 240 340 140 40 - - 340 40 11779 45 145 245 345 - - 245 45 345 45 11780 50 150 250 350 150 50 - - 350 50 11781 55 155 255 355 - - - - 355 55 11782 60 160 260 360 160 60 260 60 360 60 11783 65 165 265 365 - - - - 365 65 11784 70 170 270 370 170 70 - - 370 70 11785 75 175 275 375 - - 275 75 375 75 11786 80 180 280 380 180 80 - - 380 80 11787 85 185 285 385 - - - - 385 85 11788 90 190 290 390 190 90 290 90 390 90 11789 95 195 295 395 - - - - 395 95 11790 - - - - - - - - 300 0 11791} 11792do_execsql_test joinD-417 { 11793 SELECT t1.*, t2.*, t3.*, t4.* 11794 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 11795 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11796 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 11797 WHERE t2.x>0 11798 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11799} { 11800 10 110 210 310 110 10 - - 310 10 11801 20 120 220 320 120 20 - - 320 20 11802 30 130 230 330 130 30 230 30 330 30 11803 40 140 240 340 140 40 - - 340 40 11804 50 150 250 350 150 50 - - 350 50 11805 60 160 260 360 160 60 260 60 360 60 11806 70 170 270 370 170 70 - - 370 70 11807 80 180 280 380 180 80 - - 380 80 11808 90 190 290 390 190 90 290 90 390 90 11809} 11810do_execsql_test joinD-418 { 11811 SELECT t1.*, t2.*, t3.*, t4.* 11812 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 11813 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11814 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 11815 WHERE (t2.x>0 OR t2.x IS NULL) 11816 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11817} { 11818 5 105 205 305 - - - - 305 5 11819 10 110 210 310 110 10 - - 310 10 11820 15 115 215 315 - - 215 15 315 15 11821 20 120 220 320 120 20 - - 320 20 11822 25 125 225 325 - - - - 325 25 11823 30 130 230 330 130 30 230 30 330 30 11824 35 135 235 335 - - - - 335 35 11825 40 140 240 340 140 40 - - 340 40 11826 45 145 245 345 - - 245 45 345 45 11827 50 150 250 350 150 50 - - 350 50 11828 55 155 255 355 - - - - 355 55 11829 60 160 260 360 160 60 260 60 360 60 11830 65 165 265 365 - - - - 365 65 11831 70 170 270 370 170 70 - - 370 70 11832 75 175 275 375 - - 275 75 375 75 11833 80 180 280 380 180 80 - - 380 80 11834 85 185 285 385 - - - - 385 85 11835 90 190 290 390 190 90 290 90 390 90 11836 95 195 295 395 - - - - 395 95 11837 - - - - - - - - 300 0 11838} 11839do_execsql_test joinD-419 { 11840 SELECT t1.*, t2.*, t3.*, t4.* 11841 FROM t1 LEFT JOIN t2 ON true 11842 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11843 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 11844 WHERE t1.b=t2.b AND t2.x>0 11845 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11846} { 11847 10 110 210 310 110 10 - - 310 10 11848 20 120 220 320 120 20 - - 320 20 11849 30 130 230 330 130 30 230 30 330 30 11850 40 140 240 340 140 40 - - 340 40 11851 50 150 250 350 150 50 - - 350 50 11852 60 160 260 360 160 60 260 60 360 60 11853 70 170 270 370 170 70 - - 370 70 11854 80 180 280 380 180 80 - - 380 80 11855 90 190 290 390 190 90 290 90 390 90 11856} 11857do_execsql_test joinD-420 { 11858 SELECT t1.*, t2.*, t3.*, t4.* 11859 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11860 LEFT JOIN t3 ON t1.c=t3.c 11861 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 11862 WHERE t3.y>0 11863 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11864} { 11865 15 115 215 315 - - 215 15 315 15 11866 30 130 230 330 130 30 230 30 330 30 11867 45 145 245 345 - - 245 45 345 45 11868 60 160 260 360 160 60 260 60 360 60 11869 75 175 275 375 - - 275 75 375 75 11870 90 190 290 390 190 90 290 90 390 90 11871} 11872do_execsql_test joinD-421 { 11873 SELECT t1.*, t2.*, t3.*, t4.* 11874 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11875 LEFT JOIN t3 ON t1.c=t3.c 11876 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 11877 WHERE t3.y>0 OR t3.y IS NULL 11878 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11879} { 11880 5 105 205 305 - - - - 305 5 11881 10 110 210 310 110 10 - - 310 10 11882 15 115 215 315 - - 215 15 315 15 11883 20 120 220 320 120 20 - - 320 20 11884 25 125 225 325 - - - - 325 25 11885 30 130 230 330 130 30 230 30 330 30 11886 35 135 235 335 - - - - 335 35 11887 40 140 240 340 140 40 - - 340 40 11888 45 145 245 345 - - 245 45 345 45 11889 50 150 250 350 150 50 - - 350 50 11890 55 155 255 355 - - - - 355 55 11891 60 160 260 360 160 60 260 60 360 60 11892 65 165 265 365 - - - - 365 65 11893 70 170 270 370 170 70 - - 370 70 11894 75 175 275 375 - - 275 75 375 75 11895 80 180 280 380 180 80 - - 380 80 11896 85 185 285 385 - - - - 385 85 11897 90 190 290 390 190 90 290 90 390 90 11898 95 195 295 395 - - - - 395 95 11899 - - - - - - - - 300 0 11900} 11901do_execsql_test joinD-422 { 11902 SELECT t1.*, t2.*, t3.*, t4.* 11903 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11904 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11905 RIGHT JOIN t4 ON t1.d=t4.d 11906 WHERE t4.z>0 11907 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11908} { 11909 5 105 205 305 - - - - 305 5 11910 10 110 210 310 110 10 - - 310 10 11911 15 115 215 315 - - 215 15 315 15 11912 20 120 220 320 120 20 - - 320 20 11913 25 125 225 325 - - - - 325 25 11914 30 130 230 330 130 30 230 30 330 30 11915 35 135 235 335 - - - - 335 35 11916 40 140 240 340 140 40 - - 340 40 11917 45 145 245 345 - - 245 45 345 45 11918 50 150 250 350 150 50 - - 350 50 11919 55 155 255 355 - - - - 355 55 11920 60 160 260 360 160 60 260 60 360 60 11921 65 165 265 365 - - - - 365 65 11922 70 170 270 370 170 70 - - 370 70 11923 75 175 275 375 - - 275 75 375 75 11924 80 180 280 380 180 80 - - 380 80 11925 85 185 285 385 - - - - 385 85 11926 90 190 290 390 190 90 290 90 390 90 11927 95 195 295 395 - - - - 395 95 11928} 11929do_execsql_test joinD-423 { 11930 SELECT t1.*, t2.*, t3.*, t4.* 11931 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11932 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11933 RIGHT JOIN t4 ON t1.d=t4.d 11934 WHERE t4.z IS NULL OR t4.z>0 11935 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11936} { 11937 5 105 205 305 - - - - 305 5 11938 10 110 210 310 110 10 - - 310 10 11939 15 115 215 315 - - 215 15 315 15 11940 20 120 220 320 120 20 - - 320 20 11941 25 125 225 325 - - - - 325 25 11942 30 130 230 330 130 30 230 30 330 30 11943 35 135 235 335 - - - - 335 35 11944 40 140 240 340 140 40 - - 340 40 11945 45 145 245 345 - - 245 45 345 45 11946 50 150 250 350 150 50 - - 350 50 11947 55 155 255 355 - - - - 355 55 11948 60 160 260 360 160 60 260 60 360 60 11949 65 165 265 365 - - - - 365 65 11950 70 170 270 370 170 70 - - 370 70 11951 75 175 275 375 - - 275 75 375 75 11952 80 180 280 380 180 80 - - 380 80 11953 85 185 285 385 - - - - 385 85 11954 90 190 290 390 190 90 290 90 390 90 11955 95 195 295 395 - - - - 395 95 11956} 11957do_execsql_test joinD-424 { 11958 SELECT t1.*, t2.*, t3.*, t4.* 11959 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 11960 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 11961 RIGHT JOIN t4 ON t1.d=t4.d 11962 WHERE t2.x>0 AND t4.z>0 11963 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11964} { 11965 10 110 210 310 110 10 - - 310 10 11966 20 120 220 320 120 20 - - 320 20 11967 30 130 230 330 130 30 230 30 330 30 11968 40 140 240 340 140 40 - - 340 40 11969 50 150 250 350 150 50 - - 350 50 11970 60 160 260 360 160 60 260 60 360 60 11971 70 170 270 370 170 70 - - 370 70 11972 80 180 280 380 180 80 - - 380 80 11973 90 190 290 390 190 90 290 90 390 90 11974} 11975do_execsql_test joinD-425 { 11976 SELECT t1.*, t2.*, t3.*, t4.* 11977 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 11978 LEFT JOIN t3 ON t1.c=t3.c 11979 RIGHT JOIN t4 ON t1.d=t4.d 11980 WHERE t4.z>0 AND t3.y>0 11981 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11982} { 11983 15 115 215 315 - - 215 15 315 15 11984 30 130 230 330 130 30 230 30 330 30 11985 45 145 245 345 - - 245 45 345 45 11986 60 160 260 360 160 60 260 60 360 60 11987 75 175 275 375 - - 275 75 375 75 11988 90 190 290 390 190 90 290 90 390 90 11989} 11990do_execsql_test joinD-426 { 11991 SELECT t1.*, t2.*, t3.*, t4.* 11992 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 11993 LEFT JOIN t3 ON t1.c=t3.c 11994 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 11995 WHERE t2.x>0 AND t3.y>0 11996 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 11997} { 11998 30 130 230 330 130 30 230 30 330 30 11999 60 160 260 360 160 60 260 60 360 60 12000 90 190 290 390 190 90 290 90 390 90 12001} 12002do_execsql_test joinD-427 { 12003 SELECT t1.*, t2.*, t3.*, t4.* 12004 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 12005 LEFT JOIN t3 ON t1.c=t3.c 12006 RIGHT JOIN t4 ON t1.d=t4.d 12007 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 12008 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12009} { 12010 30 130 230 330 130 30 230 30 330 30 12011 60 160 260 360 160 60 260 60 360 60 12012 90 190 290 390 190 90 290 90 390 90 12013} 12014do_execsql_test joinD-428 { 12015 SELECT t1.*, t2.*, t3.*, t4.* 12016 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 12017 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 12018 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 12019 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12020} { 12021 5 105 205 305 - - - - 305 5 12022 10 110 210 310 110 10 - - 310 10 12023 15 115 215 315 - - 215 15 315 15 12024 20 120 220 320 120 20 - - 320 20 12025 25 125 225 325 - - - - 325 25 12026 30 130 230 330 130 30 230 30 330 30 12027 35 135 235 335 - - - - 335 35 12028 40 140 240 340 140 40 - - 340 40 12029 45 145 245 345 - - 245 45 345 45 12030 50 150 250 350 150 50 - - 350 50 12031 55 155 255 355 - - - - 355 55 12032 60 160 260 360 160 60 260 60 360 60 12033 65 165 265 365 - - - - 365 65 12034 70 170 270 370 170 70 - - 370 70 12035 75 175 275 375 - - 275 75 375 75 12036 80 180 280 380 180 80 - - 380 80 12037 85 185 285 385 - - - - 385 85 12038 90 190 290 390 190 90 290 90 390 90 12039 95 195 295 395 - - - - 395 95 12040 - - - - - - - - 300 0 12041} 12042do_execsql_test joinD-429 { 12043 SELECT t1.*, t2.*, t3.*, t4.* 12044 FROM t1 LEFT JOIN t2 ON t2.x>0 12045 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 12046 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 12047 WHERE t1.b IS NOT DISTINCT FROM t2.b 12048 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12049} { 12050 10 110 210 310 110 10 - - 310 10 12051 20 120 220 320 120 20 - - 320 20 12052 30 130 230 330 130 30 230 30 330 30 12053 40 140 240 340 140 40 - - 340 40 12054 50 150 250 350 150 50 - - 350 50 12055 60 160 260 360 160 60 260 60 360 60 12056 70 170 270 370 170 70 - - 370 70 12057 80 180 280 380 180 80 - - 380 80 12058 90 190 290 390 190 90 290 90 390 90 12059 - - - - - - - - 300 0 12060} 12061do_execsql_test joinD-430 { 12062 SELECT t1.*, t2.*, t3.*, t4.* 12063 FROM t1 LEFT JOIN t2 ON t2.x>0 12064 LEFT JOIN t3 ON t3.y>0 12065 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 12066 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 12067 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12068} { 12069 30 130 230 330 130 30 230 30 330 30 12070 60 160 260 360 160 60 260 60 360 60 12071 90 190 290 390 190 90 290 90 390 90 12072 - - - - - - - - 300 0 12073} 12074do_execsql_test joinD-431 { 12075 SELECT t1.*, t2.*, t3.*, t4.* 12076 FROM t1 LEFT JOIN t2 ON t2.x>0 12077 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 12078 RIGHT JOIN t4 ON t4.z>0 12079 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 12080 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12081} { 12082 10 110 210 310 110 10 - - 310 10 12083 20 120 220 320 120 20 - - 320 20 12084 30 130 230 330 130 30 230 30 330 30 12085 40 140 240 340 140 40 - - 340 40 12086 50 150 250 350 150 50 - - 350 50 12087 60 160 260 360 160 60 260 60 360 60 12088 70 170 270 370 170 70 - - 370 70 12089 80 180 280 380 180 80 - - 380 80 12090 90 190 290 390 190 90 290 90 390 90 12091} 12092do_execsql_test joinD-432 { 12093 SELECT t1.*, t2.*, t3.*, t4.* 12094 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 12095 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 12096 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 12097 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12098} { 12099 5 105 205 305 - - - - 305 5 12100 10 110 210 310 110 10 - - 310 10 12101 15 115 215 315 - - 215 15 315 15 12102 20 120 220 320 120 20 - - 320 20 12103 25 125 225 325 - - - - 325 25 12104 30 130 230 330 130 30 230 30 330 30 12105 35 135 235 335 - - - - 335 35 12106 40 140 240 340 140 40 - - 340 40 12107 45 145 245 345 - - 245 45 345 45 12108 50 150 250 350 150 50 - - 350 50 12109 55 155 255 355 - - - - 355 55 12110 60 160 260 360 160 60 260 60 360 60 12111 65 165 265 365 - - - - 365 65 12112 70 170 270 370 170 70 - - 370 70 12113 75 175 275 375 - - 275 75 375 75 12114 80 180 280 380 180 80 - - 380 80 12115 85 185 285 385 - - - - 385 85 12116 90 190 290 390 190 90 290 90 390 90 12117 95 195 295 395 - - - - 395 95 12118 - - - - - - - - 300 0 12119} 12120do_execsql_test joinD-433 { 12121 SELECT t1.*, t2.*, t3.*, t4.* 12122 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 12123 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 12124 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 12125 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12126} { 12127 5 105 205 305 - - - - 305 5 12128 10 110 210 310 110 10 - - 310 10 12129 15 115 215 315 - - 215 15 315 15 12130 20 120 220 320 120 20 - - 320 20 12131 25 125 225 325 - - - - 325 25 12132 30 130 230 330 130 30 230 30 330 30 12133 35 135 235 335 - - - - 335 35 12134 40 140 240 340 140 40 - - 340 40 12135 45 145 245 345 - - 245 45 345 45 12136 50 150 250 350 150 50 - - 350 50 12137 55 155 255 355 - - - - 355 55 12138 60 160 260 360 160 60 260 60 360 60 12139 65 165 265 365 - - - - 365 65 12140 70 170 270 370 170 70 - - 370 70 12141 75 175 275 375 - - 275 75 375 75 12142 80 180 280 380 180 80 - - 380 80 12143 85 185 285 385 - - - - 385 85 12144 90 190 290 390 190 90 290 90 390 90 12145 95 195 295 395 - - - - 395 95 12146 - - - - - - - - 300 0 12147} 12148do_execsql_test joinD-434 { 12149 SELECT t1.*, t2.*, t3.*, t4.* 12150 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 12151 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 12152 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 12153 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12154} { 12155 0 100 200 300 - - - - - - 12156 1 101 201 301 - - - - - - 12157 2 102 202 302 102 2 - - - - 12158 3 103 203 303 - - 203 3 - - 12159 4 104 204 304 104 4 - - - - 12160 5 105 205 305 - - - - 305 5 12161 6 106 206 306 106 6 206 6 - - 12162 7 107 207 307 - - - - - - 12163 8 108 208 308 108 8 - - - - 12164 9 109 209 309 - - 209 9 - - 12165 10 110 210 310 110 10 - - 310 10 12166 11 111 211 311 - - - - - - 12167 12 112 212 312 112 12 212 12 - - 12168 13 113 213 313 - - - - - - 12169 14 114 214 314 114 14 - - - - 12170 15 115 215 315 - - 215 15 315 15 12171 16 116 216 316 116 16 - - - - 12172 17 117 217 317 - - - - - - 12173 18 118 218 318 118 18 218 18 - - 12174 19 119 219 319 - - - - - - 12175 20 120 220 320 120 20 - - 320 20 12176 21 121 221 321 - - 221 21 - - 12177 22 122 222 322 122 22 - - - - 12178 23 123 223 323 - - - - - - 12179 24 124 224 324 124 24 224 24 - - 12180 25 125 225 325 - - - - 325 25 12181 26 126 226 326 126 26 - - - - 12182 27 127 227 327 - - 227 27 - - 12183 28 128 228 328 128 28 - - - - 12184 29 129 229 329 - - - - - - 12185 30 130 230 330 130 30 230 30 330 30 12186 31 131 231 331 - - - - - - 12187 32 132 232 332 132 32 - - - - 12188 33 133 233 333 - - 233 33 - - 12189 34 134 234 334 134 34 - - - - 12190 35 135 235 335 - - - - 335 35 12191 36 136 236 336 136 36 236 36 - - 12192 37 137 237 337 - - - - - - 12193 38 138 238 338 138 38 - - - - 12194 39 139 239 339 - - 239 39 - - 12195 40 140 240 340 140 40 - - 340 40 12196 41 141 241 341 - - - - - - 12197 42 142 242 342 142 42 242 42 - - 12198 43 143 243 343 - - - - - - 12199 44 144 244 344 144 44 - - - - 12200 45 145 245 345 - - 245 45 345 45 12201 46 146 246 346 146 46 - - - - 12202 47 147 247 347 - - - - - - 12203 48 148 248 348 148 48 248 48 - - 12204 49 149 249 349 - - - - - - 12205 50 150 250 350 150 50 - - 350 50 12206 51 151 251 351 - - 251 51 - - 12207 52 152 252 352 152 52 - - - - 12208 53 153 253 353 - - - - - - 12209 54 154 254 354 154 54 254 54 - - 12210 55 155 255 355 - - - - 355 55 12211 56 156 256 356 156 56 - - - - 12212 57 157 257 357 - - 257 57 - - 12213 58 158 258 358 158 58 - - - - 12214 59 159 259 359 - - - - - - 12215 60 160 260 360 160 60 260 60 360 60 12216 61 161 261 361 - - - - - - 12217 62 162 262 362 162 62 - - - - 12218 63 163 263 363 - - 263 63 - - 12219 64 164 264 364 164 64 - - - - 12220 65 165 265 365 - - - - 365 65 12221 66 166 266 366 166 66 266 66 - - 12222 67 167 267 367 - - - - - - 12223 68 168 268 368 168 68 - - - - 12224 69 169 269 369 - - 269 69 - - 12225 70 170 270 370 170 70 - - 370 70 12226 71 171 271 371 - - - - - - 12227 72 172 272 372 172 72 272 72 - - 12228 73 173 273 373 - - - - - - 12229 74 174 274 374 174 74 - - - - 12230 75 175 275 375 - - 275 75 375 75 12231 76 176 276 376 176 76 - - - - 12232 77 177 277 377 - - - - - - 12233 78 178 278 378 178 78 278 78 - - 12234 79 179 279 379 - - - - - - 12235 80 180 280 380 180 80 - - 380 80 12236 81 181 281 381 - - 281 81 - - 12237 82 182 282 382 182 82 - - - - 12238 83 183 283 383 - - - - - - 12239 84 184 284 384 184 84 284 84 - - 12240 85 185 285 385 - - - - 385 85 12241 86 186 286 386 186 86 - - - - 12242 87 187 287 387 - - 287 87 - - 12243 88 188 288 388 188 88 - - - - 12244 89 189 289 389 - - - - - - 12245 90 190 290 390 190 90 290 90 390 90 12246 91 191 291 391 - - - - - - 12247 92 192 292 392 192 92 - - - - 12248 93 193 293 393 - - 293 93 - - 12249 94 194 294 394 194 94 - - - - 12250 95 195 295 395 - - - - 395 95 12251 96 - 296 396 - - - - - - 12252 97 197 - 397 - - - - - - 12253 98 198 298 - - - - - - - 12254 99 - - - - - - - - - 12255 - - - - - - - - 300 0 12256} 12257do_execsql_test joinD-435 { 12258 SELECT t1.*, t2.*, t3.*, t4.* 12259 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 12260 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 12261 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 12262 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12263} { 12264 0 100 200 300 - - - - - - 12265 1 101 201 301 - - - - - - 12266 2 102 202 302 102 2 - - - - 12267 3 103 203 303 - - 203 3 - - 12268 4 104 204 304 104 4 - - - - 12269 5 105 205 305 - - - - 305 5 12270 6 106 206 306 106 6 206 6 - - 12271 7 107 207 307 - - - - - - 12272 8 108 208 308 108 8 - - - - 12273 9 109 209 309 - - 209 9 - - 12274 10 110 210 310 110 10 - - 310 10 12275 11 111 211 311 - - - - - - 12276 12 112 212 312 112 12 212 12 - - 12277 13 113 213 313 - - - - - - 12278 14 114 214 314 114 14 - - - - 12279 15 115 215 315 - - 215 15 315 15 12280 16 116 216 316 116 16 - - - - 12281 17 117 217 317 - - - - - - 12282 18 118 218 318 118 18 218 18 - - 12283 19 119 219 319 - - - - - - 12284 20 120 220 320 120 20 - - 320 20 12285 21 121 221 321 - - 221 21 - - 12286 22 122 222 322 122 22 - - - - 12287 23 123 223 323 - - - - - - 12288 24 124 224 324 124 24 224 24 - - 12289 25 125 225 325 - - - - 325 25 12290 26 126 226 326 126 26 - - - - 12291 27 127 227 327 - - 227 27 - - 12292 28 128 228 328 128 28 - - - - 12293 29 129 229 329 - - - - - - 12294 30 130 230 330 130 30 230 30 330 30 12295 31 131 231 331 - - - - - - 12296 32 132 232 332 132 32 - - - - 12297 33 133 233 333 - - 233 33 - - 12298 34 134 234 334 134 34 - - - - 12299 35 135 235 335 - - - - 335 35 12300 36 136 236 336 136 36 236 36 - - 12301 37 137 237 337 - - - - - - 12302 38 138 238 338 138 38 - - - - 12303 39 139 239 339 - - 239 39 - - 12304 40 140 240 340 140 40 - - 340 40 12305 41 141 241 341 - - - - - - 12306 42 142 242 342 142 42 242 42 - - 12307 43 143 243 343 - - - - - - 12308 44 144 244 344 144 44 - - - - 12309 45 145 245 345 - - 245 45 345 45 12310 46 146 246 346 146 46 - - - - 12311 47 147 247 347 - - - - - - 12312 48 148 248 348 148 48 248 48 - - 12313 49 149 249 349 - - - - - - 12314 50 150 250 350 150 50 - - 350 50 12315 51 151 251 351 - - 251 51 - - 12316 52 152 252 352 152 52 - - - - 12317 53 153 253 353 - - - - - - 12318 54 154 254 354 154 54 254 54 - - 12319 55 155 255 355 - - - - 355 55 12320 56 156 256 356 156 56 - - - - 12321 57 157 257 357 - - 257 57 - - 12322 58 158 258 358 158 58 - - - - 12323 59 159 259 359 - - - - - - 12324 60 160 260 360 160 60 260 60 360 60 12325 61 161 261 361 - - - - - - 12326 62 162 262 362 162 62 - - - - 12327 63 163 263 363 - - 263 63 - - 12328 64 164 264 364 164 64 - - - - 12329 65 165 265 365 - - - - 365 65 12330 66 166 266 366 166 66 266 66 - - 12331 67 167 267 367 - - - - - - 12332 68 168 268 368 168 68 - - - - 12333 69 169 269 369 - - 269 69 - - 12334 70 170 270 370 170 70 - - 370 70 12335 71 171 271 371 - - - - - - 12336 72 172 272 372 172 72 272 72 - - 12337 73 173 273 373 - - - - - - 12338 74 174 274 374 174 74 - - - - 12339 75 175 275 375 - - 275 75 375 75 12340 76 176 276 376 176 76 - - - - 12341 77 177 277 377 - - - - - - 12342 78 178 278 378 178 78 278 78 - - 12343 79 179 279 379 - - - - - - 12344 80 180 280 380 180 80 - - 380 80 12345 81 181 281 381 - - 281 81 - - 12346 82 182 282 382 182 82 - - - - 12347 83 183 283 383 - - - - - - 12348 84 184 284 384 184 84 284 84 - - 12349 85 185 285 385 - - - - 385 85 12350 86 186 286 386 186 86 - - - - 12351 87 187 287 387 - - 287 87 - - 12352 88 188 288 388 188 88 - - - - 12353 89 189 289 389 - - - - - - 12354 90 190 290 390 190 90 290 90 390 90 12355 91 191 291 391 - - - - - - 12356 92 192 292 392 192 92 - - - - 12357 93 193 293 393 - - 293 93 - - 12358 94 194 294 394 194 94 - - - - 12359 95 195 295 395 - - - - 395 95 12360 96 - 296 396 - - - - - - 12361 97 197 - 397 - - - - - - 12362 98 198 298 - - - - - - - 12363 99 - - - - - - - - - 12364 - - - - - - - - 300 0 12365} 12366do_execsql_test joinD-436 { 12367 SELECT t1.*, t2.*, t3.*, t4.* 12368 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 12369 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 12370 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 12371 WHERE t2.x>0 12372 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12373} { 12374 2 102 202 302 102 2 - - - - 12375 4 104 204 304 104 4 - - - - 12376 6 106 206 306 106 6 206 6 - - 12377 8 108 208 308 108 8 - - - - 12378 10 110 210 310 110 10 - - 310 10 12379 12 112 212 312 112 12 212 12 - - 12380 14 114 214 314 114 14 - - - - 12381 16 116 216 316 116 16 - - - - 12382 18 118 218 318 118 18 218 18 - - 12383 20 120 220 320 120 20 - - 320 20 12384 22 122 222 322 122 22 - - - - 12385 24 124 224 324 124 24 224 24 - - 12386 26 126 226 326 126 26 - - - - 12387 28 128 228 328 128 28 - - - - 12388 30 130 230 330 130 30 230 30 330 30 12389 32 132 232 332 132 32 - - - - 12390 34 134 234 334 134 34 - - - - 12391 36 136 236 336 136 36 236 36 - - 12392 38 138 238 338 138 38 - - - - 12393 40 140 240 340 140 40 - - 340 40 12394 42 142 242 342 142 42 242 42 - - 12395 44 144 244 344 144 44 - - - - 12396 46 146 246 346 146 46 - - - - 12397 48 148 248 348 148 48 248 48 - - 12398 50 150 250 350 150 50 - - 350 50 12399 52 152 252 352 152 52 - - - - 12400 54 154 254 354 154 54 254 54 - - 12401 56 156 256 356 156 56 - - - - 12402 58 158 258 358 158 58 - - - - 12403 60 160 260 360 160 60 260 60 360 60 12404 62 162 262 362 162 62 - - - - 12405 64 164 264 364 164 64 - - - - 12406 66 166 266 366 166 66 266 66 - - 12407 68 168 268 368 168 68 - - - - 12408 70 170 270 370 170 70 - - 370 70 12409 72 172 272 372 172 72 272 72 - - 12410 74 174 274 374 174 74 - - - - 12411 76 176 276 376 176 76 - - - - 12412 78 178 278 378 178 78 278 78 - - 12413 80 180 280 380 180 80 - - 380 80 12414 82 182 282 382 182 82 - - - - 12415 84 184 284 384 184 84 284 84 - - 12416 86 186 286 386 186 86 - - - - 12417 88 188 288 388 188 88 - - - - 12418 90 190 290 390 190 90 290 90 390 90 12419 92 192 292 392 192 92 - - - - 12420 94 194 294 394 194 94 - - - - 12421} 12422do_execsql_test joinD-437 { 12423 SELECT t1.*, t2.*, t3.*, t4.* 12424 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 12425 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 12426 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 12427 WHERE (t2.x>0 OR t2.x IS NULL) 12428 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12429} { 12430 1 101 201 301 - - - - - - 12431 2 102 202 302 102 2 - - - - 12432 3 103 203 303 - - 203 3 - - 12433 4 104 204 304 104 4 - - - - 12434 5 105 205 305 - - - - 305 5 12435 6 106 206 306 106 6 206 6 - - 12436 7 107 207 307 - - - - - - 12437 8 108 208 308 108 8 - - - - 12438 9 109 209 309 - - 209 9 - - 12439 10 110 210 310 110 10 - - 310 10 12440 11 111 211 311 - - - - - - 12441 12 112 212 312 112 12 212 12 - - 12442 13 113 213 313 - - - - - - 12443 14 114 214 314 114 14 - - - - 12444 15 115 215 315 - - 215 15 315 15 12445 16 116 216 316 116 16 - - - - 12446 17 117 217 317 - - - - - - 12447 18 118 218 318 118 18 218 18 - - 12448 19 119 219 319 - - - - - - 12449 20 120 220 320 120 20 - - 320 20 12450 21 121 221 321 - - 221 21 - - 12451 22 122 222 322 122 22 - - - - 12452 23 123 223 323 - - - - - - 12453 24 124 224 324 124 24 224 24 - - 12454 25 125 225 325 - - - - 325 25 12455 26 126 226 326 126 26 - - - - 12456 27 127 227 327 - - 227 27 - - 12457 28 128 228 328 128 28 - - - - 12458 29 129 229 329 - - - - - - 12459 30 130 230 330 130 30 230 30 330 30 12460 31 131 231 331 - - - - - - 12461 32 132 232 332 132 32 - - - - 12462 33 133 233 333 - - 233 33 - - 12463 34 134 234 334 134 34 - - - - 12464 35 135 235 335 - - - - 335 35 12465 36 136 236 336 136 36 236 36 - - 12466 37 137 237 337 - - - - - - 12467 38 138 238 338 138 38 - - - - 12468 39 139 239 339 - - 239 39 - - 12469 40 140 240 340 140 40 - - 340 40 12470 41 141 241 341 - - - - - - 12471 42 142 242 342 142 42 242 42 - - 12472 43 143 243 343 - - - - - - 12473 44 144 244 344 144 44 - - - - 12474 45 145 245 345 - - 245 45 345 45 12475 46 146 246 346 146 46 - - - - 12476 47 147 247 347 - - - - - - 12477 48 148 248 348 148 48 248 48 - - 12478 49 149 249 349 - - - - - - 12479 50 150 250 350 150 50 - - 350 50 12480 51 151 251 351 - - 251 51 - - 12481 52 152 252 352 152 52 - - - - 12482 53 153 253 353 - - - - - - 12483 54 154 254 354 154 54 254 54 - - 12484 55 155 255 355 - - - - 355 55 12485 56 156 256 356 156 56 - - - - 12486 57 157 257 357 - - 257 57 - - 12487 58 158 258 358 158 58 - - - - 12488 59 159 259 359 - - - - - - 12489 60 160 260 360 160 60 260 60 360 60 12490 61 161 261 361 - - - - - - 12491 62 162 262 362 162 62 - - - - 12492 63 163 263 363 - - 263 63 - - 12493 64 164 264 364 164 64 - - - - 12494 65 165 265 365 - - - - 365 65 12495 66 166 266 366 166 66 266 66 - - 12496 67 167 267 367 - - - - - - 12497 68 168 268 368 168 68 - - - - 12498 69 169 269 369 - - 269 69 - - 12499 70 170 270 370 170 70 - - 370 70 12500 71 171 271 371 - - - - - - 12501 72 172 272 372 172 72 272 72 - - 12502 73 173 273 373 - - - - - - 12503 74 174 274 374 174 74 - - - - 12504 75 175 275 375 - - 275 75 375 75 12505 76 176 276 376 176 76 - - - - 12506 77 177 277 377 - - - - - - 12507 78 178 278 378 178 78 278 78 - - 12508 79 179 279 379 - - - - - - 12509 80 180 280 380 180 80 - - 380 80 12510 81 181 281 381 - - 281 81 - - 12511 82 182 282 382 182 82 - - - - 12512 83 183 283 383 - - - - - - 12513 84 184 284 384 184 84 284 84 - - 12514 85 185 285 385 - - - - 385 85 12515 86 186 286 386 186 86 - - - - 12516 87 187 287 387 - - 287 87 - - 12517 88 188 288 388 188 88 - - - - 12518 89 189 289 389 - - - - - - 12519 90 190 290 390 190 90 290 90 390 90 12520 91 191 291 391 - - - - - - 12521 92 192 292 392 192 92 - - - - 12522 93 193 293 393 - - 293 93 - - 12523 94 194 294 394 194 94 - - - - 12524 95 195 295 395 - - - - 395 95 12525 96 - 296 396 - - - - - - 12526 97 197 - 397 - - - - - - 12527 98 198 298 - - - - - - - 12528 99 - - - - - - - - - 12529 - - - - - - - - 300 0 12530} 12531do_execsql_test joinD-438 { 12532 SELECT t1.*, t2.*, t3.*, t4.* 12533 FROM t1 LEFT JOIN t2 ON true 12534 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 12535 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 12536 WHERE t1.b=t2.b AND t2.x>0 12537 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12538} { 12539 2 102 202 302 102 2 - - - - 12540 4 104 204 304 104 4 - - - - 12541 6 106 206 306 106 6 206 6 - - 12542 8 108 208 308 108 8 - - - - 12543 10 110 210 310 110 10 - - 310 10 12544 12 112 212 312 112 12 212 12 - - 12545 14 114 214 314 114 14 - - - - 12546 16 116 216 316 116 16 - - - - 12547 18 118 218 318 118 18 218 18 - - 12548 20 120 220 320 120 20 - - 320 20 12549 22 122 222 322 122 22 - - - - 12550 24 124 224 324 124 24 224 24 - - 12551 26 126 226 326 126 26 - - - - 12552 28 128 228 328 128 28 - - - - 12553 30 130 230 330 130 30 230 30 330 30 12554 32 132 232 332 132 32 - - - - 12555 34 134 234 334 134 34 - - - - 12556 36 136 236 336 136 36 236 36 - - 12557 38 138 238 338 138 38 - - - - 12558 40 140 240 340 140 40 - - 340 40 12559 42 142 242 342 142 42 242 42 - - 12560 44 144 244 344 144 44 - - - - 12561 46 146 246 346 146 46 - - - - 12562 48 148 248 348 148 48 248 48 - - 12563 50 150 250 350 150 50 - - 350 50 12564 52 152 252 352 152 52 - - - - 12565 54 154 254 354 154 54 254 54 - - 12566 56 156 256 356 156 56 - - - - 12567 58 158 258 358 158 58 - - - - 12568 60 160 260 360 160 60 260 60 360 60 12569 62 162 262 362 162 62 - - - - 12570 64 164 264 364 164 64 - - - - 12571 66 166 266 366 166 66 266 66 - - 12572 68 168 268 368 168 68 - - - - 12573 70 170 270 370 170 70 - - 370 70 12574 72 172 272 372 172 72 272 72 - - 12575 74 174 274 374 174 74 - - - - 12576 76 176 276 376 176 76 - - - - 12577 78 178 278 378 178 78 278 78 - - 12578 80 180 280 380 180 80 - - 380 80 12579 82 182 282 382 182 82 - - - - 12580 84 184 284 384 184 84 284 84 - - 12581 86 186 286 386 186 86 - - - - 12582 88 188 288 388 188 88 - - - - 12583 90 190 290 390 190 90 290 90 390 90 12584 92 192 292 392 192 92 - - - - 12585 94 194 294 394 194 94 - - - - 12586} 12587do_execsql_test joinD-439 { 12588 SELECT t1.*, t2.*, t3.*, t4.* 12589 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 12590 LEFT JOIN t3 ON t1.c=t3.c 12591 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 12592 WHERE t3.y>0 12593 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12594} { 12595 3 103 203 303 - - 203 3 - - 12596 6 106 206 306 106 6 206 6 - - 12597 9 109 209 309 - - 209 9 - - 12598 12 112 212 312 112 12 212 12 - - 12599 15 115 215 315 - - 215 15 315 15 12600 18 118 218 318 118 18 218 18 - - 12601 21 121 221 321 - - 221 21 - - 12602 24 124 224 324 124 24 224 24 - - 12603 27 127 227 327 - - 227 27 - - 12604 30 130 230 330 130 30 230 30 330 30 12605 33 133 233 333 - - 233 33 - - 12606 36 136 236 336 136 36 236 36 - - 12607 39 139 239 339 - - 239 39 - - 12608 42 142 242 342 142 42 242 42 - - 12609 45 145 245 345 - - 245 45 345 45 12610 48 148 248 348 148 48 248 48 - - 12611 51 151 251 351 - - 251 51 - - 12612 54 154 254 354 154 54 254 54 - - 12613 57 157 257 357 - - 257 57 - - 12614 60 160 260 360 160 60 260 60 360 60 12615 63 163 263 363 - - 263 63 - - 12616 66 166 266 366 166 66 266 66 - - 12617 69 169 269 369 - - 269 69 - - 12618 72 172 272 372 172 72 272 72 - - 12619 75 175 275 375 - - 275 75 375 75 12620 78 178 278 378 178 78 278 78 - - 12621 81 181 281 381 - - 281 81 - - 12622 84 184 284 384 184 84 284 84 - - 12623 87 187 287 387 - - 287 87 - - 12624 90 190 290 390 190 90 290 90 390 90 12625 93 193 293 393 - - 293 93 - - 12626} 12627do_execsql_test joinD-440 { 12628 SELECT t1.*, t2.*, t3.*, t4.* 12629 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 12630 LEFT JOIN t3 ON t1.c=t3.c 12631 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 12632 WHERE t3.y>0 OR t3.y IS NULL 12633 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12634} { 12635 1 101 201 301 - - - - - - 12636 2 102 202 302 102 2 - - - - 12637 3 103 203 303 - - 203 3 - - 12638 4 104 204 304 104 4 - - - - 12639 5 105 205 305 - - - - 305 5 12640 6 106 206 306 106 6 206 6 - - 12641 7 107 207 307 - - - - - - 12642 8 108 208 308 108 8 - - - - 12643 9 109 209 309 - - 209 9 - - 12644 10 110 210 310 110 10 - - 310 10 12645 11 111 211 311 - - - - - - 12646 12 112 212 312 112 12 212 12 - - 12647 13 113 213 313 - - - - - - 12648 14 114 214 314 114 14 - - - - 12649 15 115 215 315 - - 215 15 315 15 12650 16 116 216 316 116 16 - - - - 12651 17 117 217 317 - - - - - - 12652 18 118 218 318 118 18 218 18 - - 12653 19 119 219 319 - - - - - - 12654 20 120 220 320 120 20 - - 320 20 12655 21 121 221 321 - - 221 21 - - 12656 22 122 222 322 122 22 - - - - 12657 23 123 223 323 - - - - - - 12658 24 124 224 324 124 24 224 24 - - 12659 25 125 225 325 - - - - 325 25 12660 26 126 226 326 126 26 - - - - 12661 27 127 227 327 - - 227 27 - - 12662 28 128 228 328 128 28 - - - - 12663 29 129 229 329 - - - - - - 12664 30 130 230 330 130 30 230 30 330 30 12665 31 131 231 331 - - - - - - 12666 32 132 232 332 132 32 - - - - 12667 33 133 233 333 - - 233 33 - - 12668 34 134 234 334 134 34 - - - - 12669 35 135 235 335 - - - - 335 35 12670 36 136 236 336 136 36 236 36 - - 12671 37 137 237 337 - - - - - - 12672 38 138 238 338 138 38 - - - - 12673 39 139 239 339 - - 239 39 - - 12674 40 140 240 340 140 40 - - 340 40 12675 41 141 241 341 - - - - - - 12676 42 142 242 342 142 42 242 42 - - 12677 43 143 243 343 - - - - - - 12678 44 144 244 344 144 44 - - - - 12679 45 145 245 345 - - 245 45 345 45 12680 46 146 246 346 146 46 - - - - 12681 47 147 247 347 - - - - - - 12682 48 148 248 348 148 48 248 48 - - 12683 49 149 249 349 - - - - - - 12684 50 150 250 350 150 50 - - 350 50 12685 51 151 251 351 - - 251 51 - - 12686 52 152 252 352 152 52 - - - - 12687 53 153 253 353 - - - - - - 12688 54 154 254 354 154 54 254 54 - - 12689 55 155 255 355 - - - - 355 55 12690 56 156 256 356 156 56 - - - - 12691 57 157 257 357 - - 257 57 - - 12692 58 158 258 358 158 58 - - - - 12693 59 159 259 359 - - - - - - 12694 60 160 260 360 160 60 260 60 360 60 12695 61 161 261 361 - - - - - - 12696 62 162 262 362 162 62 - - - - 12697 63 163 263 363 - - 263 63 - - 12698 64 164 264 364 164 64 - - - - 12699 65 165 265 365 - - - - 365 65 12700 66 166 266 366 166 66 266 66 - - 12701 67 167 267 367 - - - - - - 12702 68 168 268 368 168 68 - - - - 12703 69 169 269 369 - - 269 69 - - 12704 70 170 270 370 170 70 - - 370 70 12705 71 171 271 371 - - - - - - 12706 72 172 272 372 172 72 272 72 - - 12707 73 173 273 373 - - - - - - 12708 74 174 274 374 174 74 - - - - 12709 75 175 275 375 - - 275 75 375 75 12710 76 176 276 376 176 76 - - - - 12711 77 177 277 377 - - - - - - 12712 78 178 278 378 178 78 278 78 - - 12713 79 179 279 379 - - - - - - 12714 80 180 280 380 180 80 - - 380 80 12715 81 181 281 381 - - 281 81 - - 12716 82 182 282 382 182 82 - - - - 12717 83 183 283 383 - - - - - - 12718 84 184 284 384 184 84 284 84 - - 12719 85 185 285 385 - - - - 385 85 12720 86 186 286 386 186 86 - - - - 12721 87 187 287 387 - - 287 87 - - 12722 88 188 288 388 188 88 - - - - 12723 89 189 289 389 - - - - - - 12724 90 190 290 390 190 90 290 90 390 90 12725 91 191 291 391 - - - - - - 12726 92 192 292 392 192 92 - - - - 12727 93 193 293 393 - - 293 93 - - 12728 94 194 294 394 194 94 - - - - 12729 95 195 295 395 - - - - 395 95 12730 96 - 296 396 - - - - - - 12731 97 197 - 397 - - - - - - 12732 98 198 298 - - - - - - - 12733 99 - - - - - - - - - 12734 - - - - - - - - 300 0 12735} 12736do_execsql_test joinD-441 { 12737 SELECT t1.*, t2.*, t3.*, t4.* 12738 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 12739 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 12740 FULL JOIN t4 ON t1.d=t4.d 12741 WHERE t4.z>0 12742 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12743} { 12744 5 105 205 305 - - - - 305 5 12745 10 110 210 310 110 10 - - 310 10 12746 15 115 215 315 - - 215 15 315 15 12747 20 120 220 320 120 20 - - 320 20 12748 25 125 225 325 - - - - 325 25 12749 30 130 230 330 130 30 230 30 330 30 12750 35 135 235 335 - - - - 335 35 12751 40 140 240 340 140 40 - - 340 40 12752 45 145 245 345 - - 245 45 345 45 12753 50 150 250 350 150 50 - - 350 50 12754 55 155 255 355 - - - - 355 55 12755 60 160 260 360 160 60 260 60 360 60 12756 65 165 265 365 - - - - 365 65 12757 70 170 270 370 170 70 - - 370 70 12758 75 175 275 375 - - 275 75 375 75 12759 80 180 280 380 180 80 - - 380 80 12760 85 185 285 385 - - - - 385 85 12761 90 190 290 390 190 90 290 90 390 90 12762 95 195 295 395 - - - - 395 95 12763} 12764do_execsql_test joinD-442 { 12765 SELECT t1.*, t2.*, t3.*, t4.* 12766 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 12767 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 12768 FULL JOIN t4 ON t1.d=t4.d 12769 WHERE t4.z IS NULL OR t4.z>0 12770 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12771} { 12772 1 101 201 301 - - - - - - 12773 2 102 202 302 102 2 - - - - 12774 3 103 203 303 - - 203 3 - - 12775 4 104 204 304 104 4 - - - - 12776 5 105 205 305 - - - - 305 5 12777 6 106 206 306 106 6 206 6 - - 12778 7 107 207 307 - - - - - - 12779 8 108 208 308 108 8 - - - - 12780 9 109 209 309 - - 209 9 - - 12781 10 110 210 310 110 10 - - 310 10 12782 11 111 211 311 - - - - - - 12783 12 112 212 312 112 12 212 12 - - 12784 13 113 213 313 - - - - - - 12785 14 114 214 314 114 14 - - - - 12786 15 115 215 315 - - 215 15 315 15 12787 16 116 216 316 116 16 - - - - 12788 17 117 217 317 - - - - - - 12789 18 118 218 318 118 18 218 18 - - 12790 19 119 219 319 - - - - - - 12791 20 120 220 320 120 20 - - 320 20 12792 21 121 221 321 - - 221 21 - - 12793 22 122 222 322 122 22 - - - - 12794 23 123 223 323 - - - - - - 12795 24 124 224 324 124 24 224 24 - - 12796 25 125 225 325 - - - - 325 25 12797 26 126 226 326 126 26 - - - - 12798 27 127 227 327 - - 227 27 - - 12799 28 128 228 328 128 28 - - - - 12800 29 129 229 329 - - - - - - 12801 30 130 230 330 130 30 230 30 330 30 12802 31 131 231 331 - - - - - - 12803 32 132 232 332 132 32 - - - - 12804 33 133 233 333 - - 233 33 - - 12805 34 134 234 334 134 34 - - - - 12806 35 135 235 335 - - - - 335 35 12807 36 136 236 336 136 36 236 36 - - 12808 37 137 237 337 - - - - - - 12809 38 138 238 338 138 38 - - - - 12810 39 139 239 339 - - 239 39 - - 12811 40 140 240 340 140 40 - - 340 40 12812 41 141 241 341 - - - - - - 12813 42 142 242 342 142 42 242 42 - - 12814 43 143 243 343 - - - - - - 12815 44 144 244 344 144 44 - - - - 12816 45 145 245 345 - - 245 45 345 45 12817 46 146 246 346 146 46 - - - - 12818 47 147 247 347 - - - - - - 12819 48 148 248 348 148 48 248 48 - - 12820 49 149 249 349 - - - - - - 12821 50 150 250 350 150 50 - - 350 50 12822 51 151 251 351 - - 251 51 - - 12823 52 152 252 352 152 52 - - - - 12824 53 153 253 353 - - - - - - 12825 54 154 254 354 154 54 254 54 - - 12826 55 155 255 355 - - - - 355 55 12827 56 156 256 356 156 56 - - - - 12828 57 157 257 357 - - 257 57 - - 12829 58 158 258 358 158 58 - - - - 12830 59 159 259 359 - - - - - - 12831 60 160 260 360 160 60 260 60 360 60 12832 61 161 261 361 - - - - - - 12833 62 162 262 362 162 62 - - - - 12834 63 163 263 363 - - 263 63 - - 12835 64 164 264 364 164 64 - - - - 12836 65 165 265 365 - - - - 365 65 12837 66 166 266 366 166 66 266 66 - - 12838 67 167 267 367 - - - - - - 12839 68 168 268 368 168 68 - - - - 12840 69 169 269 369 - - 269 69 - - 12841 70 170 270 370 170 70 - - 370 70 12842 71 171 271 371 - - - - - - 12843 72 172 272 372 172 72 272 72 - - 12844 73 173 273 373 - - - - - - 12845 74 174 274 374 174 74 - - - - 12846 75 175 275 375 - - 275 75 375 75 12847 76 176 276 376 176 76 - - - - 12848 77 177 277 377 - - - - - - 12849 78 178 278 378 178 78 278 78 - - 12850 79 179 279 379 - - - - - - 12851 80 180 280 380 180 80 - - 380 80 12852 81 181 281 381 - - 281 81 - - 12853 82 182 282 382 182 82 - - - - 12854 83 183 283 383 - - - - - - 12855 84 184 284 384 184 84 284 84 - - 12856 85 185 285 385 - - - - 385 85 12857 86 186 286 386 186 86 - - - - 12858 87 187 287 387 - - 287 87 - - 12859 88 188 288 388 188 88 - - - - 12860 89 189 289 389 - - - - - - 12861 90 190 290 390 190 90 290 90 390 90 12862 91 191 291 391 - - - - - - 12863 92 192 292 392 192 92 - - - - 12864 93 193 293 393 - - 293 93 - - 12865 94 194 294 394 194 94 - - - - 12866 95 195 295 395 - - - - 395 95 12867 96 - 296 396 - - - - - - 12868 97 197 - 397 - - - - - - 12869 98 198 298 - - - - - - - 12870 99 - - - - - - - - - 12871} 12872do_execsql_test joinD-443 { 12873 SELECT t1.*, t2.*, t3.*, t4.* 12874 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 12875 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 12876 FULL JOIN t4 ON t1.d=t4.d 12877 WHERE t2.x>0 AND t4.z>0 12878 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12879} { 12880 10 110 210 310 110 10 - - 310 10 12881 20 120 220 320 120 20 - - 320 20 12882 30 130 230 330 130 30 230 30 330 30 12883 40 140 240 340 140 40 - - 340 40 12884 50 150 250 350 150 50 - - 350 50 12885 60 160 260 360 160 60 260 60 360 60 12886 70 170 270 370 170 70 - - 370 70 12887 80 180 280 380 180 80 - - 380 80 12888 90 190 290 390 190 90 290 90 390 90 12889} 12890do_execsql_test joinD-444 { 12891 SELECT t1.*, t2.*, t3.*, t4.* 12892 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 12893 LEFT JOIN t3 ON t1.c=t3.c 12894 FULL JOIN t4 ON t1.d=t4.d 12895 WHERE t4.z>0 AND t3.y>0 12896 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12897} { 12898 15 115 215 315 - - 215 15 315 15 12899 30 130 230 330 130 30 230 30 330 30 12900 45 145 245 345 - - 245 45 345 45 12901 60 160 260 360 160 60 260 60 360 60 12902 75 175 275 375 - - 275 75 375 75 12903 90 190 290 390 190 90 290 90 390 90 12904} 12905do_execsql_test joinD-445 { 12906 SELECT t1.*, t2.*, t3.*, t4.* 12907 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 12908 LEFT JOIN t3 ON t1.c=t3.c 12909 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 12910 WHERE t2.x>0 AND t3.y>0 12911 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12912} { 12913 6 106 206 306 106 6 206 6 - - 12914 12 112 212 312 112 12 212 12 - - 12915 18 118 218 318 118 18 218 18 - - 12916 24 124 224 324 124 24 224 24 - - 12917 30 130 230 330 130 30 230 30 330 30 12918 36 136 236 336 136 36 236 36 - - 12919 42 142 242 342 142 42 242 42 - - 12920 48 148 248 348 148 48 248 48 - - 12921 54 154 254 354 154 54 254 54 - - 12922 60 160 260 360 160 60 260 60 360 60 12923 66 166 266 366 166 66 266 66 - - 12924 72 172 272 372 172 72 272 72 - - 12925 78 178 278 378 178 78 278 78 - - 12926 84 184 284 384 184 84 284 84 - - 12927 90 190 290 390 190 90 290 90 390 90 12928} 12929do_execsql_test joinD-446 { 12930 SELECT t1.*, t2.*, t3.*, t4.* 12931 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 12932 LEFT JOIN t3 ON t1.c=t3.c 12933 FULL JOIN t4 ON t1.d=t4.d 12934 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 12935 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12936} { 12937 30 130 230 330 130 30 230 30 330 30 12938 60 160 260 360 160 60 260 60 360 60 12939 90 190 290 390 190 90 290 90 390 90 12940} 12941do_execsql_test joinD-447 { 12942 SELECT t1.*, t2.*, t3.*, t4.* 12943 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 12944 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 12945 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 12946 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 12947} { 12948 0 100 200 300 - - - - - - 12949 1 101 201 301 - - - - - - 12950 2 102 202 302 102 2 - - - - 12951 3 103 203 303 - - 203 3 - - 12952 4 104 204 304 104 4 - - - - 12953 5 105 205 305 - - - - 305 5 12954 6 106 206 306 106 6 206 6 - - 12955 7 107 207 307 - - - - - - 12956 8 108 208 308 108 8 - - - - 12957 9 109 209 309 - - 209 9 - - 12958 10 110 210 310 110 10 - - 310 10 12959 11 111 211 311 - - - - - - 12960 12 112 212 312 112 12 212 12 - - 12961 13 113 213 313 - - - - - - 12962 14 114 214 314 114 14 - - - - 12963 15 115 215 315 - - 215 15 315 15 12964 16 116 216 316 116 16 - - - - 12965 17 117 217 317 - - - - - - 12966 18 118 218 318 118 18 218 18 - - 12967 19 119 219 319 - - - - - - 12968 20 120 220 320 120 20 - - 320 20 12969 21 121 221 321 - - 221 21 - - 12970 22 122 222 322 122 22 - - - - 12971 23 123 223 323 - - - - - - 12972 24 124 224 324 124 24 224 24 - - 12973 25 125 225 325 - - - - 325 25 12974 26 126 226 326 126 26 - - - - 12975 27 127 227 327 - - 227 27 - - 12976 28 128 228 328 128 28 - - - - 12977 29 129 229 329 - - - - - - 12978 30 130 230 330 130 30 230 30 330 30 12979 31 131 231 331 - - - - - - 12980 32 132 232 332 132 32 - - - - 12981 33 133 233 333 - - 233 33 - - 12982 34 134 234 334 134 34 - - - - 12983 35 135 235 335 - - - - 335 35 12984 36 136 236 336 136 36 236 36 - - 12985 37 137 237 337 - - - - - - 12986 38 138 238 338 138 38 - - - - 12987 39 139 239 339 - - 239 39 - - 12988 40 140 240 340 140 40 - - 340 40 12989 41 141 241 341 - - - - - - 12990 42 142 242 342 142 42 242 42 - - 12991 43 143 243 343 - - - - - - 12992 44 144 244 344 144 44 - - - - 12993 45 145 245 345 - - 245 45 345 45 12994 46 146 246 346 146 46 - - - - 12995 47 147 247 347 - - - - - - 12996 48 148 248 348 148 48 248 48 - - 12997 49 149 249 349 - - - - - - 12998 50 150 250 350 150 50 - - 350 50 12999 51 151 251 351 - - 251 51 - - 13000 52 152 252 352 152 52 - - - - 13001 53 153 253 353 - - - - - - 13002 54 154 254 354 154 54 254 54 - - 13003 55 155 255 355 - - - - 355 55 13004 56 156 256 356 156 56 - - - - 13005 57 157 257 357 - - 257 57 - - 13006 58 158 258 358 158 58 - - - - 13007 59 159 259 359 - - - - - - 13008 60 160 260 360 160 60 260 60 360 60 13009 61 161 261 361 - - - - - - 13010 62 162 262 362 162 62 - - - - 13011 63 163 263 363 - - 263 63 - - 13012 64 164 264 364 164 64 - - - - 13013 65 165 265 365 - - - - 365 65 13014 66 166 266 366 166 66 266 66 - - 13015 67 167 267 367 - - - - - - 13016 68 168 268 368 168 68 - - - - 13017 69 169 269 369 - - 269 69 - - 13018 70 170 270 370 170 70 - - 370 70 13019 71 171 271 371 - - - - - - 13020 72 172 272 372 172 72 272 72 - - 13021 73 173 273 373 - - - - - - 13022 74 174 274 374 174 74 - - - - 13023 75 175 275 375 - - 275 75 375 75 13024 76 176 276 376 176 76 - - - - 13025 77 177 277 377 - - - - - - 13026 78 178 278 378 178 78 278 78 - - 13027 79 179 279 379 - - - - - - 13028 80 180 280 380 180 80 - - 380 80 13029 81 181 281 381 - - 281 81 - - 13030 82 182 282 382 182 82 - - - - 13031 83 183 283 383 - - - - - - 13032 84 184 284 384 184 84 284 84 - - 13033 85 185 285 385 - - - - 385 85 13034 86 186 286 386 186 86 - - - - 13035 87 187 287 387 - - 287 87 - - 13036 88 188 288 388 188 88 - - - - 13037 89 189 289 389 - - - - - - 13038 90 190 290 390 190 90 290 90 390 90 13039 91 191 291 391 - - - - - - 13040 92 192 292 392 192 92 - - - - 13041 93 193 293 393 - - 293 93 - - 13042 94 194 294 394 194 94 - - - - 13043 95 195 295 395 - - - - 395 95 13044 96 - 296 396 - - - - - - 13045 97 197 - 397 - - - - - - 13046 98 198 298 - - - - - - - 13047 99 - - - - - - - - - 13048 - - - - - - - - 300 0 13049} 13050do_execsql_test joinD-448 { 13051 SELECT t1.*, t2.*, t3.*, t4.* 13052 FROM t1 LEFT JOIN t2 ON t2.x>0 13053 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 13054 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 13055 WHERE t1.b IS NOT DISTINCT FROM t2.b 13056 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13057} { 13058 2 102 202 302 102 2 - - - - 13059 4 104 204 304 104 4 - - - - 13060 6 106 206 306 106 6 206 6 - - 13061 8 108 208 308 108 8 - - - - 13062 10 110 210 310 110 10 - - 310 10 13063 12 112 212 312 112 12 212 12 - - 13064 14 114 214 314 114 14 - - - - 13065 16 116 216 316 116 16 - - - - 13066 18 118 218 318 118 18 218 18 - - 13067 20 120 220 320 120 20 - - 320 20 13068 22 122 222 322 122 22 - - - - 13069 24 124 224 324 124 24 224 24 - - 13070 26 126 226 326 126 26 - - - - 13071 28 128 228 328 128 28 - - - - 13072 30 130 230 330 130 30 230 30 330 30 13073 32 132 232 332 132 32 - - - - 13074 34 134 234 334 134 34 - - - - 13075 36 136 236 336 136 36 236 36 - - 13076 38 138 238 338 138 38 - - - - 13077 40 140 240 340 140 40 - - 340 40 13078 42 142 242 342 142 42 242 42 - - 13079 44 144 244 344 144 44 - - - - 13080 46 146 246 346 146 46 - - - - 13081 48 148 248 348 148 48 248 48 - - 13082 50 150 250 350 150 50 - - 350 50 13083 52 152 252 352 152 52 - - - - 13084 54 154 254 354 154 54 254 54 - - 13085 56 156 256 356 156 56 - - - - 13086 58 158 258 358 158 58 - - - - 13087 60 160 260 360 160 60 260 60 360 60 13088 62 162 262 362 162 62 - - - - 13089 64 164 264 364 164 64 - - - - 13090 66 166 266 366 166 66 266 66 - - 13091 68 168 268 368 168 68 - - - - 13092 70 170 270 370 170 70 - - 370 70 13093 72 172 272 372 172 72 272 72 - - 13094 74 174 274 374 174 74 - - - - 13095 76 176 276 376 176 76 - - - - 13096 78 178 278 378 178 78 278 78 - - 13097 80 180 280 380 180 80 - - 380 80 13098 82 182 282 382 182 82 - - - - 13099 84 184 284 384 184 84 284 84 - - 13100 86 186 286 386 186 86 - - - - 13101 88 188 288 388 188 88 - - - - 13102 90 190 290 390 190 90 290 90 390 90 13103 92 192 292 392 192 92 - - - - 13104 94 194 294 394 194 94 - - - - 13105 - - - - - - - - 300 0 13106} 13107do_execsql_test joinD-449 { 13108 SELECT t1.*, t2.*, t3.*, t4.* 13109 FROM t1 LEFT JOIN t2 ON t2.x>0 13110 LEFT JOIN t3 ON t3.y>0 13111 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 13112 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 13113 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13114} { 13115 6 106 206 306 106 6 206 6 - - 13116 12 112 212 312 112 12 212 12 - - 13117 18 118 218 318 118 18 218 18 - - 13118 24 124 224 324 124 24 224 24 - - 13119 30 130 230 330 130 30 230 30 330 30 13120 36 136 236 336 136 36 236 36 - - 13121 42 142 242 342 142 42 242 42 - - 13122 48 148 248 348 148 48 248 48 - - 13123 54 154 254 354 154 54 254 54 - - 13124 60 160 260 360 160 60 260 60 360 60 13125 66 166 266 366 166 66 266 66 - - 13126 72 172 272 372 172 72 272 72 - - 13127 78 178 278 378 178 78 278 78 - - 13128 84 184 284 384 184 84 284 84 - - 13129 90 190 290 390 190 90 290 90 390 90 13130 - - - - - - - - 300 0 13131} 13132do_execsql_test joinD-450 { 13133 SELECT t1.*, t2.*, t3.*, t4.* 13134 FROM t1 LEFT JOIN t2 ON t2.x>0 13135 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 13136 FULL JOIN t4 ON t4.z>0 13137 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 13138 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13139} { 13140 10 110 210 310 110 10 - - 310 10 13141 20 120 220 320 120 20 - - 320 20 13142 30 130 230 330 130 30 230 30 330 30 13143 40 140 240 340 140 40 - - 340 40 13144 50 150 250 350 150 50 - - 350 50 13145 60 160 260 360 160 60 260 60 360 60 13146 70 170 270 370 170 70 - - 370 70 13147 80 180 280 380 180 80 - - 380 80 13148 90 190 290 390 190 90 290 90 390 90 13149} 13150do_execsql_test joinD-451 { 13151 SELECT t1.*, t2.*, t3.*, t4.* 13152 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 13153 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 13154 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 13155 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13156} { 13157 0 100 200 300 - - - - - - 13158 1 101 201 301 - - - - - - 13159 2 102 202 302 102 2 - - - - 13160 3 103 203 303 - - 203 3 - - 13161 4 104 204 304 104 4 - - - - 13162 5 105 205 305 - - - - 305 5 13163 6 106 206 306 106 6 206 6 - - 13164 7 107 207 307 - - - - - - 13165 8 108 208 308 108 8 - - - - 13166 9 109 209 309 - - 209 9 - - 13167 10 110 210 310 110 10 - - 310 10 13168 11 111 211 311 - - - - - - 13169 12 112 212 312 112 12 212 12 - - 13170 13 113 213 313 - - - - - - 13171 14 114 214 314 114 14 - - - - 13172 15 115 215 315 - - 215 15 315 15 13173 16 116 216 316 116 16 - - - - 13174 17 117 217 317 - - - - - - 13175 18 118 218 318 118 18 218 18 - - 13176 19 119 219 319 - - - - - - 13177 20 120 220 320 120 20 - - 320 20 13178 21 121 221 321 - - 221 21 - - 13179 22 122 222 322 122 22 - - - - 13180 23 123 223 323 - - - - - - 13181 24 124 224 324 124 24 224 24 - - 13182 25 125 225 325 - - - - 325 25 13183 26 126 226 326 126 26 - - - - 13184 27 127 227 327 - - 227 27 - - 13185 28 128 228 328 128 28 - - - - 13186 29 129 229 329 - - - - - - 13187 30 130 230 330 130 30 230 30 330 30 13188 31 131 231 331 - - - - - - 13189 32 132 232 332 132 32 - - - - 13190 33 133 233 333 - - 233 33 - - 13191 34 134 234 334 134 34 - - - - 13192 35 135 235 335 - - - - 335 35 13193 36 136 236 336 136 36 236 36 - - 13194 37 137 237 337 - - - - - - 13195 38 138 238 338 138 38 - - - - 13196 39 139 239 339 - - 239 39 - - 13197 40 140 240 340 140 40 - - 340 40 13198 41 141 241 341 - - - - - - 13199 42 142 242 342 142 42 242 42 - - 13200 43 143 243 343 - - - - - - 13201 44 144 244 344 144 44 - - - - 13202 45 145 245 345 - - 245 45 345 45 13203 46 146 246 346 146 46 - - - - 13204 47 147 247 347 - - - - - - 13205 48 148 248 348 148 48 248 48 - - 13206 49 149 249 349 - - - - - - 13207 50 150 250 350 150 50 - - 350 50 13208 51 151 251 351 - - 251 51 - - 13209 52 152 252 352 152 52 - - - - 13210 53 153 253 353 - - - - - - 13211 54 154 254 354 154 54 254 54 - - 13212 55 155 255 355 - - - - 355 55 13213 56 156 256 356 156 56 - - - - 13214 57 157 257 357 - - 257 57 - - 13215 58 158 258 358 158 58 - - - - 13216 59 159 259 359 - - - - - - 13217 60 160 260 360 160 60 260 60 360 60 13218 61 161 261 361 - - - - - - 13219 62 162 262 362 162 62 - - - - 13220 63 163 263 363 - - 263 63 - - 13221 64 164 264 364 164 64 - - - - 13222 65 165 265 365 - - - - 365 65 13223 66 166 266 366 166 66 266 66 - - 13224 67 167 267 367 - - - - - - 13225 68 168 268 368 168 68 - - - - 13226 69 169 269 369 - - 269 69 - - 13227 70 170 270 370 170 70 - - 370 70 13228 71 171 271 371 - - - - - - 13229 72 172 272 372 172 72 272 72 - - 13230 73 173 273 373 - - - - - - 13231 74 174 274 374 174 74 - - - - 13232 75 175 275 375 - - 275 75 375 75 13233 76 176 276 376 176 76 - - - - 13234 77 177 277 377 - - - - - - 13235 78 178 278 378 178 78 278 78 - - 13236 79 179 279 379 - - - - - - 13237 80 180 280 380 180 80 - - 380 80 13238 81 181 281 381 - - 281 81 - - 13239 82 182 282 382 182 82 - - - - 13240 83 183 283 383 - - - - - - 13241 84 184 284 384 184 84 284 84 - - 13242 85 185 285 385 - - - - 385 85 13243 86 186 286 386 186 86 - - - - 13244 87 187 287 387 - - 287 87 - - 13245 88 188 288 388 188 88 - - - - 13246 89 189 289 389 - - - - - - 13247 90 190 290 390 190 90 290 90 390 90 13248 91 191 291 391 - - - - - - 13249 92 192 292 392 192 92 - - - - 13250 93 193 293 393 - - 293 93 - - 13251 94 194 294 394 194 94 - - - - 13252 95 195 295 395 - - - - 395 95 13253 96 - 296 396 - - - - - - 13254 97 197 - 397 - - - - - - 13255 98 198 298 - - - - - - - 13256 99 - - - - - - - - - 13257 - - - - - - - - 300 0 13258} 13259do_execsql_test joinD-452 { 13260 SELECT t1.*, t2.*, t3.*, t4.* 13261 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13262 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 13263 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 13264 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13265} { 13266 0 100 200 300 - - - - - - 13267 1 101 201 301 - - - - - - 13268 2 102 202 302 102 2 - - - - 13269 3 103 203 303 - - 203 3 - - 13270 4 104 204 304 104 4 - - - - 13271 5 105 205 305 - - - - 305 5 13272 6 106 206 306 106 6 206 6 - - 13273 7 107 207 307 - - - - - - 13274 8 108 208 308 108 8 - - - - 13275 9 109 209 309 - - 209 9 - - 13276 10 110 210 310 110 10 - - 310 10 13277 11 111 211 311 - - - - - - 13278 12 112 212 312 112 12 212 12 - - 13279 13 113 213 313 - - - - - - 13280 14 114 214 314 114 14 - - - - 13281 15 115 215 315 - - 215 15 315 15 13282 16 116 216 316 116 16 - - - - 13283 17 117 217 317 - - - - - - 13284 18 118 218 318 118 18 218 18 - - 13285 19 119 219 319 - - - - - - 13286 20 120 220 320 120 20 - - 320 20 13287 21 121 221 321 - - 221 21 - - 13288 22 122 222 322 122 22 - - - - 13289 23 123 223 323 - - - - - - 13290 24 124 224 324 124 24 224 24 - - 13291 25 125 225 325 - - - - 325 25 13292 26 126 226 326 126 26 - - - - 13293 27 127 227 327 - - 227 27 - - 13294 28 128 228 328 128 28 - - - - 13295 29 129 229 329 - - - - - - 13296 30 130 230 330 130 30 230 30 330 30 13297 31 131 231 331 - - - - - - 13298 32 132 232 332 132 32 - - - - 13299 33 133 233 333 - - 233 33 - - 13300 34 134 234 334 134 34 - - - - 13301 35 135 235 335 - - - - 335 35 13302 36 136 236 336 136 36 236 36 - - 13303 37 137 237 337 - - - - - - 13304 38 138 238 338 138 38 - - - - 13305 39 139 239 339 - - 239 39 - - 13306 40 140 240 340 140 40 - - 340 40 13307 41 141 241 341 - - - - - - 13308 42 142 242 342 142 42 242 42 - - 13309 43 143 243 343 - - - - - - 13310 44 144 244 344 144 44 - - - - 13311 45 145 245 345 - - 245 45 345 45 13312 46 146 246 346 146 46 - - - - 13313 47 147 247 347 - - - - - - 13314 48 148 248 348 148 48 248 48 - - 13315 49 149 249 349 - - - - - - 13316 50 150 250 350 150 50 - - 350 50 13317 51 151 251 351 - - 251 51 - - 13318 52 152 252 352 152 52 - - - - 13319 53 153 253 353 - - - - - - 13320 54 154 254 354 154 54 254 54 - - 13321 55 155 255 355 - - - - 355 55 13322 56 156 256 356 156 56 - - - - 13323 57 157 257 357 - - 257 57 - - 13324 58 158 258 358 158 58 - - - - 13325 59 159 259 359 - - - - - - 13326 60 160 260 360 160 60 260 60 360 60 13327 61 161 261 361 - - - - - - 13328 62 162 262 362 162 62 - - - - 13329 63 163 263 363 - - 263 63 - - 13330 64 164 264 364 164 64 - - - - 13331 65 165 265 365 - - - - 365 65 13332 66 166 266 366 166 66 266 66 - - 13333 67 167 267 367 - - - - - - 13334 68 168 268 368 168 68 - - - - 13335 69 169 269 369 - - 269 69 - - 13336 70 170 270 370 170 70 - - 370 70 13337 71 171 271 371 - - - - - - 13338 72 172 272 372 172 72 272 72 - - 13339 73 173 273 373 - - - - - - 13340 74 174 274 374 174 74 - - - - 13341 75 175 275 375 - - 275 75 375 75 13342 76 176 276 376 176 76 - - - - 13343 77 177 277 377 - - - - - - 13344 78 178 278 378 178 78 278 78 - - 13345 79 179 279 379 - - - - - - 13346 80 180 280 380 180 80 - - 380 80 13347 81 181 281 381 - - 281 81 - - 13348 82 182 282 382 182 82 - - - - 13349 83 183 283 383 - - - - - - 13350 84 184 284 384 184 84 284 84 - - 13351 85 185 285 385 - - - - 385 85 13352 86 186 286 386 186 86 - - - - 13353 87 187 287 387 - - 287 87 - - 13354 88 188 288 388 188 88 - - - - 13355 89 189 289 389 - - - - - - 13356 90 190 290 390 190 90 290 90 390 90 13357 91 191 291 391 - - - - - - 13358 92 192 292 392 192 92 - - - - 13359 93 193 293 393 - - 293 93 - - 13360 94 194 294 394 194 94 - - - - 13361 95 195 295 395 - - - - 395 95 13362 96 - 296 396 - - - - - - 13363 97 197 - 397 - - - - - - 13364 98 198 298 - - - - - - - 13365 99 - - - - - - - - - 13366 - - - - - - - - 300 0 13367} 13368do_execsql_test joinD-453 { 13369 SELECT t1.*, t2.*, t3.*, t4.* 13370 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13371 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13372 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13373 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13374} { 13375 15 115 215 315 - - 215 15 315 15 13376 30 130 230 330 130 30 230 30 330 30 13377 45 145 245 345 - - 245 45 345 45 13378 60 160 260 360 160 60 260 60 360 60 13379 75 175 275 375 - - 275 75 375 75 13380 90 190 290 390 190 90 290 90 390 90 13381} 13382do_execsql_test joinD-454 { 13383 SELECT t1.*, t2.*, t3.*, t4.* 13384 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 13385 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13386 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13387 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13388} { 13389 15 115 215 315 - - 215 15 315 15 13390 30 130 230 330 130 30 230 30 330 30 13391 45 145 245 345 - - 245 45 345 45 13392 60 160 260 360 160 60 260 60 360 60 13393 75 175 275 375 - - 275 75 375 75 13394 90 190 290 390 190 90 290 90 390 90 13395} 13396do_execsql_test joinD-455 { 13397 SELECT t1.*, t2.*, t3.*, t4.* 13398 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13399 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13400 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13401 WHERE t2.x>0 13402 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13403} { 13404 30 130 230 330 130 30 230 30 330 30 13405 60 160 260 360 160 60 260 60 360 60 13406 90 190 290 390 190 90 290 90 390 90 13407} 13408do_execsql_test joinD-456 { 13409 SELECT t1.*, t2.*, t3.*, t4.* 13410 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13411 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13412 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13413 WHERE (t2.x>0 OR t2.x IS NULL) 13414 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13415} { 13416 15 115 215 315 - - 215 15 315 15 13417 30 130 230 330 130 30 230 30 330 30 13418 45 145 245 345 - - 245 45 345 45 13419 60 160 260 360 160 60 260 60 360 60 13420 75 175 275 375 - - 275 75 375 75 13421 90 190 290 390 190 90 290 90 390 90 13422} 13423do_execsql_test joinD-457 { 13424 SELECT t1.*, t2.*, t3.*, t4.* 13425 FROM t1 LEFT JOIN t2 ON true 13426 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13427 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13428 WHERE t1.b=t2.b AND t2.x>0 13429 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13430} { 13431 30 130 230 330 130 30 230 30 330 30 13432 60 160 260 360 160 60 260 60 360 60 13433 90 190 290 390 190 90 290 90 390 90 13434} 13435do_execsql_test joinD-458 { 13436 SELECT t1.*, t2.*, t3.*, t4.* 13437 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13438 RIGHT JOIN t3 ON t1.c=t3.c 13439 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13440 WHERE t3.y>0 13441 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13442} { 13443 15 115 215 315 - - 215 15 315 15 13444 30 130 230 330 130 30 230 30 330 30 13445 45 145 245 345 - - 245 45 345 45 13446 60 160 260 360 160 60 260 60 360 60 13447 75 175 275 375 - - 275 75 375 75 13448 90 190 290 390 190 90 290 90 390 90 13449} 13450do_execsql_test joinD-459 { 13451 SELECT t1.*, t2.*, t3.*, t4.* 13452 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13453 RIGHT JOIN t3 ON t1.c=t3.c 13454 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13455 WHERE t3.y>0 OR t3.y IS NULL 13456 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13457} { 13458 15 115 215 315 - - 215 15 315 15 13459 30 130 230 330 130 30 230 30 330 30 13460 45 145 245 345 - - 245 45 345 45 13461 60 160 260 360 160 60 260 60 360 60 13462 75 175 275 375 - - 275 75 375 75 13463 90 190 290 390 190 90 290 90 390 90 13464} 13465do_execsql_test joinD-460 { 13466 SELECT t1.*, t2.*, t3.*, t4.* 13467 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13468 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13469 INNER JOIN t4 ON t1.d=t4.d 13470 WHERE t4.z>0 13471 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13472} { 13473 15 115 215 315 - - 215 15 315 15 13474 30 130 230 330 130 30 230 30 330 30 13475 45 145 245 345 - - 245 45 345 45 13476 60 160 260 360 160 60 260 60 360 60 13477 75 175 275 375 - - 275 75 375 75 13478 90 190 290 390 190 90 290 90 390 90 13479} 13480do_execsql_test joinD-461 { 13481 SELECT t1.*, t2.*, t3.*, t4.* 13482 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13483 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13484 INNER JOIN t4 ON t1.d=t4.d 13485 WHERE t4.z IS NULL OR t4.z>0 13486 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13487} { 13488 15 115 215 315 - - 215 15 315 15 13489 30 130 230 330 130 30 230 30 330 30 13490 45 145 245 345 - - 245 45 345 45 13491 60 160 260 360 160 60 260 60 360 60 13492 75 175 275 375 - - 275 75 375 75 13493 90 190 290 390 190 90 290 90 390 90 13494} 13495do_execsql_test joinD-462 { 13496 SELECT t1.*, t2.*, t3.*, t4.* 13497 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13498 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13499 INNER JOIN t4 ON t1.d=t4.d 13500 WHERE t2.x>0 AND t4.z>0 13501 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13502} { 13503 30 130 230 330 130 30 230 30 330 30 13504 60 160 260 360 160 60 260 60 360 60 13505 90 190 290 390 190 90 290 90 390 90 13506} 13507do_execsql_test joinD-463 { 13508 SELECT t1.*, t2.*, t3.*, t4.* 13509 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13510 RIGHT JOIN t3 ON t1.c=t3.c 13511 INNER JOIN t4 ON t1.d=t4.d 13512 WHERE t4.z>0 AND t3.y>0 13513 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13514} { 13515 15 115 215 315 - - 215 15 315 15 13516 30 130 230 330 130 30 230 30 330 30 13517 45 145 245 345 - - 245 45 345 45 13518 60 160 260 360 160 60 260 60 360 60 13519 75 175 275 375 - - 275 75 375 75 13520 90 190 290 390 190 90 290 90 390 90 13521} 13522do_execsql_test joinD-464 { 13523 SELECT t1.*, t2.*, t3.*, t4.* 13524 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13525 RIGHT JOIN t3 ON t1.c=t3.c 13526 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13527 WHERE t2.x>0 AND t3.y>0 13528 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13529} { 13530 30 130 230 330 130 30 230 30 330 30 13531 60 160 260 360 160 60 260 60 360 60 13532 90 190 290 390 190 90 290 90 390 90 13533} 13534do_execsql_test joinD-465 { 13535 SELECT t1.*, t2.*, t3.*, t4.* 13536 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13537 RIGHT JOIN t3 ON t1.c=t3.c 13538 INNER JOIN t4 ON t1.d=t4.d 13539 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 13540 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13541} { 13542 30 130 230 330 130 30 230 30 330 30 13543 60 160 260 360 160 60 260 60 360 60 13544 90 190 290 390 190 90 290 90 390 90 13545} 13546do_execsql_test joinD-466 { 13547 SELECT t1.*, t2.*, t3.*, t4.* 13548 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 13549 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 13550 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 13551 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13552} { 13553 15 115 215 315 - - 215 15 315 15 13554 30 130 230 330 130 30 230 30 330 30 13555 45 145 245 345 - - 245 45 345 45 13556 60 160 260 360 160 60 260 60 360 60 13557 75 175 275 375 - - 275 75 375 75 13558 90 190 290 390 190 90 290 90 390 90 13559} 13560do_execsql_test joinD-467 { 13561 SELECT t1.*, t2.*, t3.*, t4.* 13562 FROM t1 LEFT JOIN t2 ON t2.x>0 13563 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 13564 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 13565 WHERE t1.b IS NOT DISTINCT FROM t2.b 13566 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13567} { 13568 30 130 230 330 130 30 230 30 330 30 13569 60 160 260 360 160 60 260 60 360 60 13570 90 190 290 390 190 90 290 90 390 90 13571} 13572do_execsql_test joinD-468 { 13573 SELECT t1.*, t2.*, t3.*, t4.* 13574 FROM t1 LEFT JOIN t2 ON t2.x>0 13575 RIGHT JOIN t3 ON t3.y>0 13576 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 13577 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 13578 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13579} { 13580 30 130 230 330 130 30 230 30 330 30 13581 60 160 260 360 160 60 260 60 360 60 13582 90 190 290 390 190 90 290 90 390 90 13583} 13584do_execsql_test joinD-469 { 13585 SELECT t1.*, t2.*, t3.*, t4.* 13586 FROM t1 LEFT JOIN t2 ON t2.x>0 13587 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 13588 INNER JOIN t4 ON t4.z>0 13589 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 13590 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13591} { 13592 30 130 230 330 130 30 230 30 330 30 13593 60 160 260 360 160 60 260 60 360 60 13594 90 190 290 390 190 90 290 90 390 90 13595} 13596do_execsql_test joinD-470 { 13597 SELECT t1.*, t2.*, t3.*, t4.* 13598 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 13599 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13600 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13601 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13602} { 13603 15 115 215 315 - - 215 15 315 15 13604 30 130 230 330 130 30 230 30 330 30 13605 45 145 245 345 - - 245 45 345 45 13606 60 160 260 360 160 60 260 60 360 60 13607 75 175 275 375 - - 275 75 375 75 13608 90 190 290 390 190 90 290 90 390 90 13609} 13610do_execsql_test joinD-471 { 13611 SELECT t1.*, t2.*, t3.*, t4.* 13612 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13613 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 13614 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 13615 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13616} { 13617 15 115 215 315 - - 215 15 315 15 13618 30 130 230 330 130 30 230 30 330 30 13619 45 145 245 345 - - 245 45 345 45 13620 60 160 260 360 160 60 260 60 360 60 13621 75 175 275 375 - - 275 75 375 75 13622 90 190 290 390 190 90 290 90 390 90 13623} 13624do_execsql_test joinD-472 { 13625 SELECT t1.*, t2.*, t3.*, t4.* 13626 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13627 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13628 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 13629 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13630} { 13631 3 103 203 303 - - 203 3 - - 13632 6 106 206 306 106 6 206 6 - - 13633 9 109 209 309 - - 209 9 - - 13634 12 112 212 312 112 12 212 12 - - 13635 15 115 215 315 - - 215 15 315 15 13636 18 118 218 318 118 18 218 18 - - 13637 21 121 221 321 - - 221 21 - - 13638 24 124 224 324 124 24 224 24 - - 13639 27 127 227 327 - - 227 27 - - 13640 30 130 230 330 130 30 230 30 330 30 13641 33 133 233 333 - - 233 33 - - 13642 36 136 236 336 136 36 236 36 - - 13643 39 139 239 339 - - 239 39 - - 13644 42 142 242 342 142 42 242 42 - - 13645 45 145 245 345 - - 245 45 345 45 13646 48 148 248 348 148 48 248 48 - - 13647 51 151 251 351 - - 251 51 - - 13648 54 154 254 354 154 54 254 54 - - 13649 57 157 257 357 - - 257 57 - - 13650 60 160 260 360 160 60 260 60 360 60 13651 63 163 263 363 - - 263 63 - - 13652 66 166 266 366 166 66 266 66 - - 13653 69 169 269 369 - - 269 69 - - 13654 72 172 272 372 172 72 272 72 - - 13655 75 175 275 375 - - 275 75 375 75 13656 78 178 278 378 178 78 278 78 - - 13657 81 181 281 381 - - 281 81 - - 13658 84 184 284 384 184 84 284 84 - - 13659 87 187 287 387 - - 287 87 - - 13660 90 190 290 390 190 90 290 90 390 90 13661 93 193 293 393 - - 293 93 - - 13662 - - - - - - 200 0 - - 13663} 13664do_execsql_test joinD-473 { 13665 SELECT t1.*, t2.*, t3.*, t4.* 13666 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 13667 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13668 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 13669 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13670} { 13671 3 103 203 303 - - 203 3 - - 13672 6 106 206 306 106 6 206 6 - - 13673 9 109 209 309 - - 209 9 - - 13674 12 112 212 312 112 12 212 12 - - 13675 15 115 215 315 - - 215 15 315 15 13676 18 118 218 318 118 18 218 18 - - 13677 21 121 221 321 - - 221 21 - - 13678 24 124 224 324 124 24 224 24 - - 13679 27 127 227 327 - - 227 27 - - 13680 30 130 230 330 130 30 230 30 330 30 13681 33 133 233 333 - - 233 33 - - 13682 36 136 236 336 136 36 236 36 - - 13683 39 139 239 339 - - 239 39 - - 13684 42 142 242 342 142 42 242 42 - - 13685 45 145 245 345 - - 245 45 345 45 13686 48 148 248 348 148 48 248 48 - - 13687 51 151 251 351 - - 251 51 - - 13688 54 154 254 354 154 54 254 54 - - 13689 57 157 257 357 - - 257 57 - - 13690 60 160 260 360 160 60 260 60 360 60 13691 63 163 263 363 - - 263 63 - - 13692 66 166 266 366 166 66 266 66 - - 13693 69 169 269 369 - - 269 69 - - 13694 72 172 272 372 172 72 272 72 - - 13695 75 175 275 375 - - 275 75 375 75 13696 78 178 278 378 178 78 278 78 - - 13697 81 181 281 381 - - 281 81 - - 13698 84 184 284 384 184 84 284 84 - - 13699 87 187 287 387 - - 287 87 - - 13700 90 190 290 390 190 90 290 90 390 90 13701 93 193 293 393 - - 293 93 - - 13702 - - - - - - 200 0 - - 13703} 13704do_execsql_test joinD-474 { 13705 SELECT t1.*, t2.*, t3.*, t4.* 13706 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13707 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13708 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 13709 WHERE t2.x>0 13710 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13711} { 13712 6 106 206 306 106 6 206 6 - - 13713 12 112 212 312 112 12 212 12 - - 13714 18 118 218 318 118 18 218 18 - - 13715 24 124 224 324 124 24 224 24 - - 13716 30 130 230 330 130 30 230 30 330 30 13717 36 136 236 336 136 36 236 36 - - 13718 42 142 242 342 142 42 242 42 - - 13719 48 148 248 348 148 48 248 48 - - 13720 54 154 254 354 154 54 254 54 - - 13721 60 160 260 360 160 60 260 60 360 60 13722 66 166 266 366 166 66 266 66 - - 13723 72 172 272 372 172 72 272 72 - - 13724 78 178 278 378 178 78 278 78 - - 13725 84 184 284 384 184 84 284 84 - - 13726 90 190 290 390 190 90 290 90 390 90 13727} 13728do_execsql_test joinD-475 { 13729 SELECT t1.*, t2.*, t3.*, t4.* 13730 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13731 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13732 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 13733 WHERE (t2.x>0 OR t2.x IS NULL) 13734 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13735} { 13736 3 103 203 303 - - 203 3 - - 13737 6 106 206 306 106 6 206 6 - - 13738 9 109 209 309 - - 209 9 - - 13739 12 112 212 312 112 12 212 12 - - 13740 15 115 215 315 - - 215 15 315 15 13741 18 118 218 318 118 18 218 18 - - 13742 21 121 221 321 - - 221 21 - - 13743 24 124 224 324 124 24 224 24 - - 13744 27 127 227 327 - - 227 27 - - 13745 30 130 230 330 130 30 230 30 330 30 13746 33 133 233 333 - - 233 33 - - 13747 36 136 236 336 136 36 236 36 - - 13748 39 139 239 339 - - 239 39 - - 13749 42 142 242 342 142 42 242 42 - - 13750 45 145 245 345 - - 245 45 345 45 13751 48 148 248 348 148 48 248 48 - - 13752 51 151 251 351 - - 251 51 - - 13753 54 154 254 354 154 54 254 54 - - 13754 57 157 257 357 - - 257 57 - - 13755 60 160 260 360 160 60 260 60 360 60 13756 63 163 263 363 - - 263 63 - - 13757 66 166 266 366 166 66 266 66 - - 13758 69 169 269 369 - - 269 69 - - 13759 72 172 272 372 172 72 272 72 - - 13760 75 175 275 375 - - 275 75 375 75 13761 78 178 278 378 178 78 278 78 - - 13762 81 181 281 381 - - 281 81 - - 13763 84 184 284 384 184 84 284 84 - - 13764 87 187 287 387 - - 287 87 - - 13765 90 190 290 390 190 90 290 90 390 90 13766 93 193 293 393 - - 293 93 - - 13767 - - - - - - 200 0 - - 13768} 13769do_execsql_test joinD-476 { 13770 SELECT t1.*, t2.*, t3.*, t4.* 13771 FROM t1 LEFT JOIN t2 ON true 13772 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13773 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 13774 WHERE t1.b=t2.b AND t2.x>0 13775 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13776} { 13777 6 106 206 306 106 6 206 6 - - 13778 12 112 212 312 112 12 212 12 - - 13779 18 118 218 318 118 18 218 18 - - 13780 24 124 224 324 124 24 224 24 - - 13781 30 130 230 330 130 30 230 30 330 30 13782 36 136 236 336 136 36 236 36 - - 13783 42 142 242 342 142 42 242 42 - - 13784 48 148 248 348 148 48 248 48 - - 13785 54 154 254 354 154 54 254 54 - - 13786 60 160 260 360 160 60 260 60 360 60 13787 66 166 266 366 166 66 266 66 - - 13788 72 172 272 372 172 72 272 72 - - 13789 78 178 278 378 178 78 278 78 - - 13790 84 184 284 384 184 84 284 84 - - 13791 90 190 290 390 190 90 290 90 390 90 13792} 13793do_execsql_test joinD-477 { 13794 SELECT t1.*, t2.*, t3.*, t4.* 13795 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13796 RIGHT JOIN t3 ON t1.c=t3.c 13797 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 13798 WHERE t3.y>0 13799 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13800} { 13801 3 103 203 303 - - 203 3 - - 13802 6 106 206 306 106 6 206 6 - - 13803 9 109 209 309 - - 209 9 - - 13804 12 112 212 312 112 12 212 12 - - 13805 15 115 215 315 - - 215 15 315 15 13806 18 118 218 318 118 18 218 18 - - 13807 21 121 221 321 - - 221 21 - - 13808 24 124 224 324 124 24 224 24 - - 13809 27 127 227 327 - - 227 27 - - 13810 30 130 230 330 130 30 230 30 330 30 13811 33 133 233 333 - - 233 33 - - 13812 36 136 236 336 136 36 236 36 - - 13813 39 139 239 339 - - 239 39 - - 13814 42 142 242 342 142 42 242 42 - - 13815 45 145 245 345 - - 245 45 345 45 13816 48 148 248 348 148 48 248 48 - - 13817 51 151 251 351 - - 251 51 - - 13818 54 154 254 354 154 54 254 54 - - 13819 57 157 257 357 - - 257 57 - - 13820 60 160 260 360 160 60 260 60 360 60 13821 63 163 263 363 - - 263 63 - - 13822 66 166 266 366 166 66 266 66 - - 13823 69 169 269 369 - - 269 69 - - 13824 72 172 272 372 172 72 272 72 - - 13825 75 175 275 375 - - 275 75 375 75 13826 78 178 278 378 178 78 278 78 - - 13827 81 181 281 381 - - 281 81 - - 13828 84 184 284 384 184 84 284 84 - - 13829 87 187 287 387 - - 287 87 - - 13830 90 190 290 390 190 90 290 90 390 90 13831 93 193 293 393 - - 293 93 - - 13832} 13833do_execsql_test joinD-478 { 13834 SELECT t1.*, t2.*, t3.*, t4.* 13835 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13836 RIGHT JOIN t3 ON t1.c=t3.c 13837 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 13838 WHERE t3.y>0 OR t3.y IS NULL 13839 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13840} { 13841 3 103 203 303 - - 203 3 - - 13842 6 106 206 306 106 6 206 6 - - 13843 9 109 209 309 - - 209 9 - - 13844 12 112 212 312 112 12 212 12 - - 13845 15 115 215 315 - - 215 15 315 15 13846 18 118 218 318 118 18 218 18 - - 13847 21 121 221 321 - - 221 21 - - 13848 24 124 224 324 124 24 224 24 - - 13849 27 127 227 327 - - 227 27 - - 13850 30 130 230 330 130 30 230 30 330 30 13851 33 133 233 333 - - 233 33 - - 13852 36 136 236 336 136 36 236 36 - - 13853 39 139 239 339 - - 239 39 - - 13854 42 142 242 342 142 42 242 42 - - 13855 45 145 245 345 - - 245 45 345 45 13856 48 148 248 348 148 48 248 48 - - 13857 51 151 251 351 - - 251 51 - - 13858 54 154 254 354 154 54 254 54 - - 13859 57 157 257 357 - - 257 57 - - 13860 60 160 260 360 160 60 260 60 360 60 13861 63 163 263 363 - - 263 63 - - 13862 66 166 266 366 166 66 266 66 - - 13863 69 169 269 369 - - 269 69 - - 13864 72 172 272 372 172 72 272 72 - - 13865 75 175 275 375 - - 275 75 375 75 13866 78 178 278 378 178 78 278 78 - - 13867 81 181 281 381 - - 281 81 - - 13868 84 184 284 384 184 84 284 84 - - 13869 87 187 287 387 - - 287 87 - - 13870 90 190 290 390 190 90 290 90 390 90 13871 93 193 293 393 - - 293 93 - - 13872} 13873do_execsql_test joinD-479 { 13874 SELECT t1.*, t2.*, t3.*, t4.* 13875 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13876 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13877 LEFT JOIN t4 ON t1.d=t4.d 13878 WHERE t4.z>0 13879 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13880} { 13881 15 115 215 315 - - 215 15 315 15 13882 30 130 230 330 130 30 230 30 330 30 13883 45 145 245 345 - - 245 45 345 45 13884 60 160 260 360 160 60 260 60 360 60 13885 75 175 275 375 - - 275 75 375 75 13886 90 190 290 390 190 90 290 90 390 90 13887} 13888do_execsql_test joinD-480 { 13889 SELECT t1.*, t2.*, t3.*, t4.* 13890 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13891 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13892 LEFT JOIN t4 ON t1.d=t4.d 13893 WHERE t4.z IS NULL OR t4.z>0 13894 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13895} { 13896 3 103 203 303 - - 203 3 - - 13897 6 106 206 306 106 6 206 6 - - 13898 9 109 209 309 - - 209 9 - - 13899 12 112 212 312 112 12 212 12 - - 13900 15 115 215 315 - - 215 15 315 15 13901 18 118 218 318 118 18 218 18 - - 13902 21 121 221 321 - - 221 21 - - 13903 24 124 224 324 124 24 224 24 - - 13904 27 127 227 327 - - 227 27 - - 13905 30 130 230 330 130 30 230 30 330 30 13906 33 133 233 333 - - 233 33 - - 13907 36 136 236 336 136 36 236 36 - - 13908 39 139 239 339 - - 239 39 - - 13909 42 142 242 342 142 42 242 42 - - 13910 45 145 245 345 - - 245 45 345 45 13911 48 148 248 348 148 48 248 48 - - 13912 51 151 251 351 - - 251 51 - - 13913 54 154 254 354 154 54 254 54 - - 13914 57 157 257 357 - - 257 57 - - 13915 60 160 260 360 160 60 260 60 360 60 13916 63 163 263 363 - - 263 63 - - 13917 66 166 266 366 166 66 266 66 - - 13918 69 169 269 369 - - 269 69 - - 13919 72 172 272 372 172 72 272 72 - - 13920 75 175 275 375 - - 275 75 375 75 13921 78 178 278 378 178 78 278 78 - - 13922 81 181 281 381 - - 281 81 - - 13923 84 184 284 384 184 84 284 84 - - 13924 87 187 287 387 - - 287 87 - - 13925 90 190 290 390 190 90 290 90 390 90 13926 93 193 293 393 - - 293 93 - - 13927 - - - - - - 200 0 - - 13928} 13929do_execsql_test joinD-481 { 13930 SELECT t1.*, t2.*, t3.*, t4.* 13931 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13932 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 13933 LEFT JOIN t4 ON t1.d=t4.d 13934 WHERE t2.x>0 AND t4.z>0 13935 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13936} { 13937 30 130 230 330 130 30 230 30 330 30 13938 60 160 260 360 160 60 260 60 360 60 13939 90 190 290 390 190 90 290 90 390 90 13940} 13941do_execsql_test joinD-482 { 13942 SELECT t1.*, t2.*, t3.*, t4.* 13943 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 13944 RIGHT JOIN t3 ON t1.c=t3.c 13945 LEFT JOIN t4 ON t1.d=t4.d 13946 WHERE t4.z>0 AND t3.y>0 13947 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13948} { 13949 15 115 215 315 - - 215 15 315 15 13950 30 130 230 330 130 30 230 30 330 30 13951 45 145 245 345 - - 245 45 345 45 13952 60 160 260 360 160 60 260 60 360 60 13953 75 175 275 375 - - 275 75 375 75 13954 90 190 290 390 190 90 290 90 390 90 13955} 13956do_execsql_test joinD-483 { 13957 SELECT t1.*, t2.*, t3.*, t4.* 13958 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13959 RIGHT JOIN t3 ON t1.c=t3.c 13960 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 13961 WHERE t2.x>0 AND t3.y>0 13962 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13963} { 13964 6 106 206 306 106 6 206 6 - - 13965 12 112 212 312 112 12 212 12 - - 13966 18 118 218 318 118 18 218 18 - - 13967 24 124 224 324 124 24 224 24 - - 13968 30 130 230 330 130 30 230 30 330 30 13969 36 136 236 336 136 36 236 36 - - 13970 42 142 242 342 142 42 242 42 - - 13971 48 148 248 348 148 48 248 48 - - 13972 54 154 254 354 154 54 254 54 - - 13973 60 160 260 360 160 60 260 60 360 60 13974 66 166 266 366 166 66 266 66 - - 13975 72 172 272 372 172 72 272 72 - - 13976 78 178 278 378 178 78 278 78 - - 13977 84 184 284 384 184 84 284 84 - - 13978 90 190 290 390 190 90 290 90 390 90 13979} 13980do_execsql_test joinD-484 { 13981 SELECT t1.*, t2.*, t3.*, t4.* 13982 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 13983 RIGHT JOIN t3 ON t1.c=t3.c 13984 LEFT JOIN t4 ON t1.d=t4.d 13985 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 13986 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13987} { 13988 30 130 230 330 130 30 230 30 330 30 13989 60 160 260 360 160 60 260 60 360 60 13990 90 190 290 390 190 90 290 90 390 90 13991} 13992do_execsql_test joinD-485 { 13993 SELECT t1.*, t2.*, t3.*, t4.* 13994 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 13995 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 13996 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 13997 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 13998} { 13999 3 103 203 303 - - 203 3 - - 14000 6 106 206 306 106 6 206 6 - - 14001 9 109 209 309 - - 209 9 - - 14002 12 112 212 312 112 12 212 12 - - 14003 15 115 215 315 - - 215 15 315 15 14004 18 118 218 318 118 18 218 18 - - 14005 21 121 221 321 - - 221 21 - - 14006 24 124 224 324 124 24 224 24 - - 14007 27 127 227 327 - - 227 27 - - 14008 30 130 230 330 130 30 230 30 330 30 14009 33 133 233 333 - - 233 33 - - 14010 36 136 236 336 136 36 236 36 - - 14011 39 139 239 339 - - 239 39 - - 14012 42 142 242 342 142 42 242 42 - - 14013 45 145 245 345 - - 245 45 345 45 14014 48 148 248 348 148 48 248 48 - - 14015 51 151 251 351 - - 251 51 - - 14016 54 154 254 354 154 54 254 54 - - 14017 57 157 257 357 - - 257 57 - - 14018 60 160 260 360 160 60 260 60 360 60 14019 63 163 263 363 - - 263 63 - - 14020 66 166 266 366 166 66 266 66 - - 14021 69 169 269 369 - - 269 69 - - 14022 72 172 272 372 172 72 272 72 - - 14023 75 175 275 375 - - 275 75 375 75 14024 78 178 278 378 178 78 278 78 - - 14025 81 181 281 381 - - 281 81 - - 14026 84 184 284 384 184 84 284 84 - - 14027 87 187 287 387 - - 287 87 - - 14028 90 190 290 390 190 90 290 90 390 90 14029 93 193 293 393 - - 293 93 - - 14030 - - - - - - 200 0 - - 14031} 14032do_execsql_test joinD-486 { 14033 SELECT t1.*, t2.*, t3.*, t4.* 14034 FROM t1 LEFT JOIN t2 ON t2.x>0 14035 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 14036 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 14037 WHERE t1.b IS NOT DISTINCT FROM t2.b 14038 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14039} { 14040 6 106 206 306 106 6 206 6 - - 14041 12 112 212 312 112 12 212 12 - - 14042 18 118 218 318 118 18 218 18 - - 14043 24 124 224 324 124 24 224 24 - - 14044 30 130 230 330 130 30 230 30 330 30 14045 36 136 236 336 136 36 236 36 - - 14046 42 142 242 342 142 42 242 42 - - 14047 48 148 248 348 148 48 248 48 - - 14048 54 154 254 354 154 54 254 54 - - 14049 60 160 260 360 160 60 260 60 360 60 14050 66 166 266 366 166 66 266 66 - - 14051 72 172 272 372 172 72 272 72 - - 14052 78 178 278 378 178 78 278 78 - - 14053 84 184 284 384 184 84 284 84 - - 14054 90 190 290 390 190 90 290 90 390 90 14055 - - - - - - 200 0 - - 14056} 14057do_execsql_test joinD-487 { 14058 SELECT t1.*, t2.*, t3.*, t4.* 14059 FROM t1 LEFT JOIN t2 ON t2.x>0 14060 RIGHT JOIN t3 ON t3.y>0 14061 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 14062 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 14063 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14064} { 14065 6 106 206 306 106 6 206 6 - - 14066 12 112 212 312 112 12 212 12 - - 14067 18 118 218 318 118 18 218 18 - - 14068 24 124 224 324 124 24 224 24 - - 14069 30 130 230 330 130 30 230 30 330 30 14070 36 136 236 336 136 36 236 36 - - 14071 42 142 242 342 142 42 242 42 - - 14072 48 148 248 348 148 48 248 48 - - 14073 54 154 254 354 154 54 254 54 - - 14074 60 160 260 360 160 60 260 60 360 60 14075 66 166 266 366 166 66 266 66 - - 14076 72 172 272 372 172 72 272 72 - - 14077 78 178 278 378 178 78 278 78 - - 14078 84 184 284 384 184 84 284 84 - - 14079 90 190 290 390 190 90 290 90 390 90 14080} 14081do_execsql_test joinD-488 { 14082 SELECT t1.*, t2.*, t3.*, t4.* 14083 FROM t1 LEFT JOIN t2 ON t2.x>0 14084 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 14085 LEFT JOIN t4 ON t4.z>0 14086 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 14087 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14088} { 14089 30 130 230 330 130 30 230 30 330 30 14090 60 160 260 360 160 60 260 60 360 60 14091 90 190 290 390 190 90 290 90 390 90 14092} 14093do_execsql_test joinD-489 { 14094 SELECT t1.*, t2.*, t3.*, t4.* 14095 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 14096 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14097 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 14098 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14099} { 14100 3 103 203 303 - - 203 3 - - 14101 6 106 206 306 106 6 206 6 - - 14102 9 109 209 309 - - 209 9 - - 14103 12 112 212 312 112 12 212 12 - - 14104 15 115 215 315 - - 215 15 315 15 14105 18 118 218 318 118 18 218 18 - - 14106 21 121 221 321 - - 221 21 - - 14107 24 124 224 324 124 24 224 24 - - 14108 27 127 227 327 - - 227 27 - - 14109 30 130 230 330 130 30 230 30 330 30 14110 33 133 233 333 - - 233 33 - - 14111 36 136 236 336 136 36 236 36 - - 14112 39 139 239 339 - - 239 39 - - 14113 42 142 242 342 142 42 242 42 - - 14114 45 145 245 345 - - 245 45 345 45 14115 48 148 248 348 148 48 248 48 - - 14116 51 151 251 351 - - 251 51 - - 14117 54 154 254 354 154 54 254 54 - - 14118 57 157 257 357 - - 257 57 - - 14119 60 160 260 360 160 60 260 60 360 60 14120 63 163 263 363 - - 263 63 - - 14121 66 166 266 366 166 66 266 66 - - 14122 69 169 269 369 - - 269 69 - - 14123 72 172 272 372 172 72 272 72 - - 14124 75 175 275 375 - - 275 75 375 75 14125 78 178 278 378 178 78 278 78 - - 14126 81 181 281 381 - - 281 81 - - 14127 84 184 284 384 184 84 284 84 - - 14128 87 187 287 387 - - 287 87 - - 14129 90 190 290 390 190 90 290 90 390 90 14130 93 193 293 393 - - 293 93 - - 14131 - - - - - - 200 0 - - 14132} 14133do_execsql_test joinD-490 { 14134 SELECT t1.*, t2.*, t3.*, t4.* 14135 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14136 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 14137 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 14138 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14139} { 14140 3 103 203 303 - - 203 3 - - 14141 6 106 206 306 106 6 206 6 - - 14142 9 109 209 309 - - 209 9 - - 14143 12 112 212 312 112 12 212 12 - - 14144 15 115 215 315 - - 215 15 315 15 14145 18 118 218 318 118 18 218 18 - - 14146 21 121 221 321 - - 221 21 - - 14147 24 124 224 324 124 24 224 24 - - 14148 27 127 227 327 - - 227 27 - - 14149 30 130 230 330 130 30 230 30 330 30 14150 33 133 233 333 - - 233 33 - - 14151 36 136 236 336 136 36 236 36 - - 14152 39 139 239 339 - - 239 39 - - 14153 42 142 242 342 142 42 242 42 - - 14154 45 145 245 345 - - 245 45 345 45 14155 48 148 248 348 148 48 248 48 - - 14156 51 151 251 351 - - 251 51 - - 14157 54 154 254 354 154 54 254 54 - - 14158 57 157 257 357 - - 257 57 - - 14159 60 160 260 360 160 60 260 60 360 60 14160 63 163 263 363 - - 263 63 - - 14161 66 166 266 366 166 66 266 66 - - 14162 69 169 269 369 - - 269 69 - - 14163 72 172 272 372 172 72 272 72 - - 14164 75 175 275 375 - - 275 75 375 75 14165 78 178 278 378 178 78 278 78 - - 14166 81 181 281 381 - - 281 81 - - 14167 84 184 284 384 184 84 284 84 - - 14168 87 187 287 387 - - 287 87 - - 14169 90 190 290 390 190 90 290 90 390 90 14170 93 193 293 393 - - 293 93 - - 14171 - - - - - - 200 0 - - 14172} 14173do_execsql_test joinD-491 { 14174 SELECT t1.*, t2.*, t3.*, t4.* 14175 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14176 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14177 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14178 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14179} { 14180 15 115 215 315 - - 215 15 315 15 14181 30 130 230 330 130 30 230 30 330 30 14182 45 145 245 345 - - 245 45 345 45 14183 60 160 260 360 160 60 260 60 360 60 14184 75 175 275 375 - - 275 75 375 75 14185 90 190 290 390 190 90 290 90 390 90 14186 - - - - - - - - 300 0 14187 - - - - - - - - 305 5 14188 - - - - - - - - 310 10 14189 - - - - - - - - 320 20 14190 - - - - - - - - 325 25 14191 - - - - - - - - 335 35 14192 - - - - - - - - 340 40 14193 - - - - - - - - 350 50 14194 - - - - - - - - 355 55 14195 - - - - - - - - 365 65 14196 - - - - - - - - 370 70 14197 - - - - - - - - 380 80 14198 - - - - - - - - 385 85 14199 - - - - - - - - 395 95 14200} 14201do_execsql_test joinD-492 { 14202 SELECT t1.*, t2.*, t3.*, t4.* 14203 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 14204 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14205 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14206 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14207} { 14208 15 115 215 315 - - 215 15 315 15 14209 30 130 230 330 130 30 230 30 330 30 14210 45 145 245 345 - - 245 45 345 45 14211 60 160 260 360 160 60 260 60 360 60 14212 75 175 275 375 - - 275 75 375 75 14213 90 190 290 390 190 90 290 90 390 90 14214 - - - - - - - - 300 0 14215 - - - - - - - - 305 5 14216 - - - - - - - - 310 10 14217 - - - - - - - - 320 20 14218 - - - - - - - - 325 25 14219 - - - - - - - - 335 35 14220 - - - - - - - - 340 40 14221 - - - - - - - - 350 50 14222 - - - - - - - - 355 55 14223 - - - - - - - - 365 65 14224 - - - - - - - - 370 70 14225 - - - - - - - - 380 80 14226 - - - - - - - - 385 85 14227 - - - - - - - - 395 95 14228} 14229do_execsql_test joinD-493 { 14230 SELECT t1.*, t2.*, t3.*, t4.* 14231 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 14232 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14233 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14234 WHERE t2.x>0 14235 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14236} { 14237 30 130 230 330 130 30 230 30 330 30 14238 60 160 260 360 160 60 260 60 360 60 14239 90 190 290 390 190 90 290 90 390 90 14240} 14241do_execsql_test joinD-494 { 14242 SELECT t1.*, t2.*, t3.*, t4.* 14243 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 14244 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14245 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14246 WHERE (t2.x>0 OR t2.x IS NULL) 14247 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14248} { 14249 15 115 215 315 - - 215 15 315 15 14250 30 130 230 330 130 30 230 30 330 30 14251 45 145 245 345 - - 245 45 345 45 14252 60 160 260 360 160 60 260 60 360 60 14253 75 175 275 375 - - 275 75 375 75 14254 90 190 290 390 190 90 290 90 390 90 14255 - - - - - - - - 300 0 14256 - - - - - - - - 305 5 14257 - - - - - - - - 310 10 14258 - - - - - - - - 320 20 14259 - - - - - - - - 325 25 14260 - - - - - - - - 335 35 14261 - - - - - - - - 340 40 14262 - - - - - - - - 350 50 14263 - - - - - - - - 355 55 14264 - - - - - - - - 365 65 14265 - - - - - - - - 370 70 14266 - - - - - - - - 380 80 14267 - - - - - - - - 385 85 14268 - - - - - - - - 395 95 14269} 14270do_execsql_test joinD-495 { 14271 SELECT t1.*, t2.*, t3.*, t4.* 14272 FROM t1 LEFT JOIN t2 ON true 14273 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14274 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14275 WHERE t1.b=t2.b AND t2.x>0 14276 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14277} { 14278 30 130 230 330 130 30 230 30 330 30 14279 60 160 260 360 160 60 260 60 360 60 14280 90 190 290 390 190 90 290 90 390 90 14281} 14282do_execsql_test joinD-496 { 14283 SELECT t1.*, t2.*, t3.*, t4.* 14284 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14285 RIGHT JOIN t3 ON t1.c=t3.c 14286 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14287 WHERE t3.y>0 14288 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14289} { 14290 15 115 215 315 - - 215 15 315 15 14291 30 130 230 330 130 30 230 30 330 30 14292 45 145 245 345 - - 245 45 345 45 14293 60 160 260 360 160 60 260 60 360 60 14294 75 175 275 375 - - 275 75 375 75 14295 90 190 290 390 190 90 290 90 390 90 14296} 14297do_execsql_test joinD-497 { 14298 SELECT t1.*, t2.*, t3.*, t4.* 14299 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14300 RIGHT JOIN t3 ON t1.c=t3.c 14301 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14302 WHERE t3.y>0 OR t3.y IS NULL 14303 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14304} { 14305 15 115 215 315 - - 215 15 315 15 14306 30 130 230 330 130 30 230 30 330 30 14307 45 145 245 345 - - 245 45 345 45 14308 60 160 260 360 160 60 260 60 360 60 14309 75 175 275 375 - - 275 75 375 75 14310 90 190 290 390 190 90 290 90 390 90 14311 - - - - - - - - 300 0 14312 - - - - - - - - 305 5 14313 - - - - - - - - 310 10 14314 - - - - - - - - 320 20 14315 - - - - - - - - 325 25 14316 - - - - - - - - 335 35 14317 - - - - - - - - 340 40 14318 - - - - - - - - 350 50 14319 - - - - - - - - 355 55 14320 - - - - - - - - 365 65 14321 - - - - - - - - 370 70 14322 - - - - - - - - 380 80 14323 - - - - - - - - 385 85 14324 - - - - - - - - 395 95 14325} 14326do_execsql_test joinD-498 { 14327 SELECT t1.*, t2.*, t3.*, t4.* 14328 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14329 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14330 RIGHT JOIN t4 ON t1.d=t4.d 14331 WHERE t4.z>0 14332 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14333} { 14334 15 115 215 315 - - 215 15 315 15 14335 30 130 230 330 130 30 230 30 330 30 14336 45 145 245 345 - - 245 45 345 45 14337 60 160 260 360 160 60 260 60 360 60 14338 75 175 275 375 - - 275 75 375 75 14339 90 190 290 390 190 90 290 90 390 90 14340 - - - - - - - - 305 5 14341 - - - - - - - - 310 10 14342 - - - - - - - - 320 20 14343 - - - - - - - - 325 25 14344 - - - - - - - - 335 35 14345 - - - - - - - - 340 40 14346 - - - - - - - - 350 50 14347 - - - - - - - - 355 55 14348 - - - - - - - - 365 65 14349 - - - - - - - - 370 70 14350 - - - - - - - - 380 80 14351 - - - - - - - - 385 85 14352 - - - - - - - - 395 95 14353} 14354do_execsql_test joinD-499 { 14355 SELECT t1.*, t2.*, t3.*, t4.* 14356 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14357 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14358 RIGHT JOIN t4 ON t1.d=t4.d 14359 WHERE t4.z IS NULL OR t4.z>0 14360 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14361} { 14362 15 115 215 315 - - 215 15 315 15 14363 30 130 230 330 130 30 230 30 330 30 14364 45 145 245 345 - - 245 45 345 45 14365 60 160 260 360 160 60 260 60 360 60 14366 75 175 275 375 - - 275 75 375 75 14367 90 190 290 390 190 90 290 90 390 90 14368 - - - - - - - - 305 5 14369 - - - - - - - - 310 10 14370 - - - - - - - - 320 20 14371 - - - - - - - - 325 25 14372 - - - - - - - - 335 35 14373 - - - - - - - - 340 40 14374 - - - - - - - - 350 50 14375 - - - - - - - - 355 55 14376 - - - - - - - - 365 65 14377 - - - - - - - - 370 70 14378 - - - - - - - - 380 80 14379 - - - - - - - - 385 85 14380 - - - - - - - - 395 95 14381} 14382do_execsql_test joinD-500 { 14383 SELECT t1.*, t2.*, t3.*, t4.* 14384 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 14385 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14386 RIGHT JOIN t4 ON t1.d=t4.d 14387 WHERE t2.x>0 AND t4.z>0 14388 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14389} { 14390 30 130 230 330 130 30 230 30 330 30 14391 60 160 260 360 160 60 260 60 360 60 14392 90 190 290 390 190 90 290 90 390 90 14393} 14394do_execsql_test joinD-501 { 14395 SELECT t1.*, t2.*, t3.*, t4.* 14396 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14397 RIGHT JOIN t3 ON t1.c=t3.c 14398 RIGHT JOIN t4 ON t1.d=t4.d 14399 WHERE t4.z>0 AND t3.y>0 14400 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14401} { 14402 15 115 215 315 - - 215 15 315 15 14403 30 130 230 330 130 30 230 30 330 30 14404 45 145 245 345 - - 245 45 345 45 14405 60 160 260 360 160 60 260 60 360 60 14406 75 175 275 375 - - 275 75 375 75 14407 90 190 290 390 190 90 290 90 390 90 14408} 14409do_execsql_test joinD-502 { 14410 SELECT t1.*, t2.*, t3.*, t4.* 14411 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 14412 RIGHT JOIN t3 ON t1.c=t3.c 14413 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14414 WHERE t2.x>0 AND t3.y>0 14415 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14416} { 14417 30 130 230 330 130 30 230 30 330 30 14418 60 160 260 360 160 60 260 60 360 60 14419 90 190 290 390 190 90 290 90 390 90 14420} 14421do_execsql_test joinD-503 { 14422 SELECT t1.*, t2.*, t3.*, t4.* 14423 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 14424 RIGHT JOIN t3 ON t1.c=t3.c 14425 RIGHT JOIN t4 ON t1.d=t4.d 14426 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 14427 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14428} { 14429 30 130 230 330 130 30 230 30 330 30 14430 60 160 260 360 160 60 260 60 360 60 14431 90 190 290 390 190 90 290 90 390 90 14432} 14433do_execsql_test joinD-504 { 14434 SELECT t1.*, t2.*, t3.*, t4.* 14435 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 14436 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 14437 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 14438 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14439} { 14440 15 115 215 315 - - 215 15 315 15 14441 30 130 230 330 130 30 230 30 330 30 14442 45 145 245 345 - - 245 45 345 45 14443 60 160 260 360 160 60 260 60 360 60 14444 75 175 275 375 - - 275 75 375 75 14445 90 190 290 390 190 90 290 90 390 90 14446 - - - - - - - - 300 0 14447 - - - - - - - - 305 5 14448 - - - - - - - - 310 10 14449 - - - - - - - - 320 20 14450 - - - - - - - - 325 25 14451 - - - - - - - - 335 35 14452 - - - - - - - - 340 40 14453 - - - - - - - - 350 50 14454 - - - - - - - - 355 55 14455 - - - - - - - - 365 65 14456 - - - - - - - - 370 70 14457 - - - - - - - - 380 80 14458 - - - - - - - - 385 85 14459 - - - - - - - - 395 95 14460} 14461do_execsql_test joinD-505 { 14462 SELECT t1.*, t2.*, t3.*, t4.* 14463 FROM t1 LEFT JOIN t2 ON t2.x>0 14464 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 14465 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 14466 WHERE t1.b IS NOT DISTINCT FROM t2.b 14467 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14468} { 14469 30 130 230 330 130 30 230 30 330 30 14470 60 160 260 360 160 60 260 60 360 60 14471 90 190 290 390 190 90 290 90 390 90 14472 - - - - - - - - 300 0 14473 - - - - - - - - 305 5 14474 - - - - - - - - 310 10 14475 - - - - - - - - 320 20 14476 - - - - - - - - 325 25 14477 - - - - - - - - 335 35 14478 - - - - - - - - 340 40 14479 - - - - - - - - 350 50 14480 - - - - - - - - 355 55 14481 - - - - - - - - 365 65 14482 - - - - - - - - 370 70 14483 - - - - - - - - 380 80 14484 - - - - - - - - 385 85 14485 - - - - - - - - 395 95 14486} 14487do_execsql_test joinD-506 { 14488 SELECT t1.*, t2.*, t3.*, t4.* 14489 FROM t1 LEFT JOIN t2 ON t2.x>0 14490 RIGHT JOIN t3 ON t3.y>0 14491 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 14492 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 14493 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14494} { 14495 30 130 230 330 130 30 230 30 330 30 14496 60 160 260 360 160 60 260 60 360 60 14497 90 190 290 390 190 90 290 90 390 90 14498 - - - - - - - - 300 0 14499} 14500do_execsql_test joinD-507 { 14501 SELECT t1.*, t2.*, t3.*, t4.* 14502 FROM t1 LEFT JOIN t2 ON t2.x>0 14503 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 14504 RIGHT JOIN t4 ON t4.z>0 14505 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 14506 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14507} { 14508 30 130 230 330 130 30 230 30 330 30 14509 60 160 260 360 160 60 260 60 360 60 14510 90 190 290 390 190 90 290 90 390 90 14511} 14512do_execsql_test joinD-508 { 14513 SELECT t1.*, t2.*, t3.*, t4.* 14514 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 14515 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14516 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14517 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14518} { 14519 15 115 215 315 - - 215 15 315 15 14520 30 130 230 330 130 30 230 30 330 30 14521 45 145 245 345 - - 245 45 345 45 14522 60 160 260 360 160 60 260 60 360 60 14523 75 175 275 375 - - 275 75 375 75 14524 90 190 290 390 190 90 290 90 390 90 14525 - - - - - - - - 300 0 14526 - - - - - - - - 305 5 14527 - - - - - - - - 310 10 14528 - - - - - - - - 320 20 14529 - - - - - - - - 325 25 14530 - - - - - - - - 335 35 14531 - - - - - - - - 340 40 14532 - - - - - - - - 350 50 14533 - - - - - - - - 355 55 14534 - - - - - - - - 365 65 14535 - - - - - - - - 370 70 14536 - - - - - - - - 380 80 14537 - - - - - - - - 385 85 14538 - - - - - - - - 395 95 14539} 14540do_execsql_test joinD-509 { 14541 SELECT t1.*, t2.*, t3.*, t4.* 14542 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14543 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 14544 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 14545 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14546} { 14547 15 115 215 315 - - 215 15 315 15 14548 30 130 230 330 130 30 230 30 330 30 14549 45 145 245 345 - - 245 45 345 45 14550 60 160 260 360 160 60 260 60 360 60 14551 75 175 275 375 - - 275 75 375 75 14552 90 190 290 390 190 90 290 90 390 90 14553 - - - - - - - - 300 0 14554 - - - - - - - - 305 5 14555 - - - - - - - - 310 10 14556 - - - - - - - - 320 20 14557 - - - - - - - - 325 25 14558 - - - - - - - - 335 35 14559 - - - - - - - - 340 40 14560 - - - - - - - - 350 50 14561 - - - - - - - - 355 55 14562 - - - - - - - - 365 65 14563 - - - - - - - - 370 70 14564 - - - - - - - - 380 80 14565 - - - - - - - - 385 85 14566 - - - - - - - - 395 95 14567} 14568do_execsql_test joinD-510 { 14569 SELECT t1.*, t2.*, t3.*, t4.* 14570 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14571 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14572 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 14573 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14574} { 14575 3 103 203 303 - - 203 3 - - 14576 6 106 206 306 106 6 206 6 - - 14577 9 109 209 309 - - 209 9 - - 14578 12 112 212 312 112 12 212 12 - - 14579 15 115 215 315 - - 215 15 315 15 14580 18 118 218 318 118 18 218 18 - - 14581 21 121 221 321 - - 221 21 - - 14582 24 124 224 324 124 24 224 24 - - 14583 27 127 227 327 - - 227 27 - - 14584 30 130 230 330 130 30 230 30 330 30 14585 33 133 233 333 - - 233 33 - - 14586 36 136 236 336 136 36 236 36 - - 14587 39 139 239 339 - - 239 39 - - 14588 42 142 242 342 142 42 242 42 - - 14589 45 145 245 345 - - 245 45 345 45 14590 48 148 248 348 148 48 248 48 - - 14591 51 151 251 351 - - 251 51 - - 14592 54 154 254 354 154 54 254 54 - - 14593 57 157 257 357 - - 257 57 - - 14594 60 160 260 360 160 60 260 60 360 60 14595 63 163 263 363 - - 263 63 - - 14596 66 166 266 366 166 66 266 66 - - 14597 69 169 269 369 - - 269 69 - - 14598 72 172 272 372 172 72 272 72 - - 14599 75 175 275 375 - - 275 75 375 75 14600 78 178 278 378 178 78 278 78 - - 14601 81 181 281 381 - - 281 81 - - 14602 84 184 284 384 184 84 284 84 - - 14603 87 187 287 387 - - 287 87 - - 14604 90 190 290 390 190 90 290 90 390 90 14605 93 193 293 393 - - 293 93 - - 14606 - - - - - - 200 0 - - 14607 - - - - - - - - 300 0 14608 - - - - - - - - 305 5 14609 - - - - - - - - 310 10 14610 - - - - - - - - 320 20 14611 - - - - - - - - 325 25 14612 - - - - - - - - 335 35 14613 - - - - - - - - 340 40 14614 - - - - - - - - 350 50 14615 - - - - - - - - 355 55 14616 - - - - - - - - 365 65 14617 - - - - - - - - 370 70 14618 - - - - - - - - 380 80 14619 - - - - - - - - 385 85 14620 - - - - - - - - 395 95 14621} 14622do_execsql_test joinD-511 { 14623 SELECT t1.*, t2.*, t3.*, t4.* 14624 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 14625 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14626 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 14627 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14628} { 14629 3 103 203 303 - - 203 3 - - 14630 6 106 206 306 106 6 206 6 - - 14631 9 109 209 309 - - 209 9 - - 14632 12 112 212 312 112 12 212 12 - - 14633 15 115 215 315 - - 215 15 315 15 14634 18 118 218 318 118 18 218 18 - - 14635 21 121 221 321 - - 221 21 - - 14636 24 124 224 324 124 24 224 24 - - 14637 27 127 227 327 - - 227 27 - - 14638 30 130 230 330 130 30 230 30 330 30 14639 33 133 233 333 - - 233 33 - - 14640 36 136 236 336 136 36 236 36 - - 14641 39 139 239 339 - - 239 39 - - 14642 42 142 242 342 142 42 242 42 - - 14643 45 145 245 345 - - 245 45 345 45 14644 48 148 248 348 148 48 248 48 - - 14645 51 151 251 351 - - 251 51 - - 14646 54 154 254 354 154 54 254 54 - - 14647 57 157 257 357 - - 257 57 - - 14648 60 160 260 360 160 60 260 60 360 60 14649 63 163 263 363 - - 263 63 - - 14650 66 166 266 366 166 66 266 66 - - 14651 69 169 269 369 - - 269 69 - - 14652 72 172 272 372 172 72 272 72 - - 14653 75 175 275 375 - - 275 75 375 75 14654 78 178 278 378 178 78 278 78 - - 14655 81 181 281 381 - - 281 81 - - 14656 84 184 284 384 184 84 284 84 - - 14657 87 187 287 387 - - 287 87 - - 14658 90 190 290 390 190 90 290 90 390 90 14659 93 193 293 393 - - 293 93 - - 14660 - - - - - - 200 0 - - 14661 - - - - - - - - 300 0 14662 - - - - - - - - 305 5 14663 - - - - - - - - 310 10 14664 - - - - - - - - 320 20 14665 - - - - - - - - 325 25 14666 - - - - - - - - 335 35 14667 - - - - - - - - 340 40 14668 - - - - - - - - 350 50 14669 - - - - - - - - 355 55 14670 - - - - - - - - 365 65 14671 - - - - - - - - 370 70 14672 - - - - - - - - 380 80 14673 - - - - - - - - 385 85 14674 - - - - - - - - 395 95 14675} 14676do_execsql_test joinD-512 { 14677 SELECT t1.*, t2.*, t3.*, t4.* 14678 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 14679 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14680 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 14681 WHERE t2.x>0 14682 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14683} { 14684 6 106 206 306 106 6 206 6 - - 14685 12 112 212 312 112 12 212 12 - - 14686 18 118 218 318 118 18 218 18 - - 14687 24 124 224 324 124 24 224 24 - - 14688 30 130 230 330 130 30 230 30 330 30 14689 36 136 236 336 136 36 236 36 - - 14690 42 142 242 342 142 42 242 42 - - 14691 48 148 248 348 148 48 248 48 - - 14692 54 154 254 354 154 54 254 54 - - 14693 60 160 260 360 160 60 260 60 360 60 14694 66 166 266 366 166 66 266 66 - - 14695 72 172 272 372 172 72 272 72 - - 14696 78 178 278 378 178 78 278 78 - - 14697 84 184 284 384 184 84 284 84 - - 14698 90 190 290 390 190 90 290 90 390 90 14699} 14700do_execsql_test joinD-513 { 14701 SELECT t1.*, t2.*, t3.*, t4.* 14702 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 14703 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14704 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 14705 WHERE (t2.x>0 OR t2.x IS NULL) 14706 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14707} { 14708 3 103 203 303 - - 203 3 - - 14709 6 106 206 306 106 6 206 6 - - 14710 9 109 209 309 - - 209 9 - - 14711 12 112 212 312 112 12 212 12 - - 14712 15 115 215 315 - - 215 15 315 15 14713 18 118 218 318 118 18 218 18 - - 14714 21 121 221 321 - - 221 21 - - 14715 24 124 224 324 124 24 224 24 - - 14716 27 127 227 327 - - 227 27 - - 14717 30 130 230 330 130 30 230 30 330 30 14718 33 133 233 333 - - 233 33 - - 14719 36 136 236 336 136 36 236 36 - - 14720 39 139 239 339 - - 239 39 - - 14721 42 142 242 342 142 42 242 42 - - 14722 45 145 245 345 - - 245 45 345 45 14723 48 148 248 348 148 48 248 48 - - 14724 51 151 251 351 - - 251 51 - - 14725 54 154 254 354 154 54 254 54 - - 14726 57 157 257 357 - - 257 57 - - 14727 60 160 260 360 160 60 260 60 360 60 14728 63 163 263 363 - - 263 63 - - 14729 66 166 266 366 166 66 266 66 - - 14730 69 169 269 369 - - 269 69 - - 14731 72 172 272 372 172 72 272 72 - - 14732 75 175 275 375 - - 275 75 375 75 14733 78 178 278 378 178 78 278 78 - - 14734 81 181 281 381 - - 281 81 - - 14735 84 184 284 384 184 84 284 84 - - 14736 87 187 287 387 - - 287 87 - - 14737 90 190 290 390 190 90 290 90 390 90 14738 93 193 293 393 - - 293 93 - - 14739 - - - - - - 200 0 - - 14740 - - - - - - - - 300 0 14741 - - - - - - - - 305 5 14742 - - - - - - - - 310 10 14743 - - - - - - - - 320 20 14744 - - - - - - - - 325 25 14745 - - - - - - - - 335 35 14746 - - - - - - - - 340 40 14747 - - - - - - - - 350 50 14748 - - - - - - - - 355 55 14749 - - - - - - - - 365 65 14750 - - - - - - - - 370 70 14751 - - - - - - - - 380 80 14752 - - - - - - - - 385 85 14753 - - - - - - - - 395 95 14754} 14755do_execsql_test joinD-514 { 14756 SELECT t1.*, t2.*, t3.*, t4.* 14757 FROM t1 LEFT JOIN t2 ON true 14758 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14759 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 14760 WHERE t1.b=t2.b AND t2.x>0 14761 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14762} { 14763 6 106 206 306 106 6 206 6 - - 14764 12 112 212 312 112 12 212 12 - - 14765 18 118 218 318 118 18 218 18 - - 14766 24 124 224 324 124 24 224 24 - - 14767 30 130 230 330 130 30 230 30 330 30 14768 36 136 236 336 136 36 236 36 - - 14769 42 142 242 342 142 42 242 42 - - 14770 48 148 248 348 148 48 248 48 - - 14771 54 154 254 354 154 54 254 54 - - 14772 60 160 260 360 160 60 260 60 360 60 14773 66 166 266 366 166 66 266 66 - - 14774 72 172 272 372 172 72 272 72 - - 14775 78 178 278 378 178 78 278 78 - - 14776 84 184 284 384 184 84 284 84 - - 14777 90 190 290 390 190 90 290 90 390 90 14778} 14779do_execsql_test joinD-515 { 14780 SELECT t1.*, t2.*, t3.*, t4.* 14781 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14782 RIGHT JOIN t3 ON t1.c=t3.c 14783 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 14784 WHERE t3.y>0 14785 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14786} { 14787 3 103 203 303 - - 203 3 - - 14788 6 106 206 306 106 6 206 6 - - 14789 9 109 209 309 - - 209 9 - - 14790 12 112 212 312 112 12 212 12 - - 14791 15 115 215 315 - - 215 15 315 15 14792 18 118 218 318 118 18 218 18 - - 14793 21 121 221 321 - - 221 21 - - 14794 24 124 224 324 124 24 224 24 - - 14795 27 127 227 327 - - 227 27 - - 14796 30 130 230 330 130 30 230 30 330 30 14797 33 133 233 333 - - 233 33 - - 14798 36 136 236 336 136 36 236 36 - - 14799 39 139 239 339 - - 239 39 - - 14800 42 142 242 342 142 42 242 42 - - 14801 45 145 245 345 - - 245 45 345 45 14802 48 148 248 348 148 48 248 48 - - 14803 51 151 251 351 - - 251 51 - - 14804 54 154 254 354 154 54 254 54 - - 14805 57 157 257 357 - - 257 57 - - 14806 60 160 260 360 160 60 260 60 360 60 14807 63 163 263 363 - - 263 63 - - 14808 66 166 266 366 166 66 266 66 - - 14809 69 169 269 369 - - 269 69 - - 14810 72 172 272 372 172 72 272 72 - - 14811 75 175 275 375 - - 275 75 375 75 14812 78 178 278 378 178 78 278 78 - - 14813 81 181 281 381 - - 281 81 - - 14814 84 184 284 384 184 84 284 84 - - 14815 87 187 287 387 - - 287 87 - - 14816 90 190 290 390 190 90 290 90 390 90 14817 93 193 293 393 - - 293 93 - - 14818} 14819do_execsql_test joinD-516 { 14820 SELECT t1.*, t2.*, t3.*, t4.* 14821 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14822 RIGHT JOIN t3 ON t1.c=t3.c 14823 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 14824 WHERE t3.y>0 OR t3.y IS NULL 14825 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14826} { 14827 3 103 203 303 - - 203 3 - - 14828 6 106 206 306 106 6 206 6 - - 14829 9 109 209 309 - - 209 9 - - 14830 12 112 212 312 112 12 212 12 - - 14831 15 115 215 315 - - 215 15 315 15 14832 18 118 218 318 118 18 218 18 - - 14833 21 121 221 321 - - 221 21 - - 14834 24 124 224 324 124 24 224 24 - - 14835 27 127 227 327 - - 227 27 - - 14836 30 130 230 330 130 30 230 30 330 30 14837 33 133 233 333 - - 233 33 - - 14838 36 136 236 336 136 36 236 36 - - 14839 39 139 239 339 - - 239 39 - - 14840 42 142 242 342 142 42 242 42 - - 14841 45 145 245 345 - - 245 45 345 45 14842 48 148 248 348 148 48 248 48 - - 14843 51 151 251 351 - - 251 51 - - 14844 54 154 254 354 154 54 254 54 - - 14845 57 157 257 357 - - 257 57 - - 14846 60 160 260 360 160 60 260 60 360 60 14847 63 163 263 363 - - 263 63 - - 14848 66 166 266 366 166 66 266 66 - - 14849 69 169 269 369 - - 269 69 - - 14850 72 172 272 372 172 72 272 72 - - 14851 75 175 275 375 - - 275 75 375 75 14852 78 178 278 378 178 78 278 78 - - 14853 81 181 281 381 - - 281 81 - - 14854 84 184 284 384 184 84 284 84 - - 14855 87 187 287 387 - - 287 87 - - 14856 90 190 290 390 190 90 290 90 390 90 14857 93 193 293 393 - - 293 93 - - 14858 - - - - - - - - 300 0 14859 - - - - - - - - 305 5 14860 - - - - - - - - 310 10 14861 - - - - - - - - 320 20 14862 - - - - - - - - 325 25 14863 - - - - - - - - 335 35 14864 - - - - - - - - 340 40 14865 - - - - - - - - 350 50 14866 - - - - - - - - 355 55 14867 - - - - - - - - 365 65 14868 - - - - - - - - 370 70 14869 - - - - - - - - 380 80 14870 - - - - - - - - 385 85 14871 - - - - - - - - 395 95 14872} 14873do_execsql_test joinD-517 { 14874 SELECT t1.*, t2.*, t3.*, t4.* 14875 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14876 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14877 FULL JOIN t4 ON t1.d=t4.d 14878 WHERE t4.z>0 14879 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14880} { 14881 15 115 215 315 - - 215 15 315 15 14882 30 130 230 330 130 30 230 30 330 30 14883 45 145 245 345 - - 245 45 345 45 14884 60 160 260 360 160 60 260 60 360 60 14885 75 175 275 375 - - 275 75 375 75 14886 90 190 290 390 190 90 290 90 390 90 14887 - - - - - - - - 305 5 14888 - - - - - - - - 310 10 14889 - - - - - - - - 320 20 14890 - - - - - - - - 325 25 14891 - - - - - - - - 335 35 14892 - - - - - - - - 340 40 14893 - - - - - - - - 350 50 14894 - - - - - - - - 355 55 14895 - - - - - - - - 365 65 14896 - - - - - - - - 370 70 14897 - - - - - - - - 380 80 14898 - - - - - - - - 385 85 14899 - - - - - - - - 395 95 14900} 14901do_execsql_test joinD-518 { 14902 SELECT t1.*, t2.*, t3.*, t4.* 14903 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14904 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14905 FULL JOIN t4 ON t1.d=t4.d 14906 WHERE t4.z IS NULL OR t4.z>0 14907 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14908} { 14909 3 103 203 303 - - 203 3 - - 14910 6 106 206 306 106 6 206 6 - - 14911 9 109 209 309 - - 209 9 - - 14912 12 112 212 312 112 12 212 12 - - 14913 15 115 215 315 - - 215 15 315 15 14914 18 118 218 318 118 18 218 18 - - 14915 21 121 221 321 - - 221 21 - - 14916 24 124 224 324 124 24 224 24 - - 14917 27 127 227 327 - - 227 27 - - 14918 30 130 230 330 130 30 230 30 330 30 14919 33 133 233 333 - - 233 33 - - 14920 36 136 236 336 136 36 236 36 - - 14921 39 139 239 339 - - 239 39 - - 14922 42 142 242 342 142 42 242 42 - - 14923 45 145 245 345 - - 245 45 345 45 14924 48 148 248 348 148 48 248 48 - - 14925 51 151 251 351 - - 251 51 - - 14926 54 154 254 354 154 54 254 54 - - 14927 57 157 257 357 - - 257 57 - - 14928 60 160 260 360 160 60 260 60 360 60 14929 63 163 263 363 - - 263 63 - - 14930 66 166 266 366 166 66 266 66 - - 14931 69 169 269 369 - - 269 69 - - 14932 72 172 272 372 172 72 272 72 - - 14933 75 175 275 375 - - 275 75 375 75 14934 78 178 278 378 178 78 278 78 - - 14935 81 181 281 381 - - 281 81 - - 14936 84 184 284 384 184 84 284 84 - - 14937 87 187 287 387 - - 287 87 - - 14938 90 190 290 390 190 90 290 90 390 90 14939 93 193 293 393 - - 293 93 - - 14940 - - - - - - 200 0 - - 14941 - - - - - - - - 305 5 14942 - - - - - - - - 310 10 14943 - - - - - - - - 320 20 14944 - - - - - - - - 325 25 14945 - - - - - - - - 335 35 14946 - - - - - - - - 340 40 14947 - - - - - - - - 350 50 14948 - - - - - - - - 355 55 14949 - - - - - - - - 365 65 14950 - - - - - - - - 370 70 14951 - - - - - - - - 380 80 14952 - - - - - - - - 385 85 14953 - - - - - - - - 395 95 14954} 14955do_execsql_test joinD-519 { 14956 SELECT t1.*, t2.*, t3.*, t4.* 14957 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 14958 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 14959 FULL JOIN t4 ON t1.d=t4.d 14960 WHERE t2.x>0 AND t4.z>0 14961 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14962} { 14963 30 130 230 330 130 30 230 30 330 30 14964 60 160 260 360 160 60 260 60 360 60 14965 90 190 290 390 190 90 290 90 390 90 14966} 14967do_execsql_test joinD-520 { 14968 SELECT t1.*, t2.*, t3.*, t4.* 14969 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 14970 RIGHT JOIN t3 ON t1.c=t3.c 14971 FULL JOIN t4 ON t1.d=t4.d 14972 WHERE t4.z>0 AND t3.y>0 14973 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14974} { 14975 15 115 215 315 - - 215 15 315 15 14976 30 130 230 330 130 30 230 30 330 30 14977 45 145 245 345 - - 245 45 345 45 14978 60 160 260 360 160 60 260 60 360 60 14979 75 175 275 375 - - 275 75 375 75 14980 90 190 290 390 190 90 290 90 390 90 14981} 14982do_execsql_test joinD-521 { 14983 SELECT t1.*, t2.*, t3.*, t4.* 14984 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 14985 RIGHT JOIN t3 ON t1.c=t3.c 14986 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 14987 WHERE t2.x>0 AND t3.y>0 14988 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 14989} { 14990 6 106 206 306 106 6 206 6 - - 14991 12 112 212 312 112 12 212 12 - - 14992 18 118 218 318 118 18 218 18 - - 14993 24 124 224 324 124 24 224 24 - - 14994 30 130 230 330 130 30 230 30 330 30 14995 36 136 236 336 136 36 236 36 - - 14996 42 142 242 342 142 42 242 42 - - 14997 48 148 248 348 148 48 248 48 - - 14998 54 154 254 354 154 54 254 54 - - 14999 60 160 260 360 160 60 260 60 360 60 15000 66 166 266 366 166 66 266 66 - - 15001 72 172 272 372 172 72 272 72 - - 15002 78 178 278 378 178 78 278 78 - - 15003 84 184 284 384 184 84 284 84 - - 15004 90 190 290 390 190 90 290 90 390 90 15005} 15006do_execsql_test joinD-522 { 15007 SELECT t1.*, t2.*, t3.*, t4.* 15008 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 15009 RIGHT JOIN t3 ON t1.c=t3.c 15010 FULL JOIN t4 ON t1.d=t4.d 15011 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 15012 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15013} { 15014 30 130 230 330 130 30 230 30 330 30 15015 60 160 260 360 160 60 260 60 360 60 15016 90 190 290 390 190 90 290 90 390 90 15017} 15018do_execsql_test joinD-523 { 15019 SELECT t1.*, t2.*, t3.*, t4.* 15020 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 15021 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 15022 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 15023 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15024} { 15025 3 103 203 303 - - 203 3 - - 15026 6 106 206 306 106 6 206 6 - - 15027 9 109 209 309 - - 209 9 - - 15028 12 112 212 312 112 12 212 12 - - 15029 15 115 215 315 - - 215 15 315 15 15030 18 118 218 318 118 18 218 18 - - 15031 21 121 221 321 - - 221 21 - - 15032 24 124 224 324 124 24 224 24 - - 15033 27 127 227 327 - - 227 27 - - 15034 30 130 230 330 130 30 230 30 330 30 15035 33 133 233 333 - - 233 33 - - 15036 36 136 236 336 136 36 236 36 - - 15037 39 139 239 339 - - 239 39 - - 15038 42 142 242 342 142 42 242 42 - - 15039 45 145 245 345 - - 245 45 345 45 15040 48 148 248 348 148 48 248 48 - - 15041 51 151 251 351 - - 251 51 - - 15042 54 154 254 354 154 54 254 54 - - 15043 57 157 257 357 - - 257 57 - - 15044 60 160 260 360 160 60 260 60 360 60 15045 63 163 263 363 - - 263 63 - - 15046 66 166 266 366 166 66 266 66 - - 15047 69 169 269 369 - - 269 69 - - 15048 72 172 272 372 172 72 272 72 - - 15049 75 175 275 375 - - 275 75 375 75 15050 78 178 278 378 178 78 278 78 - - 15051 81 181 281 381 - - 281 81 - - 15052 84 184 284 384 184 84 284 84 - - 15053 87 187 287 387 - - 287 87 - - 15054 90 190 290 390 190 90 290 90 390 90 15055 93 193 293 393 - - 293 93 - - 15056 - - - - - - 200 0 - - 15057 - - - - - - - - 300 0 15058 - - - - - - - - 305 5 15059 - - - - - - - - 310 10 15060 - - - - - - - - 320 20 15061 - - - - - - - - 325 25 15062 - - - - - - - - 335 35 15063 - - - - - - - - 340 40 15064 - - - - - - - - 350 50 15065 - - - - - - - - 355 55 15066 - - - - - - - - 365 65 15067 - - - - - - - - 370 70 15068 - - - - - - - - 380 80 15069 - - - - - - - - 385 85 15070 - - - - - - - - 395 95 15071} 15072do_execsql_test joinD-524 { 15073 SELECT t1.*, t2.*, t3.*, t4.* 15074 FROM t1 LEFT JOIN t2 ON t2.x>0 15075 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 15076 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 15077 WHERE t1.b IS NOT DISTINCT FROM t2.b 15078 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15079} { 15080 6 106 206 306 106 6 206 6 - - 15081 12 112 212 312 112 12 212 12 - - 15082 18 118 218 318 118 18 218 18 - - 15083 24 124 224 324 124 24 224 24 - - 15084 30 130 230 330 130 30 230 30 330 30 15085 36 136 236 336 136 36 236 36 - - 15086 42 142 242 342 142 42 242 42 - - 15087 48 148 248 348 148 48 248 48 - - 15088 54 154 254 354 154 54 254 54 - - 15089 60 160 260 360 160 60 260 60 360 60 15090 66 166 266 366 166 66 266 66 - - 15091 72 172 272 372 172 72 272 72 - - 15092 78 178 278 378 178 78 278 78 - - 15093 84 184 284 384 184 84 284 84 - - 15094 90 190 290 390 190 90 290 90 390 90 15095 - - - - - - 200 0 - - 15096 - - - - - - - - 300 0 15097 - - - - - - - - 305 5 15098 - - - - - - - - 310 10 15099 - - - - - - - - 320 20 15100 - - - - - - - - 325 25 15101 - - - - - - - - 335 35 15102 - - - - - - - - 340 40 15103 - - - - - - - - 350 50 15104 - - - - - - - - 355 55 15105 - - - - - - - - 365 65 15106 - - - - - - - - 370 70 15107 - - - - - - - - 380 80 15108 - - - - - - - - 385 85 15109 - - - - - - - - 395 95 15110} 15111do_execsql_test joinD-525 { 15112 SELECT t1.*, t2.*, t3.*, t4.* 15113 FROM t1 LEFT JOIN t2 ON t2.x>0 15114 RIGHT JOIN t3 ON t3.y>0 15115 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 15116 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 15117 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15118} { 15119 6 106 206 306 106 6 206 6 - - 15120 12 112 212 312 112 12 212 12 - - 15121 18 118 218 318 118 18 218 18 - - 15122 24 124 224 324 124 24 224 24 - - 15123 30 130 230 330 130 30 230 30 330 30 15124 36 136 236 336 136 36 236 36 - - 15125 42 142 242 342 142 42 242 42 - - 15126 48 148 248 348 148 48 248 48 - - 15127 54 154 254 354 154 54 254 54 - - 15128 60 160 260 360 160 60 260 60 360 60 15129 66 166 266 366 166 66 266 66 - - 15130 72 172 272 372 172 72 272 72 - - 15131 78 178 278 378 178 78 278 78 - - 15132 84 184 284 384 184 84 284 84 - - 15133 90 190 290 390 190 90 290 90 390 90 15134 - - - - - - - - 300 0 15135} 15136do_execsql_test joinD-526 { 15137 SELECT t1.*, t2.*, t3.*, t4.* 15138 FROM t1 LEFT JOIN t2 ON t2.x>0 15139 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 15140 FULL JOIN t4 ON t4.z>0 15141 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 15142 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15143} { 15144 30 130 230 330 130 30 230 30 330 30 15145 60 160 260 360 160 60 260 60 360 60 15146 90 190 290 390 190 90 290 90 390 90 15147} 15148do_execsql_test joinD-527 { 15149 SELECT t1.*, t2.*, t3.*, t4.* 15150 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 15151 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 15152 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 15153 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15154} { 15155 3 103 203 303 - - 203 3 - - 15156 6 106 206 306 106 6 206 6 - - 15157 9 109 209 309 - - 209 9 - - 15158 12 112 212 312 112 12 212 12 - - 15159 15 115 215 315 - - 215 15 315 15 15160 18 118 218 318 118 18 218 18 - - 15161 21 121 221 321 - - 221 21 - - 15162 24 124 224 324 124 24 224 24 - - 15163 27 127 227 327 - - 227 27 - - 15164 30 130 230 330 130 30 230 30 330 30 15165 33 133 233 333 - - 233 33 - - 15166 36 136 236 336 136 36 236 36 - - 15167 39 139 239 339 - - 239 39 - - 15168 42 142 242 342 142 42 242 42 - - 15169 45 145 245 345 - - 245 45 345 45 15170 48 148 248 348 148 48 248 48 - - 15171 51 151 251 351 - - 251 51 - - 15172 54 154 254 354 154 54 254 54 - - 15173 57 157 257 357 - - 257 57 - - 15174 60 160 260 360 160 60 260 60 360 60 15175 63 163 263 363 - - 263 63 - - 15176 66 166 266 366 166 66 266 66 - - 15177 69 169 269 369 - - 269 69 - - 15178 72 172 272 372 172 72 272 72 - - 15179 75 175 275 375 - - 275 75 375 75 15180 78 178 278 378 178 78 278 78 - - 15181 81 181 281 381 - - 281 81 - - 15182 84 184 284 384 184 84 284 84 - - 15183 87 187 287 387 - - 287 87 - - 15184 90 190 290 390 190 90 290 90 390 90 15185 93 193 293 393 - - 293 93 - - 15186 - - - - - - 200 0 - - 15187 - - - - - - - - 300 0 15188 - - - - - - - - 305 5 15189 - - - - - - - - 310 10 15190 - - - - - - - - 320 20 15191 - - - - - - - - 325 25 15192 - - - - - - - - 335 35 15193 - - - - - - - - 340 40 15194 - - - - - - - - 350 50 15195 - - - - - - - - 355 55 15196 - - - - - - - - 365 65 15197 - - - - - - - - 370 70 15198 - - - - - - - - 380 80 15199 - - - - - - - - 385 85 15200 - - - - - - - - 395 95 15201} 15202do_execsql_test joinD-528 { 15203 SELECT t1.*, t2.*, t3.*, t4.* 15204 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 15205 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 15206 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 15207 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15208} { 15209 3 103 203 303 - - 203 3 - - 15210 6 106 206 306 106 6 206 6 - - 15211 9 109 209 309 - - 209 9 - - 15212 12 112 212 312 112 12 212 12 - - 15213 15 115 215 315 - - 215 15 315 15 15214 18 118 218 318 118 18 218 18 - - 15215 21 121 221 321 - - 221 21 - - 15216 24 124 224 324 124 24 224 24 - - 15217 27 127 227 327 - - 227 27 - - 15218 30 130 230 330 130 30 230 30 330 30 15219 33 133 233 333 - - 233 33 - - 15220 36 136 236 336 136 36 236 36 - - 15221 39 139 239 339 - - 239 39 - - 15222 42 142 242 342 142 42 242 42 - - 15223 45 145 245 345 - - 245 45 345 45 15224 48 148 248 348 148 48 248 48 - - 15225 51 151 251 351 - - 251 51 - - 15226 54 154 254 354 154 54 254 54 - - 15227 57 157 257 357 - - 257 57 - - 15228 60 160 260 360 160 60 260 60 360 60 15229 63 163 263 363 - - 263 63 - - 15230 66 166 266 366 166 66 266 66 - - 15231 69 169 269 369 - - 269 69 - - 15232 72 172 272 372 172 72 272 72 - - 15233 75 175 275 375 - - 275 75 375 75 15234 78 178 278 378 178 78 278 78 - - 15235 81 181 281 381 - - 281 81 - - 15236 84 184 284 384 184 84 284 84 - - 15237 87 187 287 387 - - 287 87 - - 15238 90 190 290 390 190 90 290 90 390 90 15239 93 193 293 393 - - 293 93 - - 15240 - - - - - - 200 0 - - 15241 - - - - - - - - 300 0 15242 - - - - - - - - 305 5 15243 - - - - - - - - 310 10 15244 - - - - - - - - 320 20 15245 - - - - - - - - 325 25 15246 - - - - - - - - 335 35 15247 - - - - - - - - 340 40 15248 - - - - - - - - 350 50 15249 - - - - - - - - 355 55 15250 - - - - - - - - 365 65 15251 - - - - - - - - 370 70 15252 - - - - - - - - 380 80 15253 - - - - - - - - 385 85 15254 - - - - - - - - 395 95 15255} 15256do_execsql_test joinD-529 { 15257 SELECT t1.*, t2.*, t3.*, t4.* 15258 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 15259 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15260 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 15261 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15262} { 15263 5 105 205 305 - - - - 305 5 15264 10 110 210 310 110 10 - - 310 10 15265 15 115 215 315 - - 215 15 315 15 15266 20 120 220 320 120 20 - - 320 20 15267 25 125 225 325 - - - - 325 25 15268 30 130 230 330 130 30 230 30 330 30 15269 35 135 235 335 - - - - 335 35 15270 40 140 240 340 140 40 - - 340 40 15271 45 145 245 345 - - 245 45 345 45 15272 50 150 250 350 150 50 - - 350 50 15273 55 155 255 355 - - - - 355 55 15274 60 160 260 360 160 60 260 60 360 60 15275 65 165 265 365 - - - - 365 65 15276 70 170 270 370 170 70 - - 370 70 15277 75 175 275 375 - - 275 75 375 75 15278 80 180 280 380 180 80 - - 380 80 15279 85 185 285 385 - - - - 385 85 15280 90 190 290 390 190 90 290 90 390 90 15281 95 195 295 395 - - - - 395 95 15282} 15283do_execsql_test joinD-530 { 15284 SELECT t1.*, t2.*, t3.*, t4.* 15285 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 15286 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15287 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 15288 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15289} { 15290 5 105 205 305 - - - - 305 5 15291 10 110 210 310 110 10 - - 310 10 15292 15 115 215 315 - - 215 15 315 15 15293 20 120 220 320 120 20 - - 320 20 15294 25 125 225 325 - - - - 325 25 15295 30 130 230 330 130 30 230 30 330 30 15296 35 135 235 335 - - - - 335 35 15297 40 140 240 340 140 40 - - 340 40 15298 45 145 245 345 - - 245 45 345 45 15299 50 150 250 350 150 50 - - 350 50 15300 55 155 255 355 - - - - 355 55 15301 60 160 260 360 160 60 260 60 360 60 15302 65 165 265 365 - - - - 365 65 15303 70 170 270 370 170 70 - - 370 70 15304 75 175 275 375 - - 275 75 375 75 15305 80 180 280 380 180 80 - - 380 80 15306 85 185 285 385 - - - - 385 85 15307 90 190 290 390 190 90 290 90 390 90 15308 95 195 295 395 - - - - 395 95 15309} 15310do_execsql_test joinD-531 { 15311 SELECT t1.*, t2.*, t3.*, t4.* 15312 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 15313 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15314 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 15315 WHERE t2.x>0 15316 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15317} { 15318 10 110 210 310 110 10 - - 310 10 15319 20 120 220 320 120 20 - - 320 20 15320 30 130 230 330 130 30 230 30 330 30 15321 40 140 240 340 140 40 - - 340 40 15322 50 150 250 350 150 50 - - 350 50 15323 60 160 260 360 160 60 260 60 360 60 15324 70 170 270 370 170 70 - - 370 70 15325 80 180 280 380 180 80 - - 380 80 15326 90 190 290 390 190 90 290 90 390 90 15327} 15328do_execsql_test joinD-532 { 15329 SELECT t1.*, t2.*, t3.*, t4.* 15330 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 15331 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15332 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 15333 WHERE (t2.x>0 OR t2.x IS NULL) 15334 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15335} { 15336 5 105 205 305 - - - - 305 5 15337 10 110 210 310 110 10 - - 310 10 15338 15 115 215 315 - - 215 15 315 15 15339 20 120 220 320 120 20 - - 320 20 15340 25 125 225 325 - - - - 325 25 15341 30 130 230 330 130 30 230 30 330 30 15342 35 135 235 335 - - - - 335 35 15343 40 140 240 340 140 40 - - 340 40 15344 45 145 245 345 - - 245 45 345 45 15345 50 150 250 350 150 50 - - 350 50 15346 55 155 255 355 - - - - 355 55 15347 60 160 260 360 160 60 260 60 360 60 15348 65 165 265 365 - - - - 365 65 15349 70 170 270 370 170 70 - - 370 70 15350 75 175 275 375 - - 275 75 375 75 15351 80 180 280 380 180 80 - - 380 80 15352 85 185 285 385 - - - - 385 85 15353 90 190 290 390 190 90 290 90 390 90 15354 95 195 295 395 - - - - 395 95 15355} 15356do_execsql_test joinD-533 { 15357 SELECT t1.*, t2.*, t3.*, t4.* 15358 FROM t1 LEFT JOIN t2 ON true 15359 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15360 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 15361 WHERE t1.b=t2.b AND t2.x>0 15362 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15363} { 15364 10 110 210 310 110 10 - - 310 10 15365 20 120 220 320 120 20 - - 320 20 15366 30 130 230 330 130 30 230 30 330 30 15367 40 140 240 340 140 40 - - 340 40 15368 50 150 250 350 150 50 - - 350 50 15369 60 160 260 360 160 60 260 60 360 60 15370 70 170 270 370 170 70 - - 370 70 15371 80 180 280 380 180 80 - - 380 80 15372 90 190 290 390 190 90 290 90 390 90 15373} 15374do_execsql_test joinD-534 { 15375 SELECT t1.*, t2.*, t3.*, t4.* 15376 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 15377 FULL JOIN t3 ON t1.c=t3.c 15378 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 15379 WHERE t3.y>0 15380 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15381} { 15382 15 115 215 315 - - 215 15 315 15 15383 30 130 230 330 130 30 230 30 330 30 15384 45 145 245 345 - - 245 45 345 45 15385 60 160 260 360 160 60 260 60 360 60 15386 75 175 275 375 - - 275 75 375 75 15387 90 190 290 390 190 90 290 90 390 90 15388} 15389do_execsql_test joinD-535 { 15390 SELECT t1.*, t2.*, t3.*, t4.* 15391 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 15392 FULL JOIN t3 ON t1.c=t3.c 15393 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 15394 WHERE t3.y>0 OR t3.y IS NULL 15395 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15396} { 15397 5 105 205 305 - - - - 305 5 15398 10 110 210 310 110 10 - - 310 10 15399 15 115 215 315 - - 215 15 315 15 15400 20 120 220 320 120 20 - - 320 20 15401 25 125 225 325 - - - - 325 25 15402 30 130 230 330 130 30 230 30 330 30 15403 35 135 235 335 - - - - 335 35 15404 40 140 240 340 140 40 - - 340 40 15405 45 145 245 345 - - 245 45 345 45 15406 50 150 250 350 150 50 - - 350 50 15407 55 155 255 355 - - - - 355 55 15408 60 160 260 360 160 60 260 60 360 60 15409 65 165 265 365 - - - - 365 65 15410 70 170 270 370 170 70 - - 370 70 15411 75 175 275 375 - - 275 75 375 75 15412 80 180 280 380 180 80 - - 380 80 15413 85 185 285 385 - - - - 385 85 15414 90 190 290 390 190 90 290 90 390 90 15415 95 195 295 395 - - - - 395 95 15416} 15417do_execsql_test joinD-536 { 15418 SELECT t1.*, t2.*, t3.*, t4.* 15419 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 15420 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15421 INNER JOIN t4 ON t1.d=t4.d 15422 WHERE t4.z>0 15423 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15424} { 15425 5 105 205 305 - - - - 305 5 15426 10 110 210 310 110 10 - - 310 10 15427 15 115 215 315 - - 215 15 315 15 15428 20 120 220 320 120 20 - - 320 20 15429 25 125 225 325 - - - - 325 25 15430 30 130 230 330 130 30 230 30 330 30 15431 35 135 235 335 - - - - 335 35 15432 40 140 240 340 140 40 - - 340 40 15433 45 145 245 345 - - 245 45 345 45 15434 50 150 250 350 150 50 - - 350 50 15435 55 155 255 355 - - - - 355 55 15436 60 160 260 360 160 60 260 60 360 60 15437 65 165 265 365 - - - - 365 65 15438 70 170 270 370 170 70 - - 370 70 15439 75 175 275 375 - - 275 75 375 75 15440 80 180 280 380 180 80 - - 380 80 15441 85 185 285 385 - - - - 385 85 15442 90 190 290 390 190 90 290 90 390 90 15443 95 195 295 395 - - - - 395 95 15444} 15445do_execsql_test joinD-537 { 15446 SELECT t1.*, t2.*, t3.*, t4.* 15447 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 15448 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15449 INNER JOIN t4 ON t1.d=t4.d 15450 WHERE t4.z IS NULL OR t4.z>0 15451 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15452} { 15453 5 105 205 305 - - - - 305 5 15454 10 110 210 310 110 10 - - 310 10 15455 15 115 215 315 - - 215 15 315 15 15456 20 120 220 320 120 20 - - 320 20 15457 25 125 225 325 - - - - 325 25 15458 30 130 230 330 130 30 230 30 330 30 15459 35 135 235 335 - - - - 335 35 15460 40 140 240 340 140 40 - - 340 40 15461 45 145 245 345 - - 245 45 345 45 15462 50 150 250 350 150 50 - - 350 50 15463 55 155 255 355 - - - - 355 55 15464 60 160 260 360 160 60 260 60 360 60 15465 65 165 265 365 - - - - 365 65 15466 70 170 270 370 170 70 - - 370 70 15467 75 175 275 375 - - 275 75 375 75 15468 80 180 280 380 180 80 - - 380 80 15469 85 185 285 385 - - - - 385 85 15470 90 190 290 390 190 90 290 90 390 90 15471 95 195 295 395 - - - - 395 95 15472} 15473do_execsql_test joinD-538 { 15474 SELECT t1.*, t2.*, t3.*, t4.* 15475 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 15476 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15477 INNER JOIN t4 ON t1.d=t4.d 15478 WHERE t2.x>0 AND t4.z>0 15479 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15480} { 15481 10 110 210 310 110 10 - - 310 10 15482 20 120 220 320 120 20 - - 320 20 15483 30 130 230 330 130 30 230 30 330 30 15484 40 140 240 340 140 40 - - 340 40 15485 50 150 250 350 150 50 - - 350 50 15486 60 160 260 360 160 60 260 60 360 60 15487 70 170 270 370 170 70 - - 370 70 15488 80 180 280 380 180 80 - - 380 80 15489 90 190 290 390 190 90 290 90 390 90 15490} 15491do_execsql_test joinD-539 { 15492 SELECT t1.*, t2.*, t3.*, t4.* 15493 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 15494 FULL JOIN t3 ON t1.c=t3.c 15495 INNER JOIN t4 ON t1.d=t4.d 15496 WHERE t4.z>0 AND t3.y>0 15497 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15498} { 15499 15 115 215 315 - - 215 15 315 15 15500 30 130 230 330 130 30 230 30 330 30 15501 45 145 245 345 - - 245 45 345 45 15502 60 160 260 360 160 60 260 60 360 60 15503 75 175 275 375 - - 275 75 375 75 15504 90 190 290 390 190 90 290 90 390 90 15505} 15506do_execsql_test joinD-540 { 15507 SELECT t1.*, t2.*, t3.*, t4.* 15508 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 15509 FULL JOIN t3 ON t1.c=t3.c 15510 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 15511 WHERE t2.x>0 AND t3.y>0 15512 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15513} { 15514 30 130 230 330 130 30 230 30 330 30 15515 60 160 260 360 160 60 260 60 360 60 15516 90 190 290 390 190 90 290 90 390 90 15517} 15518do_execsql_test joinD-541 { 15519 SELECT t1.*, t2.*, t3.*, t4.* 15520 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 15521 FULL JOIN t3 ON t1.c=t3.c 15522 INNER JOIN t4 ON t1.d=t4.d 15523 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 15524 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15525} { 15526 30 130 230 330 130 30 230 30 330 30 15527 60 160 260 360 160 60 260 60 360 60 15528 90 190 290 390 190 90 290 90 390 90 15529} 15530do_execsql_test joinD-542 { 15531 SELECT t1.*, t2.*, t3.*, t4.* 15532 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 15533 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 15534 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 15535 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15536} { 15537 5 105 205 305 - - - - 305 5 15538 10 110 210 310 110 10 - - 310 10 15539 15 115 215 315 - - 215 15 315 15 15540 20 120 220 320 120 20 - - 320 20 15541 25 125 225 325 - - - - 325 25 15542 30 130 230 330 130 30 230 30 330 30 15543 35 135 235 335 - - - - 335 35 15544 40 140 240 340 140 40 - - 340 40 15545 45 145 245 345 - - 245 45 345 45 15546 50 150 250 350 150 50 - - 350 50 15547 55 155 255 355 - - - - 355 55 15548 60 160 260 360 160 60 260 60 360 60 15549 65 165 265 365 - - - - 365 65 15550 70 170 270 370 170 70 - - 370 70 15551 75 175 275 375 - - 275 75 375 75 15552 80 180 280 380 180 80 - - 380 80 15553 85 185 285 385 - - - - 385 85 15554 90 190 290 390 190 90 290 90 390 90 15555 95 195 295 395 - - - - 395 95 15556} 15557do_execsql_test joinD-543 { 15558 SELECT t1.*, t2.*, t3.*, t4.* 15559 FROM t1 LEFT JOIN t2 ON t2.x>0 15560 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 15561 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 15562 WHERE t1.b IS NOT DISTINCT FROM t2.b 15563 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15564} { 15565 10 110 210 310 110 10 - - 310 10 15566 20 120 220 320 120 20 - - 320 20 15567 30 130 230 330 130 30 230 30 330 30 15568 40 140 240 340 140 40 - - 340 40 15569 50 150 250 350 150 50 - - 350 50 15570 60 160 260 360 160 60 260 60 360 60 15571 70 170 270 370 170 70 - - 370 70 15572 80 180 280 380 180 80 - - 380 80 15573 90 190 290 390 190 90 290 90 390 90 15574} 15575do_execsql_test joinD-544 { 15576 SELECT t1.*, t2.*, t3.*, t4.* 15577 FROM t1 LEFT JOIN t2 ON t2.x>0 15578 FULL JOIN t3 ON t3.y>0 15579 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 15580 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 15581 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15582} { 15583 30 130 230 330 130 30 230 30 330 30 15584 60 160 260 360 160 60 260 60 360 60 15585 90 190 290 390 190 90 290 90 390 90 15586} 15587do_execsql_test joinD-545 { 15588 SELECT t1.*, t2.*, t3.*, t4.* 15589 FROM t1 LEFT JOIN t2 ON t2.x>0 15590 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 15591 INNER JOIN t4 ON t4.z>0 15592 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 15593 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15594} { 15595 10 110 210 310 110 10 - - 310 10 15596 20 120 220 320 120 20 - - 320 20 15597 30 130 230 330 130 30 230 30 330 30 15598 40 140 240 340 140 40 - - 340 40 15599 50 150 250 350 150 50 - - 350 50 15600 60 160 260 360 160 60 260 60 360 60 15601 70 170 270 370 170 70 - - 370 70 15602 80 180 280 380 180 80 - - 380 80 15603 90 190 290 390 190 90 290 90 390 90 15604} 15605do_execsql_test joinD-546 { 15606 SELECT t1.*, t2.*, t3.*, t4.* 15607 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 15608 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15609 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 15610 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15611} { 15612 5 105 205 305 - - - - 305 5 15613 10 110 210 310 110 10 - - 310 10 15614 15 115 215 315 - - 215 15 315 15 15615 20 120 220 320 120 20 - - 320 20 15616 25 125 225 325 - - - - 325 25 15617 30 130 230 330 130 30 230 30 330 30 15618 35 135 235 335 - - - - 335 35 15619 40 140 240 340 140 40 - - 340 40 15620 45 145 245 345 - - 245 45 345 45 15621 50 150 250 350 150 50 - - 350 50 15622 55 155 255 355 - - - - 355 55 15623 60 160 260 360 160 60 260 60 360 60 15624 65 165 265 365 - - - - 365 65 15625 70 170 270 370 170 70 - - 370 70 15626 75 175 275 375 - - 275 75 375 75 15627 80 180 280 380 180 80 - - 380 80 15628 85 185 285 385 - - - - 385 85 15629 90 190 290 390 190 90 290 90 390 90 15630 95 195 295 395 - - - - 395 95 15631} 15632do_execsql_test joinD-547 { 15633 SELECT t1.*, t2.*, t3.*, t4.* 15634 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 15635 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15636 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 15637 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15638} { 15639 0 100 200 300 - - - - - - 15640 1 101 201 301 - - - - - - 15641 2 102 202 302 102 2 - - - - 15642 3 103 203 303 - - 203 3 - - 15643 4 104 204 304 104 4 - - - - 15644 5 105 205 305 - - - - 305 5 15645 6 106 206 306 106 6 206 6 - - 15646 7 107 207 307 - - - - - - 15647 8 108 208 308 108 8 - - - - 15648 9 109 209 309 - - 209 9 - - 15649 10 110 210 310 110 10 - - 310 10 15650 11 111 211 311 - - - - - - 15651 12 112 212 312 112 12 212 12 - - 15652 13 113 213 313 - - - - - - 15653 14 114 214 314 114 14 - - - - 15654 15 115 215 315 - - 215 15 315 15 15655 16 116 216 316 116 16 - - - - 15656 17 117 217 317 - - - - - - 15657 18 118 218 318 118 18 218 18 - - 15658 19 119 219 319 - - - - - - 15659 20 120 220 320 120 20 - - 320 20 15660 21 121 221 321 - - 221 21 - - 15661 22 122 222 322 122 22 - - - - 15662 23 123 223 323 - - - - - - 15663 24 124 224 324 124 24 224 24 - - 15664 25 125 225 325 - - - - 325 25 15665 26 126 226 326 126 26 - - - - 15666 27 127 227 327 - - 227 27 - - 15667 28 128 228 328 128 28 - - - - 15668 29 129 229 329 - - - - - - 15669 30 130 230 330 130 30 230 30 330 30 15670 31 131 231 331 - - - - - - 15671 32 132 232 332 132 32 - - - - 15672 33 133 233 333 - - 233 33 - - 15673 34 134 234 334 134 34 - - - - 15674 35 135 235 335 - - - - 335 35 15675 36 136 236 336 136 36 236 36 - - 15676 37 137 237 337 - - - - - - 15677 38 138 238 338 138 38 - - - - 15678 39 139 239 339 - - 239 39 - - 15679 40 140 240 340 140 40 - - 340 40 15680 41 141 241 341 - - - - - - 15681 42 142 242 342 142 42 242 42 - - 15682 43 143 243 343 - - - - - - 15683 44 144 244 344 144 44 - - - - 15684 45 145 245 345 - - 245 45 345 45 15685 46 146 246 346 146 46 - - - - 15686 47 147 247 347 - - - - - - 15687 48 148 248 348 148 48 248 48 - - 15688 49 149 249 349 - - - - - - 15689 50 150 250 350 150 50 - - 350 50 15690 51 151 251 351 - - 251 51 - - 15691 52 152 252 352 152 52 - - - - 15692 53 153 253 353 - - - - - - 15693 54 154 254 354 154 54 254 54 - - 15694 55 155 255 355 - - - - 355 55 15695 56 156 256 356 156 56 - - - - 15696 57 157 257 357 - - 257 57 - - 15697 58 158 258 358 158 58 - - - - 15698 59 159 259 359 - - - - - - 15699 60 160 260 360 160 60 260 60 360 60 15700 61 161 261 361 - - - - - - 15701 62 162 262 362 162 62 - - - - 15702 63 163 263 363 - - 263 63 - - 15703 64 164 264 364 164 64 - - - - 15704 65 165 265 365 - - - - 365 65 15705 66 166 266 366 166 66 266 66 - - 15706 67 167 267 367 - - - - - - 15707 68 168 268 368 168 68 - - - - 15708 69 169 269 369 - - 269 69 - - 15709 70 170 270 370 170 70 - - 370 70 15710 71 171 271 371 - - - - - - 15711 72 172 272 372 172 72 272 72 - - 15712 73 173 273 373 - - - - - - 15713 74 174 274 374 174 74 - - - - 15714 75 175 275 375 - - 275 75 375 75 15715 76 176 276 376 176 76 - - - - 15716 77 177 277 377 - - - - - - 15717 78 178 278 378 178 78 278 78 - - 15718 79 179 279 379 - - - - - - 15719 80 180 280 380 180 80 - - 380 80 15720 81 181 281 381 - - 281 81 - - 15721 82 182 282 382 182 82 - - - - 15722 83 183 283 383 - - - - - - 15723 84 184 284 384 184 84 284 84 - - 15724 85 185 285 385 - - - - 385 85 15725 86 186 286 386 186 86 - - - - 15726 87 187 287 387 - - 287 87 - - 15727 88 188 288 388 188 88 - - - - 15728 89 189 289 389 - - - - - - 15729 90 190 290 390 190 90 290 90 390 90 15730 91 191 291 391 - - - - - - 15731 92 192 292 392 192 92 - - - - 15732 93 193 293 393 - - 293 93 - - 15733 94 194 294 394 194 94 - - - - 15734 95 195 295 395 - - - - 395 95 15735 96 - 296 396 - - - - - - 15736 97 197 - 397 - - - - - - 15737 98 198 298 - - - - - - - 15738 99 - - - - - - - - - 15739 - - - - - - 200 0 - - 15740} 15741do_execsql_test joinD-548 { 15742 SELECT t1.*, t2.*, t3.*, t4.* 15743 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 15744 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15745 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 15746 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15747} { 15748 0 100 200 300 - - - - - - 15749 1 101 201 301 - - - - - - 15750 2 102 202 302 102 2 - - - - 15751 3 103 203 303 - - 203 3 - - 15752 4 104 204 304 104 4 - - - - 15753 5 105 205 305 - - - - 305 5 15754 6 106 206 306 106 6 206 6 - - 15755 7 107 207 307 - - - - - - 15756 8 108 208 308 108 8 - - - - 15757 9 109 209 309 - - 209 9 - - 15758 10 110 210 310 110 10 - - 310 10 15759 11 111 211 311 - - - - - - 15760 12 112 212 312 112 12 212 12 - - 15761 13 113 213 313 - - - - - - 15762 14 114 214 314 114 14 - - - - 15763 15 115 215 315 - - 215 15 315 15 15764 16 116 216 316 116 16 - - - - 15765 17 117 217 317 - - - - - - 15766 18 118 218 318 118 18 218 18 - - 15767 19 119 219 319 - - - - - - 15768 20 120 220 320 120 20 - - 320 20 15769 21 121 221 321 - - 221 21 - - 15770 22 122 222 322 122 22 - - - - 15771 23 123 223 323 - - - - - - 15772 24 124 224 324 124 24 224 24 - - 15773 25 125 225 325 - - - - 325 25 15774 26 126 226 326 126 26 - - - - 15775 27 127 227 327 - - 227 27 - - 15776 28 128 228 328 128 28 - - - - 15777 29 129 229 329 - - - - - - 15778 30 130 230 330 130 30 230 30 330 30 15779 31 131 231 331 - - - - - - 15780 32 132 232 332 132 32 - - - - 15781 33 133 233 333 - - 233 33 - - 15782 34 134 234 334 134 34 - - - - 15783 35 135 235 335 - - - - 335 35 15784 36 136 236 336 136 36 236 36 - - 15785 37 137 237 337 - - - - - - 15786 38 138 238 338 138 38 - - - - 15787 39 139 239 339 - - 239 39 - - 15788 40 140 240 340 140 40 - - 340 40 15789 41 141 241 341 - - - - - - 15790 42 142 242 342 142 42 242 42 - - 15791 43 143 243 343 - - - - - - 15792 44 144 244 344 144 44 - - - - 15793 45 145 245 345 - - 245 45 345 45 15794 46 146 246 346 146 46 - - - - 15795 47 147 247 347 - - - - - - 15796 48 148 248 348 148 48 248 48 - - 15797 49 149 249 349 - - - - - - 15798 50 150 250 350 150 50 - - 350 50 15799 51 151 251 351 - - 251 51 - - 15800 52 152 252 352 152 52 - - - - 15801 53 153 253 353 - - - - - - 15802 54 154 254 354 154 54 254 54 - - 15803 55 155 255 355 - - - - 355 55 15804 56 156 256 356 156 56 - - - - 15805 57 157 257 357 - - 257 57 - - 15806 58 158 258 358 158 58 - - - - 15807 59 159 259 359 - - - - - - 15808 60 160 260 360 160 60 260 60 360 60 15809 61 161 261 361 - - - - - - 15810 62 162 262 362 162 62 - - - - 15811 63 163 263 363 - - 263 63 - - 15812 64 164 264 364 164 64 - - - - 15813 65 165 265 365 - - - - 365 65 15814 66 166 266 366 166 66 266 66 - - 15815 67 167 267 367 - - - - - - 15816 68 168 268 368 168 68 - - - - 15817 69 169 269 369 - - 269 69 - - 15818 70 170 270 370 170 70 - - 370 70 15819 71 171 271 371 - - - - - - 15820 72 172 272 372 172 72 272 72 - - 15821 73 173 273 373 - - - - - - 15822 74 174 274 374 174 74 - - - - 15823 75 175 275 375 - - 275 75 375 75 15824 76 176 276 376 176 76 - - - - 15825 77 177 277 377 - - - - - - 15826 78 178 278 378 178 78 278 78 - - 15827 79 179 279 379 - - - - - - 15828 80 180 280 380 180 80 - - 380 80 15829 81 181 281 381 - - 281 81 - - 15830 82 182 282 382 182 82 - - - - 15831 83 183 283 383 - - - - - - 15832 84 184 284 384 184 84 284 84 - - 15833 85 185 285 385 - - - - 385 85 15834 86 186 286 386 186 86 - - - - 15835 87 187 287 387 - - 287 87 - - 15836 88 188 288 388 188 88 - - - - 15837 89 189 289 389 - - - - - - 15838 90 190 290 390 190 90 290 90 390 90 15839 91 191 291 391 - - - - - - 15840 92 192 292 392 192 92 - - - - 15841 93 193 293 393 - - 293 93 - - 15842 94 194 294 394 194 94 - - - - 15843 95 195 295 395 - - - - 395 95 15844 96 - 296 396 - - - - - - 15845 97 197 - 397 - - - - - - 15846 98 198 298 - - - - - - - 15847 99 - - - - - - - - - 15848 - - - - - - 200 0 - - 15849} 15850do_execsql_test joinD-549 { 15851 SELECT t1.*, t2.*, t3.*, t4.* 15852 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 15853 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15854 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 15855 WHERE t2.x>0 15856 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15857} { 15858 2 102 202 302 102 2 - - - - 15859 4 104 204 304 104 4 - - - - 15860 6 106 206 306 106 6 206 6 - - 15861 8 108 208 308 108 8 - - - - 15862 10 110 210 310 110 10 - - 310 10 15863 12 112 212 312 112 12 212 12 - - 15864 14 114 214 314 114 14 - - - - 15865 16 116 216 316 116 16 - - - - 15866 18 118 218 318 118 18 218 18 - - 15867 20 120 220 320 120 20 - - 320 20 15868 22 122 222 322 122 22 - - - - 15869 24 124 224 324 124 24 224 24 - - 15870 26 126 226 326 126 26 - - - - 15871 28 128 228 328 128 28 - - - - 15872 30 130 230 330 130 30 230 30 330 30 15873 32 132 232 332 132 32 - - - - 15874 34 134 234 334 134 34 - - - - 15875 36 136 236 336 136 36 236 36 - - 15876 38 138 238 338 138 38 - - - - 15877 40 140 240 340 140 40 - - 340 40 15878 42 142 242 342 142 42 242 42 - - 15879 44 144 244 344 144 44 - - - - 15880 46 146 246 346 146 46 - - - - 15881 48 148 248 348 148 48 248 48 - - 15882 50 150 250 350 150 50 - - 350 50 15883 52 152 252 352 152 52 - - - - 15884 54 154 254 354 154 54 254 54 - - 15885 56 156 256 356 156 56 - - - - 15886 58 158 258 358 158 58 - - - - 15887 60 160 260 360 160 60 260 60 360 60 15888 62 162 262 362 162 62 - - - - 15889 64 164 264 364 164 64 - - - - 15890 66 166 266 366 166 66 266 66 - - 15891 68 168 268 368 168 68 - - - - 15892 70 170 270 370 170 70 - - 370 70 15893 72 172 272 372 172 72 272 72 - - 15894 74 174 274 374 174 74 - - - - 15895 76 176 276 376 176 76 - - - - 15896 78 178 278 378 178 78 278 78 - - 15897 80 180 280 380 180 80 - - 380 80 15898 82 182 282 382 182 82 - - - - 15899 84 184 284 384 184 84 284 84 - - 15900 86 186 286 386 186 86 - - - - 15901 88 188 288 388 188 88 - - - - 15902 90 190 290 390 190 90 290 90 390 90 15903 92 192 292 392 192 92 - - - - 15904 94 194 294 394 194 94 - - - - 15905} 15906do_execsql_test joinD-550 { 15907 SELECT t1.*, t2.*, t3.*, t4.* 15908 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 15909 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 15910 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 15911 WHERE (t2.x>0 OR t2.x IS NULL) 15912 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 15913} { 15914 1 101 201 301 - - - - - - 15915 2 102 202 302 102 2 - - - - 15916 3 103 203 303 - - 203 3 - - 15917 4 104 204 304 104 4 - - - - 15918 5 105 205 305 - - - - 305 5 15919 6 106 206 306 106 6 206 6 - - 15920 7 107 207 307 - - - - - - 15921 8 108 208 308 108 8 - - - - 15922 9 109 209 309 - - 209 9 - - 15923 10 110 210 310 110 10 - - 310 10 15924 11 111 211 311 - - - - - - 15925 12 112 212 312 112 12 212 12 - - 15926 13 113 213 313 - - - - - - 15927 14 114 214 314 114 14 - - - - 15928 15 115 215 315 - - 215 15 315 15 15929 16 116 216 316 116 16 - - - - 15930 17 117 217 317 - - - - - - 15931 18 118 218 318 118 18 218 18 - - 15932 19 119 219 319 - - - - - - 15933 20 120 220 320 120 20 - - 320 20 15934 21 121 221 321 - - 221 21 - - 15935 22 122 222 322 122 22 - - - - 15936 23 123 223 323 - - - - - - 15937 24 124 224 324 124 24 224 24 - - 15938 25 125 225 325 - - - - 325 25 15939 26 126 226 326 126 26 - - - - 15940 27 127 227 327 - - 227 27 - - 15941 28 128 228 328 128 28 - - - - 15942 29 129 229 329 - - - - - - 15943 30 130 230 330 130 30 230 30 330 30 15944 31 131 231 331 - - - - - - 15945 32 132 232 332 132 32 - - - - 15946 33 133 233 333 - - 233 33 - - 15947 34 134 234 334 134 34 - - - - 15948 35 135 235 335 - - - - 335 35 15949 36 136 236 336 136 36 236 36 - - 15950 37 137 237 337 - - - - - - 15951 38 138 238 338 138 38 - - - - 15952 39 139 239 339 - - 239 39 - - 15953 40 140 240 340 140 40 - - 340 40 15954 41 141 241 341 - - - - - - 15955 42 142 242 342 142 42 242 42 - - 15956 43 143 243 343 - - - - - - 15957 44 144 244 344 144 44 - - - - 15958 45 145 245 345 - - 245 45 345 45 15959 46 146 246 346 146 46 - - - - 15960 47 147 247 347 - - - - - - 15961 48 148 248 348 148 48 248 48 - - 15962 49 149 249 349 - - - - - - 15963 50 150 250 350 150 50 - - 350 50 15964 51 151 251 351 - - 251 51 - - 15965 52 152 252 352 152 52 - - - - 15966 53 153 253 353 - - - - - - 15967 54 154 254 354 154 54 254 54 - - 15968 55 155 255 355 - - - - 355 55 15969 56 156 256 356 156 56 - - - - 15970 57 157 257 357 - - 257 57 - - 15971 58 158 258 358 158 58 - - - - 15972 59 159 259 359 - - - - - - 15973 60 160 260 360 160 60 260 60 360 60 15974 61 161 261 361 - - - - - - 15975 62 162 262 362 162 62 - - - - 15976 63 163 263 363 - - 263 63 - - 15977 64 164 264 364 164 64 - - - - 15978 65 165 265 365 - - - - 365 65 15979 66 166 266 366 166 66 266 66 - - 15980 67 167 267 367 - - - - - - 15981 68 168 268 368 168 68 - - - - 15982 69 169 269 369 - - 269 69 - - 15983 70 170 270 370 170 70 - - 370 70 15984 71 171 271 371 - - - - - - 15985 72 172 272 372 172 72 272 72 - - 15986 73 173 273 373 - - - - - - 15987 74 174 274 374 174 74 - - - - 15988 75 175 275 375 - - 275 75 375 75 15989 76 176 276 376 176 76 - - - - 15990 77 177 277 377 - - - - - - 15991 78 178 278 378 178 78 278 78 - - 15992 79 179 279 379 - - - - - - 15993 80 180 280 380 180 80 - - 380 80 15994 81 181 281 381 - - 281 81 - - 15995 82 182 282 382 182 82 - - - - 15996 83 183 283 383 - - - - - - 15997 84 184 284 384 184 84 284 84 - - 15998 85 185 285 385 - - - - 385 85 15999 86 186 286 386 186 86 - - - - 16000 87 187 287 387 - - 287 87 - - 16001 88 188 288 388 188 88 - - - - 16002 89 189 289 389 - - - - - - 16003 90 190 290 390 190 90 290 90 390 90 16004 91 191 291 391 - - - - - - 16005 92 192 292 392 192 92 - - - - 16006 93 193 293 393 - - 293 93 - - 16007 94 194 294 394 194 94 - - - - 16008 95 195 295 395 - - - - 395 95 16009 96 - 296 396 - - - - - - 16010 97 197 - 397 - - - - - - 16011 98 198 298 - - - - - - - 16012 99 - - - - - - - - - 16013 - - - - - - 200 0 - - 16014} 16015do_execsql_test joinD-551 { 16016 SELECT t1.*, t2.*, t3.*, t4.* 16017 FROM t1 LEFT JOIN t2 ON true 16018 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16019 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 16020 WHERE t1.b=t2.b AND t2.x>0 16021 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16022} { 16023 2 102 202 302 102 2 - - - - 16024 4 104 204 304 104 4 - - - - 16025 6 106 206 306 106 6 206 6 - - 16026 8 108 208 308 108 8 - - - - 16027 10 110 210 310 110 10 - - 310 10 16028 12 112 212 312 112 12 212 12 - - 16029 14 114 214 314 114 14 - - - - 16030 16 116 216 316 116 16 - - - - 16031 18 118 218 318 118 18 218 18 - - 16032 20 120 220 320 120 20 - - 320 20 16033 22 122 222 322 122 22 - - - - 16034 24 124 224 324 124 24 224 24 - - 16035 26 126 226 326 126 26 - - - - 16036 28 128 228 328 128 28 - - - - 16037 30 130 230 330 130 30 230 30 330 30 16038 32 132 232 332 132 32 - - - - 16039 34 134 234 334 134 34 - - - - 16040 36 136 236 336 136 36 236 36 - - 16041 38 138 238 338 138 38 - - - - 16042 40 140 240 340 140 40 - - 340 40 16043 42 142 242 342 142 42 242 42 - - 16044 44 144 244 344 144 44 - - - - 16045 46 146 246 346 146 46 - - - - 16046 48 148 248 348 148 48 248 48 - - 16047 50 150 250 350 150 50 - - 350 50 16048 52 152 252 352 152 52 - - - - 16049 54 154 254 354 154 54 254 54 - - 16050 56 156 256 356 156 56 - - - - 16051 58 158 258 358 158 58 - - - - 16052 60 160 260 360 160 60 260 60 360 60 16053 62 162 262 362 162 62 - - - - 16054 64 164 264 364 164 64 - - - - 16055 66 166 266 366 166 66 266 66 - - 16056 68 168 268 368 168 68 - - - - 16057 70 170 270 370 170 70 - - 370 70 16058 72 172 272 372 172 72 272 72 - - 16059 74 174 274 374 174 74 - - - - 16060 76 176 276 376 176 76 - - - - 16061 78 178 278 378 178 78 278 78 - - 16062 80 180 280 380 180 80 - - 380 80 16063 82 182 282 382 182 82 - - - - 16064 84 184 284 384 184 84 284 84 - - 16065 86 186 286 386 186 86 - - - - 16066 88 188 288 388 188 88 - - - - 16067 90 190 290 390 190 90 290 90 390 90 16068 92 192 292 392 192 92 - - - - 16069 94 194 294 394 194 94 - - - - 16070} 16071do_execsql_test joinD-552 { 16072 SELECT t1.*, t2.*, t3.*, t4.* 16073 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16074 FULL JOIN t3 ON t1.c=t3.c 16075 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 16076 WHERE t3.y>0 16077 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16078} { 16079 3 103 203 303 - - 203 3 - - 16080 6 106 206 306 106 6 206 6 - - 16081 9 109 209 309 - - 209 9 - - 16082 12 112 212 312 112 12 212 12 - - 16083 15 115 215 315 - - 215 15 315 15 16084 18 118 218 318 118 18 218 18 - - 16085 21 121 221 321 - - 221 21 - - 16086 24 124 224 324 124 24 224 24 - - 16087 27 127 227 327 - - 227 27 - - 16088 30 130 230 330 130 30 230 30 330 30 16089 33 133 233 333 - - 233 33 - - 16090 36 136 236 336 136 36 236 36 - - 16091 39 139 239 339 - - 239 39 - - 16092 42 142 242 342 142 42 242 42 - - 16093 45 145 245 345 - - 245 45 345 45 16094 48 148 248 348 148 48 248 48 - - 16095 51 151 251 351 - - 251 51 - - 16096 54 154 254 354 154 54 254 54 - - 16097 57 157 257 357 - - 257 57 - - 16098 60 160 260 360 160 60 260 60 360 60 16099 63 163 263 363 - - 263 63 - - 16100 66 166 266 366 166 66 266 66 - - 16101 69 169 269 369 - - 269 69 - - 16102 72 172 272 372 172 72 272 72 - - 16103 75 175 275 375 - - 275 75 375 75 16104 78 178 278 378 178 78 278 78 - - 16105 81 181 281 381 - - 281 81 - - 16106 84 184 284 384 184 84 284 84 - - 16107 87 187 287 387 - - 287 87 - - 16108 90 190 290 390 190 90 290 90 390 90 16109 93 193 293 393 - - 293 93 - - 16110} 16111do_execsql_test joinD-553 { 16112 SELECT t1.*, t2.*, t3.*, t4.* 16113 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16114 FULL JOIN t3 ON t1.c=t3.c 16115 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 16116 WHERE t3.y>0 OR t3.y IS NULL 16117 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16118} { 16119 1 101 201 301 - - - - - - 16120 2 102 202 302 102 2 - - - - 16121 3 103 203 303 - - 203 3 - - 16122 4 104 204 304 104 4 - - - - 16123 5 105 205 305 - - - - 305 5 16124 6 106 206 306 106 6 206 6 - - 16125 7 107 207 307 - - - - - - 16126 8 108 208 308 108 8 - - - - 16127 9 109 209 309 - - 209 9 - - 16128 10 110 210 310 110 10 - - 310 10 16129 11 111 211 311 - - - - - - 16130 12 112 212 312 112 12 212 12 - - 16131 13 113 213 313 - - - - - - 16132 14 114 214 314 114 14 - - - - 16133 15 115 215 315 - - 215 15 315 15 16134 16 116 216 316 116 16 - - - - 16135 17 117 217 317 - - - - - - 16136 18 118 218 318 118 18 218 18 - - 16137 19 119 219 319 - - - - - - 16138 20 120 220 320 120 20 - - 320 20 16139 21 121 221 321 - - 221 21 - - 16140 22 122 222 322 122 22 - - - - 16141 23 123 223 323 - - - - - - 16142 24 124 224 324 124 24 224 24 - - 16143 25 125 225 325 - - - - 325 25 16144 26 126 226 326 126 26 - - - - 16145 27 127 227 327 - - 227 27 - - 16146 28 128 228 328 128 28 - - - - 16147 29 129 229 329 - - - - - - 16148 30 130 230 330 130 30 230 30 330 30 16149 31 131 231 331 - - - - - - 16150 32 132 232 332 132 32 - - - - 16151 33 133 233 333 - - 233 33 - - 16152 34 134 234 334 134 34 - - - - 16153 35 135 235 335 - - - - 335 35 16154 36 136 236 336 136 36 236 36 - - 16155 37 137 237 337 - - - - - - 16156 38 138 238 338 138 38 - - - - 16157 39 139 239 339 - - 239 39 - - 16158 40 140 240 340 140 40 - - 340 40 16159 41 141 241 341 - - - - - - 16160 42 142 242 342 142 42 242 42 - - 16161 43 143 243 343 - - - - - - 16162 44 144 244 344 144 44 - - - - 16163 45 145 245 345 - - 245 45 345 45 16164 46 146 246 346 146 46 - - - - 16165 47 147 247 347 - - - - - - 16166 48 148 248 348 148 48 248 48 - - 16167 49 149 249 349 - - - - - - 16168 50 150 250 350 150 50 - - 350 50 16169 51 151 251 351 - - 251 51 - - 16170 52 152 252 352 152 52 - - - - 16171 53 153 253 353 - - - - - - 16172 54 154 254 354 154 54 254 54 - - 16173 55 155 255 355 - - - - 355 55 16174 56 156 256 356 156 56 - - - - 16175 57 157 257 357 - - 257 57 - - 16176 58 158 258 358 158 58 - - - - 16177 59 159 259 359 - - - - - - 16178 60 160 260 360 160 60 260 60 360 60 16179 61 161 261 361 - - - - - - 16180 62 162 262 362 162 62 - - - - 16181 63 163 263 363 - - 263 63 - - 16182 64 164 264 364 164 64 - - - - 16183 65 165 265 365 - - - - 365 65 16184 66 166 266 366 166 66 266 66 - - 16185 67 167 267 367 - - - - - - 16186 68 168 268 368 168 68 - - - - 16187 69 169 269 369 - - 269 69 - - 16188 70 170 270 370 170 70 - - 370 70 16189 71 171 271 371 - - - - - - 16190 72 172 272 372 172 72 272 72 - - 16191 73 173 273 373 - - - - - - 16192 74 174 274 374 174 74 - - - - 16193 75 175 275 375 - - 275 75 375 75 16194 76 176 276 376 176 76 - - - - 16195 77 177 277 377 - - - - - - 16196 78 178 278 378 178 78 278 78 - - 16197 79 179 279 379 - - - - - - 16198 80 180 280 380 180 80 - - 380 80 16199 81 181 281 381 - - 281 81 - - 16200 82 182 282 382 182 82 - - - - 16201 83 183 283 383 - - - - - - 16202 84 184 284 384 184 84 284 84 - - 16203 85 185 285 385 - - - - 385 85 16204 86 186 286 386 186 86 - - - - 16205 87 187 287 387 - - 287 87 - - 16206 88 188 288 388 188 88 - - - - 16207 89 189 289 389 - - - - - - 16208 90 190 290 390 190 90 290 90 390 90 16209 91 191 291 391 - - - - - - 16210 92 192 292 392 192 92 - - - - 16211 93 193 293 393 - - 293 93 - - 16212 94 194 294 394 194 94 - - - - 16213 95 195 295 395 - - - - 395 95 16214 96 - 296 396 - - - - - - 16215 97 197 - 397 - - - - - - 16216 98 198 298 - - - - - - - 16217 99 - - - - - - - - - 16218} 16219do_execsql_test joinD-554 { 16220 SELECT t1.*, t2.*, t3.*, t4.* 16221 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16222 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16223 LEFT JOIN t4 ON t1.d=t4.d 16224 WHERE t4.z>0 16225 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16226} { 16227 5 105 205 305 - - - - 305 5 16228 10 110 210 310 110 10 - - 310 10 16229 15 115 215 315 - - 215 15 315 15 16230 20 120 220 320 120 20 - - 320 20 16231 25 125 225 325 - - - - 325 25 16232 30 130 230 330 130 30 230 30 330 30 16233 35 135 235 335 - - - - 335 35 16234 40 140 240 340 140 40 - - 340 40 16235 45 145 245 345 - - 245 45 345 45 16236 50 150 250 350 150 50 - - 350 50 16237 55 155 255 355 - - - - 355 55 16238 60 160 260 360 160 60 260 60 360 60 16239 65 165 265 365 - - - - 365 65 16240 70 170 270 370 170 70 - - 370 70 16241 75 175 275 375 - - 275 75 375 75 16242 80 180 280 380 180 80 - - 380 80 16243 85 185 285 385 - - - - 385 85 16244 90 190 290 390 190 90 290 90 390 90 16245 95 195 295 395 - - - - 395 95 16246} 16247do_execsql_test joinD-555 { 16248 SELECT t1.*, t2.*, t3.*, t4.* 16249 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16250 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16251 LEFT JOIN t4 ON t1.d=t4.d 16252 WHERE t4.z IS NULL OR t4.z>0 16253 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16254} { 16255 1 101 201 301 - - - - - - 16256 2 102 202 302 102 2 - - - - 16257 3 103 203 303 - - 203 3 - - 16258 4 104 204 304 104 4 - - - - 16259 5 105 205 305 - - - - 305 5 16260 6 106 206 306 106 6 206 6 - - 16261 7 107 207 307 - - - - - - 16262 8 108 208 308 108 8 - - - - 16263 9 109 209 309 - - 209 9 - - 16264 10 110 210 310 110 10 - - 310 10 16265 11 111 211 311 - - - - - - 16266 12 112 212 312 112 12 212 12 - - 16267 13 113 213 313 - - - - - - 16268 14 114 214 314 114 14 - - - - 16269 15 115 215 315 - - 215 15 315 15 16270 16 116 216 316 116 16 - - - - 16271 17 117 217 317 - - - - - - 16272 18 118 218 318 118 18 218 18 - - 16273 19 119 219 319 - - - - - - 16274 20 120 220 320 120 20 - - 320 20 16275 21 121 221 321 - - 221 21 - - 16276 22 122 222 322 122 22 - - - - 16277 23 123 223 323 - - - - - - 16278 24 124 224 324 124 24 224 24 - - 16279 25 125 225 325 - - - - 325 25 16280 26 126 226 326 126 26 - - - - 16281 27 127 227 327 - - 227 27 - - 16282 28 128 228 328 128 28 - - - - 16283 29 129 229 329 - - - - - - 16284 30 130 230 330 130 30 230 30 330 30 16285 31 131 231 331 - - - - - - 16286 32 132 232 332 132 32 - - - - 16287 33 133 233 333 - - 233 33 - - 16288 34 134 234 334 134 34 - - - - 16289 35 135 235 335 - - - - 335 35 16290 36 136 236 336 136 36 236 36 - - 16291 37 137 237 337 - - - - - - 16292 38 138 238 338 138 38 - - - - 16293 39 139 239 339 - - 239 39 - - 16294 40 140 240 340 140 40 - - 340 40 16295 41 141 241 341 - - - - - - 16296 42 142 242 342 142 42 242 42 - - 16297 43 143 243 343 - - - - - - 16298 44 144 244 344 144 44 - - - - 16299 45 145 245 345 - - 245 45 345 45 16300 46 146 246 346 146 46 - - - - 16301 47 147 247 347 - - - - - - 16302 48 148 248 348 148 48 248 48 - - 16303 49 149 249 349 - - - - - - 16304 50 150 250 350 150 50 - - 350 50 16305 51 151 251 351 - - 251 51 - - 16306 52 152 252 352 152 52 - - - - 16307 53 153 253 353 - - - - - - 16308 54 154 254 354 154 54 254 54 - - 16309 55 155 255 355 - - - - 355 55 16310 56 156 256 356 156 56 - - - - 16311 57 157 257 357 - - 257 57 - - 16312 58 158 258 358 158 58 - - - - 16313 59 159 259 359 - - - - - - 16314 60 160 260 360 160 60 260 60 360 60 16315 61 161 261 361 - - - - - - 16316 62 162 262 362 162 62 - - - - 16317 63 163 263 363 - - 263 63 - - 16318 64 164 264 364 164 64 - - - - 16319 65 165 265 365 - - - - 365 65 16320 66 166 266 366 166 66 266 66 - - 16321 67 167 267 367 - - - - - - 16322 68 168 268 368 168 68 - - - - 16323 69 169 269 369 - - 269 69 - - 16324 70 170 270 370 170 70 - - 370 70 16325 71 171 271 371 - - - - - - 16326 72 172 272 372 172 72 272 72 - - 16327 73 173 273 373 - - - - - - 16328 74 174 274 374 174 74 - - - - 16329 75 175 275 375 - - 275 75 375 75 16330 76 176 276 376 176 76 - - - - 16331 77 177 277 377 - - - - - - 16332 78 178 278 378 178 78 278 78 - - 16333 79 179 279 379 - - - - - - 16334 80 180 280 380 180 80 - - 380 80 16335 81 181 281 381 - - 281 81 - - 16336 82 182 282 382 182 82 - - - - 16337 83 183 283 383 - - - - - - 16338 84 184 284 384 184 84 284 84 - - 16339 85 185 285 385 - - - - 385 85 16340 86 186 286 386 186 86 - - - - 16341 87 187 287 387 - - 287 87 - - 16342 88 188 288 388 188 88 - - - - 16343 89 189 289 389 - - - - - - 16344 90 190 290 390 190 90 290 90 390 90 16345 91 191 291 391 - - - - - - 16346 92 192 292 392 192 92 - - - - 16347 93 193 293 393 - - 293 93 - - 16348 94 194 294 394 194 94 - - - - 16349 95 195 295 395 - - - - 395 95 16350 96 - 296 396 - - - - - - 16351 97 197 - 397 - - - - - - 16352 98 198 298 - - - - - - - 16353 99 - - - - - - - - - 16354 - - - - - - 200 0 - - 16355} 16356do_execsql_test joinD-556 { 16357 SELECT t1.*, t2.*, t3.*, t4.* 16358 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 16359 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16360 LEFT JOIN t4 ON t1.d=t4.d 16361 WHERE t2.x>0 AND t4.z>0 16362 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16363} { 16364 10 110 210 310 110 10 - - 310 10 16365 20 120 220 320 120 20 - - 320 20 16366 30 130 230 330 130 30 230 30 330 30 16367 40 140 240 340 140 40 - - 340 40 16368 50 150 250 350 150 50 - - 350 50 16369 60 160 260 360 160 60 260 60 360 60 16370 70 170 270 370 170 70 - - 370 70 16371 80 180 280 380 180 80 - - 380 80 16372 90 190 290 390 190 90 290 90 390 90 16373} 16374do_execsql_test joinD-557 { 16375 SELECT t1.*, t2.*, t3.*, t4.* 16376 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16377 FULL JOIN t3 ON t1.c=t3.c 16378 LEFT JOIN t4 ON t1.d=t4.d 16379 WHERE t4.z>0 AND t3.y>0 16380 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16381} { 16382 15 115 215 315 - - 215 15 315 15 16383 30 130 230 330 130 30 230 30 330 30 16384 45 145 245 345 - - 245 45 345 45 16385 60 160 260 360 160 60 260 60 360 60 16386 75 175 275 375 - - 275 75 375 75 16387 90 190 290 390 190 90 290 90 390 90 16388} 16389do_execsql_test joinD-558 { 16390 SELECT t1.*, t2.*, t3.*, t4.* 16391 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 16392 FULL JOIN t3 ON t1.c=t3.c 16393 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 16394 WHERE t2.x>0 AND t3.y>0 16395 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16396} { 16397 6 106 206 306 106 6 206 6 - - 16398 12 112 212 312 112 12 212 12 - - 16399 18 118 218 318 118 18 218 18 - - 16400 24 124 224 324 124 24 224 24 - - 16401 30 130 230 330 130 30 230 30 330 30 16402 36 136 236 336 136 36 236 36 - - 16403 42 142 242 342 142 42 242 42 - - 16404 48 148 248 348 148 48 248 48 - - 16405 54 154 254 354 154 54 254 54 - - 16406 60 160 260 360 160 60 260 60 360 60 16407 66 166 266 366 166 66 266 66 - - 16408 72 172 272 372 172 72 272 72 - - 16409 78 178 278 378 178 78 278 78 - - 16410 84 184 284 384 184 84 284 84 - - 16411 90 190 290 390 190 90 290 90 390 90 16412} 16413do_execsql_test joinD-559 { 16414 SELECT t1.*, t2.*, t3.*, t4.* 16415 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 16416 FULL JOIN t3 ON t1.c=t3.c 16417 LEFT JOIN t4 ON t1.d=t4.d 16418 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 16419 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16420} { 16421 30 130 230 330 130 30 230 30 330 30 16422 60 160 260 360 160 60 260 60 360 60 16423 90 190 290 390 190 90 290 90 390 90 16424} 16425do_execsql_test joinD-560 { 16426 SELECT t1.*, t2.*, t3.*, t4.* 16427 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 16428 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 16429 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 16430 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16431} { 16432 0 100 200 300 - - - - - - 16433 1 101 201 301 - - - - - - 16434 2 102 202 302 102 2 - - - - 16435 3 103 203 303 - - 203 3 - - 16436 4 104 204 304 104 4 - - - - 16437 5 105 205 305 - - - - 305 5 16438 6 106 206 306 106 6 206 6 - - 16439 7 107 207 307 - - - - - - 16440 8 108 208 308 108 8 - - - - 16441 9 109 209 309 - - 209 9 - - 16442 10 110 210 310 110 10 - - 310 10 16443 11 111 211 311 - - - - - - 16444 12 112 212 312 112 12 212 12 - - 16445 13 113 213 313 - - - - - - 16446 14 114 214 314 114 14 - - - - 16447 15 115 215 315 - - 215 15 315 15 16448 16 116 216 316 116 16 - - - - 16449 17 117 217 317 - - - - - - 16450 18 118 218 318 118 18 218 18 - - 16451 19 119 219 319 - - - - - - 16452 20 120 220 320 120 20 - - 320 20 16453 21 121 221 321 - - 221 21 - - 16454 22 122 222 322 122 22 - - - - 16455 23 123 223 323 - - - - - - 16456 24 124 224 324 124 24 224 24 - - 16457 25 125 225 325 - - - - 325 25 16458 26 126 226 326 126 26 - - - - 16459 27 127 227 327 - - 227 27 - - 16460 28 128 228 328 128 28 - - - - 16461 29 129 229 329 - - - - - - 16462 30 130 230 330 130 30 230 30 330 30 16463 31 131 231 331 - - - - - - 16464 32 132 232 332 132 32 - - - - 16465 33 133 233 333 - - 233 33 - - 16466 34 134 234 334 134 34 - - - - 16467 35 135 235 335 - - - - 335 35 16468 36 136 236 336 136 36 236 36 - - 16469 37 137 237 337 - - - - - - 16470 38 138 238 338 138 38 - - - - 16471 39 139 239 339 - - 239 39 - - 16472 40 140 240 340 140 40 - - 340 40 16473 41 141 241 341 - - - - - - 16474 42 142 242 342 142 42 242 42 - - 16475 43 143 243 343 - - - - - - 16476 44 144 244 344 144 44 - - - - 16477 45 145 245 345 - - 245 45 345 45 16478 46 146 246 346 146 46 - - - - 16479 47 147 247 347 - - - - - - 16480 48 148 248 348 148 48 248 48 - - 16481 49 149 249 349 - - - - - - 16482 50 150 250 350 150 50 - - 350 50 16483 51 151 251 351 - - 251 51 - - 16484 52 152 252 352 152 52 - - - - 16485 53 153 253 353 - - - - - - 16486 54 154 254 354 154 54 254 54 - - 16487 55 155 255 355 - - - - 355 55 16488 56 156 256 356 156 56 - - - - 16489 57 157 257 357 - - 257 57 - - 16490 58 158 258 358 158 58 - - - - 16491 59 159 259 359 - - - - - - 16492 60 160 260 360 160 60 260 60 360 60 16493 61 161 261 361 - - - - - - 16494 62 162 262 362 162 62 - - - - 16495 63 163 263 363 - - 263 63 - - 16496 64 164 264 364 164 64 - - - - 16497 65 165 265 365 - - - - 365 65 16498 66 166 266 366 166 66 266 66 - - 16499 67 167 267 367 - - - - - - 16500 68 168 268 368 168 68 - - - - 16501 69 169 269 369 - - 269 69 - - 16502 70 170 270 370 170 70 - - 370 70 16503 71 171 271 371 - - - - - - 16504 72 172 272 372 172 72 272 72 - - 16505 73 173 273 373 - - - - - - 16506 74 174 274 374 174 74 - - - - 16507 75 175 275 375 - - 275 75 375 75 16508 76 176 276 376 176 76 - - - - 16509 77 177 277 377 - - - - - - 16510 78 178 278 378 178 78 278 78 - - 16511 79 179 279 379 - - - - - - 16512 80 180 280 380 180 80 - - 380 80 16513 81 181 281 381 - - 281 81 - - 16514 82 182 282 382 182 82 - - - - 16515 83 183 283 383 - - - - - - 16516 84 184 284 384 184 84 284 84 - - 16517 85 185 285 385 - - - - 385 85 16518 86 186 286 386 186 86 - - - - 16519 87 187 287 387 - - 287 87 - - 16520 88 188 288 388 188 88 - - - - 16521 89 189 289 389 - - - - - - 16522 90 190 290 390 190 90 290 90 390 90 16523 91 191 291 391 - - - - - - 16524 92 192 292 392 192 92 - - - - 16525 93 193 293 393 - - 293 93 - - 16526 94 194 294 394 194 94 - - - - 16527 95 195 295 395 - - - - 395 95 16528 96 - 296 396 - - - - - - 16529 97 197 - 397 - - - - - - 16530 98 198 298 - - - - - - - 16531 99 - - - - - - - - - 16532 - - - - - - 200 0 - - 16533} 16534do_execsql_test joinD-561 { 16535 SELECT t1.*, t2.*, t3.*, t4.* 16536 FROM t1 LEFT JOIN t2 ON t2.x>0 16537 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 16538 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 16539 WHERE t1.b IS NOT DISTINCT FROM t2.b 16540 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16541} { 16542 2 102 202 302 102 2 - - - - 16543 4 104 204 304 104 4 - - - - 16544 6 106 206 306 106 6 206 6 - - 16545 8 108 208 308 108 8 - - - - 16546 10 110 210 310 110 10 - - 310 10 16547 12 112 212 312 112 12 212 12 - - 16548 14 114 214 314 114 14 - - - - 16549 16 116 216 316 116 16 - - - - 16550 18 118 218 318 118 18 218 18 - - 16551 20 120 220 320 120 20 - - 320 20 16552 22 122 222 322 122 22 - - - - 16553 24 124 224 324 124 24 224 24 - - 16554 26 126 226 326 126 26 - - - - 16555 28 128 228 328 128 28 - - - - 16556 30 130 230 330 130 30 230 30 330 30 16557 32 132 232 332 132 32 - - - - 16558 34 134 234 334 134 34 - - - - 16559 36 136 236 336 136 36 236 36 - - 16560 38 138 238 338 138 38 - - - - 16561 40 140 240 340 140 40 - - 340 40 16562 42 142 242 342 142 42 242 42 - - 16563 44 144 244 344 144 44 - - - - 16564 46 146 246 346 146 46 - - - - 16565 48 148 248 348 148 48 248 48 - - 16566 50 150 250 350 150 50 - - 350 50 16567 52 152 252 352 152 52 - - - - 16568 54 154 254 354 154 54 254 54 - - 16569 56 156 256 356 156 56 - - - - 16570 58 158 258 358 158 58 - - - - 16571 60 160 260 360 160 60 260 60 360 60 16572 62 162 262 362 162 62 - - - - 16573 64 164 264 364 164 64 - - - - 16574 66 166 266 366 166 66 266 66 - - 16575 68 168 268 368 168 68 - - - - 16576 70 170 270 370 170 70 - - 370 70 16577 72 172 272 372 172 72 272 72 - - 16578 74 174 274 374 174 74 - - - - 16579 76 176 276 376 176 76 - - - - 16580 78 178 278 378 178 78 278 78 - - 16581 80 180 280 380 180 80 - - 380 80 16582 82 182 282 382 182 82 - - - - 16583 84 184 284 384 184 84 284 84 - - 16584 86 186 286 386 186 86 - - - - 16585 88 188 288 388 188 88 - - - - 16586 90 190 290 390 190 90 290 90 390 90 16587 92 192 292 392 192 92 - - - - 16588 94 194 294 394 194 94 - - - - 16589 - - - - - - 200 0 - - 16590} 16591do_execsql_test joinD-562 { 16592 SELECT t1.*, t2.*, t3.*, t4.* 16593 FROM t1 LEFT JOIN t2 ON t2.x>0 16594 FULL JOIN t3 ON t3.y>0 16595 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 16596 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 16597 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16598} { 16599 6 106 206 306 106 6 206 6 - - 16600 12 112 212 312 112 12 212 12 - - 16601 18 118 218 318 118 18 218 18 - - 16602 24 124 224 324 124 24 224 24 - - 16603 30 130 230 330 130 30 230 30 330 30 16604 36 136 236 336 136 36 236 36 - - 16605 42 142 242 342 142 42 242 42 - - 16606 48 148 248 348 148 48 248 48 - - 16607 54 154 254 354 154 54 254 54 - - 16608 60 160 260 360 160 60 260 60 360 60 16609 66 166 266 366 166 66 266 66 - - 16610 72 172 272 372 172 72 272 72 - - 16611 78 178 278 378 178 78 278 78 - - 16612 84 184 284 384 184 84 284 84 - - 16613 90 190 290 390 190 90 290 90 390 90 16614} 16615do_execsql_test joinD-563 { 16616 SELECT t1.*, t2.*, t3.*, t4.* 16617 FROM t1 LEFT JOIN t2 ON t2.x>0 16618 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 16619 LEFT JOIN t4 ON t4.z>0 16620 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 16621 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16622} { 16623 10 110 210 310 110 10 - - 310 10 16624 20 120 220 320 120 20 - - 320 20 16625 30 130 230 330 130 30 230 30 330 30 16626 40 140 240 340 140 40 - - 340 40 16627 50 150 250 350 150 50 - - 350 50 16628 60 160 260 360 160 60 260 60 360 60 16629 70 170 270 370 170 70 - - 370 70 16630 80 180 280 380 180 80 - - 380 80 16631 90 190 290 390 190 90 290 90 390 90 16632} 16633do_execsql_test joinD-564 { 16634 SELECT t1.*, t2.*, t3.*, t4.* 16635 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 16636 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16637 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 16638 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16639} { 16640 0 100 200 300 - - - - - - 16641 1 101 201 301 - - - - - - 16642 2 102 202 302 102 2 - - - - 16643 3 103 203 303 - - 203 3 - - 16644 4 104 204 304 104 4 - - - - 16645 5 105 205 305 - - - - 305 5 16646 6 106 206 306 106 6 206 6 - - 16647 7 107 207 307 - - - - - - 16648 8 108 208 308 108 8 - - - - 16649 9 109 209 309 - - 209 9 - - 16650 10 110 210 310 110 10 - - 310 10 16651 11 111 211 311 - - - - - - 16652 12 112 212 312 112 12 212 12 - - 16653 13 113 213 313 - - - - - - 16654 14 114 214 314 114 14 - - - - 16655 15 115 215 315 - - 215 15 315 15 16656 16 116 216 316 116 16 - - - - 16657 17 117 217 317 - - - - - - 16658 18 118 218 318 118 18 218 18 - - 16659 19 119 219 319 - - - - - - 16660 20 120 220 320 120 20 - - 320 20 16661 21 121 221 321 - - 221 21 - - 16662 22 122 222 322 122 22 - - - - 16663 23 123 223 323 - - - - - - 16664 24 124 224 324 124 24 224 24 - - 16665 25 125 225 325 - - - - 325 25 16666 26 126 226 326 126 26 - - - - 16667 27 127 227 327 - - 227 27 - - 16668 28 128 228 328 128 28 - - - - 16669 29 129 229 329 - - - - - - 16670 30 130 230 330 130 30 230 30 330 30 16671 31 131 231 331 - - - - - - 16672 32 132 232 332 132 32 - - - - 16673 33 133 233 333 - - 233 33 - - 16674 34 134 234 334 134 34 - - - - 16675 35 135 235 335 - - - - 335 35 16676 36 136 236 336 136 36 236 36 - - 16677 37 137 237 337 - - - - - - 16678 38 138 238 338 138 38 - - - - 16679 39 139 239 339 - - 239 39 - - 16680 40 140 240 340 140 40 - - 340 40 16681 41 141 241 341 - - - - - - 16682 42 142 242 342 142 42 242 42 - - 16683 43 143 243 343 - - - - - - 16684 44 144 244 344 144 44 - - - - 16685 45 145 245 345 - - 245 45 345 45 16686 46 146 246 346 146 46 - - - - 16687 47 147 247 347 - - - - - - 16688 48 148 248 348 148 48 248 48 - - 16689 49 149 249 349 - - - - - - 16690 50 150 250 350 150 50 - - 350 50 16691 51 151 251 351 - - 251 51 - - 16692 52 152 252 352 152 52 - - - - 16693 53 153 253 353 - - - - - - 16694 54 154 254 354 154 54 254 54 - - 16695 55 155 255 355 - - - - 355 55 16696 56 156 256 356 156 56 - - - - 16697 57 157 257 357 - - 257 57 - - 16698 58 158 258 358 158 58 - - - - 16699 59 159 259 359 - - - - - - 16700 60 160 260 360 160 60 260 60 360 60 16701 61 161 261 361 - - - - - - 16702 62 162 262 362 162 62 - - - - 16703 63 163 263 363 - - 263 63 - - 16704 64 164 264 364 164 64 - - - - 16705 65 165 265 365 - - - - 365 65 16706 66 166 266 366 166 66 266 66 - - 16707 67 167 267 367 - - - - - - 16708 68 168 268 368 168 68 - - - - 16709 69 169 269 369 - - 269 69 - - 16710 70 170 270 370 170 70 - - 370 70 16711 71 171 271 371 - - - - - - 16712 72 172 272 372 172 72 272 72 - - 16713 73 173 273 373 - - - - - - 16714 74 174 274 374 174 74 - - - - 16715 75 175 275 375 - - 275 75 375 75 16716 76 176 276 376 176 76 - - - - 16717 77 177 277 377 - - - - - - 16718 78 178 278 378 178 78 278 78 - - 16719 79 179 279 379 - - - - - - 16720 80 180 280 380 180 80 - - 380 80 16721 81 181 281 381 - - 281 81 - - 16722 82 182 282 382 182 82 - - - - 16723 83 183 283 383 - - - - - - 16724 84 184 284 384 184 84 284 84 - - 16725 85 185 285 385 - - - - 385 85 16726 86 186 286 386 186 86 - - - - 16727 87 187 287 387 - - 287 87 - - 16728 88 188 288 388 188 88 - - - - 16729 89 189 289 389 - - - - - - 16730 90 190 290 390 190 90 290 90 390 90 16731 91 191 291 391 - - - - - - 16732 92 192 292 392 192 92 - - - - 16733 93 193 293 393 - - 293 93 - - 16734 94 194 294 394 194 94 - - - - 16735 95 195 295 395 - - - - 395 95 16736 96 - 296 396 - - - - - - 16737 97 197 - 397 - - - - - - 16738 98 198 298 - - - - - - - 16739 99 - - - - - - - - - 16740 - - - - - - 200 0 - - 16741} 16742do_execsql_test joinD-565 { 16743 SELECT t1.*, t2.*, t3.*, t4.* 16744 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16745 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16746 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 16747 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16748} { 16749 5 105 205 305 - - - - 305 5 16750 10 110 210 310 110 10 - - 310 10 16751 15 115 215 315 - - 215 15 315 15 16752 20 120 220 320 120 20 - - 320 20 16753 25 125 225 325 - - - - 325 25 16754 30 130 230 330 130 30 230 30 330 30 16755 35 135 235 335 - - - - 335 35 16756 40 140 240 340 140 40 - - 340 40 16757 45 145 245 345 - - 245 45 345 45 16758 50 150 250 350 150 50 - - 350 50 16759 55 155 255 355 - - - - 355 55 16760 60 160 260 360 160 60 260 60 360 60 16761 65 165 265 365 - - - - 365 65 16762 70 170 270 370 170 70 - - 370 70 16763 75 175 275 375 - - 275 75 375 75 16764 80 180 280 380 180 80 - - 380 80 16765 85 185 285 385 - - - - 385 85 16766 90 190 290 390 190 90 290 90 390 90 16767 95 195 295 395 - - - - 395 95 16768 - - - - - - - - 300 0 16769} 16770do_execsql_test joinD-566 { 16771 SELECT t1.*, t2.*, t3.*, t4.* 16772 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 16773 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16774 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 16775 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16776} { 16777 5 105 205 305 - - - - 305 5 16778 10 110 210 310 110 10 - - 310 10 16779 15 115 215 315 - - 215 15 315 15 16780 20 120 220 320 120 20 - - 320 20 16781 25 125 225 325 - - - - 325 25 16782 30 130 230 330 130 30 230 30 330 30 16783 35 135 235 335 - - - - 335 35 16784 40 140 240 340 140 40 - - 340 40 16785 45 145 245 345 - - 245 45 345 45 16786 50 150 250 350 150 50 - - 350 50 16787 55 155 255 355 - - - - 355 55 16788 60 160 260 360 160 60 260 60 360 60 16789 65 165 265 365 - - - - 365 65 16790 70 170 270 370 170 70 - - 370 70 16791 75 175 275 375 - - 275 75 375 75 16792 80 180 280 380 180 80 - - 380 80 16793 85 185 285 385 - - - - 385 85 16794 90 190 290 390 190 90 290 90 390 90 16795 95 195 295 395 - - - - 395 95 16796 - - - - - - - - 300 0 16797} 16798do_execsql_test joinD-567 { 16799 SELECT t1.*, t2.*, t3.*, t4.* 16800 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 16801 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16802 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 16803 WHERE t2.x>0 16804 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16805} { 16806 10 110 210 310 110 10 - - 310 10 16807 20 120 220 320 120 20 - - 320 20 16808 30 130 230 330 130 30 230 30 330 30 16809 40 140 240 340 140 40 - - 340 40 16810 50 150 250 350 150 50 - - 350 50 16811 60 160 260 360 160 60 260 60 360 60 16812 70 170 270 370 170 70 - - 370 70 16813 80 180 280 380 180 80 - - 380 80 16814 90 190 290 390 190 90 290 90 390 90 16815} 16816do_execsql_test joinD-568 { 16817 SELECT t1.*, t2.*, t3.*, t4.* 16818 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 16819 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16820 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 16821 WHERE (t2.x>0 OR t2.x IS NULL) 16822 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16823} { 16824 5 105 205 305 - - - - 305 5 16825 10 110 210 310 110 10 - - 310 10 16826 15 115 215 315 - - 215 15 315 15 16827 20 120 220 320 120 20 - - 320 20 16828 25 125 225 325 - - - - 325 25 16829 30 130 230 330 130 30 230 30 330 30 16830 35 135 235 335 - - - - 335 35 16831 40 140 240 340 140 40 - - 340 40 16832 45 145 245 345 - - 245 45 345 45 16833 50 150 250 350 150 50 - - 350 50 16834 55 155 255 355 - - - - 355 55 16835 60 160 260 360 160 60 260 60 360 60 16836 65 165 265 365 - - - - 365 65 16837 70 170 270 370 170 70 - - 370 70 16838 75 175 275 375 - - 275 75 375 75 16839 80 180 280 380 180 80 - - 380 80 16840 85 185 285 385 - - - - 385 85 16841 90 190 290 390 190 90 290 90 390 90 16842 95 195 295 395 - - - - 395 95 16843 - - - - - - - - 300 0 16844} 16845do_execsql_test joinD-569 { 16846 SELECT t1.*, t2.*, t3.*, t4.* 16847 FROM t1 LEFT JOIN t2 ON true 16848 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16849 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 16850 WHERE t1.b=t2.b AND t2.x>0 16851 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16852} { 16853 10 110 210 310 110 10 - - 310 10 16854 20 120 220 320 120 20 - - 320 20 16855 30 130 230 330 130 30 230 30 330 30 16856 40 140 240 340 140 40 - - 340 40 16857 50 150 250 350 150 50 - - 350 50 16858 60 160 260 360 160 60 260 60 360 60 16859 70 170 270 370 170 70 - - 370 70 16860 80 180 280 380 180 80 - - 380 80 16861 90 190 290 390 190 90 290 90 390 90 16862} 16863do_execsql_test joinD-570 { 16864 SELECT t1.*, t2.*, t3.*, t4.* 16865 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16866 FULL JOIN t3 ON t1.c=t3.c 16867 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 16868 WHERE t3.y>0 16869 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16870} { 16871 15 115 215 315 - - 215 15 315 15 16872 30 130 230 330 130 30 230 30 330 30 16873 45 145 245 345 - - 245 45 345 45 16874 60 160 260 360 160 60 260 60 360 60 16875 75 175 275 375 - - 275 75 375 75 16876 90 190 290 390 190 90 290 90 390 90 16877} 16878do_execsql_test joinD-571 { 16879 SELECT t1.*, t2.*, t3.*, t4.* 16880 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16881 FULL JOIN t3 ON t1.c=t3.c 16882 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 16883 WHERE t3.y>0 OR t3.y IS NULL 16884 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16885} { 16886 5 105 205 305 - - - - 305 5 16887 10 110 210 310 110 10 - - 310 10 16888 15 115 215 315 - - 215 15 315 15 16889 20 120 220 320 120 20 - - 320 20 16890 25 125 225 325 - - - - 325 25 16891 30 130 230 330 130 30 230 30 330 30 16892 35 135 235 335 - - - - 335 35 16893 40 140 240 340 140 40 - - 340 40 16894 45 145 245 345 - - 245 45 345 45 16895 50 150 250 350 150 50 - - 350 50 16896 55 155 255 355 - - - - 355 55 16897 60 160 260 360 160 60 260 60 360 60 16898 65 165 265 365 - - - - 365 65 16899 70 170 270 370 170 70 - - 370 70 16900 75 175 275 375 - - 275 75 375 75 16901 80 180 280 380 180 80 - - 380 80 16902 85 185 285 385 - - - - 385 85 16903 90 190 290 390 190 90 290 90 390 90 16904 95 195 295 395 - - - - 395 95 16905 - - - - - - - - 300 0 16906} 16907do_execsql_test joinD-572 { 16908 SELECT t1.*, t2.*, t3.*, t4.* 16909 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16910 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16911 RIGHT JOIN t4 ON t1.d=t4.d 16912 WHERE t4.z>0 16913 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16914} { 16915 5 105 205 305 - - - - 305 5 16916 10 110 210 310 110 10 - - 310 10 16917 15 115 215 315 - - 215 15 315 15 16918 20 120 220 320 120 20 - - 320 20 16919 25 125 225 325 - - - - 325 25 16920 30 130 230 330 130 30 230 30 330 30 16921 35 135 235 335 - - - - 335 35 16922 40 140 240 340 140 40 - - 340 40 16923 45 145 245 345 - - 245 45 345 45 16924 50 150 250 350 150 50 - - 350 50 16925 55 155 255 355 - - - - 355 55 16926 60 160 260 360 160 60 260 60 360 60 16927 65 165 265 365 - - - - 365 65 16928 70 170 270 370 170 70 - - 370 70 16929 75 175 275 375 - - 275 75 375 75 16930 80 180 280 380 180 80 - - 380 80 16931 85 185 285 385 - - - - 385 85 16932 90 190 290 390 190 90 290 90 390 90 16933 95 195 295 395 - - - - 395 95 16934} 16935do_execsql_test joinD-573 { 16936 SELECT t1.*, t2.*, t3.*, t4.* 16937 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16938 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16939 RIGHT JOIN t4 ON t1.d=t4.d 16940 WHERE t4.z IS NULL OR t4.z>0 16941 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16942} { 16943 5 105 205 305 - - - - 305 5 16944 10 110 210 310 110 10 - - 310 10 16945 15 115 215 315 - - 215 15 315 15 16946 20 120 220 320 120 20 - - 320 20 16947 25 125 225 325 - - - - 325 25 16948 30 130 230 330 130 30 230 30 330 30 16949 35 135 235 335 - - - - 335 35 16950 40 140 240 340 140 40 - - 340 40 16951 45 145 245 345 - - 245 45 345 45 16952 50 150 250 350 150 50 - - 350 50 16953 55 155 255 355 - - - - 355 55 16954 60 160 260 360 160 60 260 60 360 60 16955 65 165 265 365 - - - - 365 65 16956 70 170 270 370 170 70 - - 370 70 16957 75 175 275 375 - - 275 75 375 75 16958 80 180 280 380 180 80 - - 380 80 16959 85 185 285 385 - - - - 385 85 16960 90 190 290 390 190 90 290 90 390 90 16961 95 195 295 395 - - - - 395 95 16962} 16963do_execsql_test joinD-574 { 16964 SELECT t1.*, t2.*, t3.*, t4.* 16965 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 16966 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 16967 RIGHT JOIN t4 ON t1.d=t4.d 16968 WHERE t2.x>0 AND t4.z>0 16969 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16970} { 16971 10 110 210 310 110 10 - - 310 10 16972 20 120 220 320 120 20 - - 320 20 16973 30 130 230 330 130 30 230 30 330 30 16974 40 140 240 340 140 40 - - 340 40 16975 50 150 250 350 150 50 - - 350 50 16976 60 160 260 360 160 60 260 60 360 60 16977 70 170 270 370 170 70 - - 370 70 16978 80 180 280 380 180 80 - - 380 80 16979 90 190 290 390 190 90 290 90 390 90 16980} 16981do_execsql_test joinD-575 { 16982 SELECT t1.*, t2.*, t3.*, t4.* 16983 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 16984 FULL JOIN t3 ON t1.c=t3.c 16985 RIGHT JOIN t4 ON t1.d=t4.d 16986 WHERE t4.z>0 AND t3.y>0 16987 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 16988} { 16989 15 115 215 315 - - 215 15 315 15 16990 30 130 230 330 130 30 230 30 330 30 16991 45 145 245 345 - - 245 45 345 45 16992 60 160 260 360 160 60 260 60 360 60 16993 75 175 275 375 - - 275 75 375 75 16994 90 190 290 390 190 90 290 90 390 90 16995} 16996do_execsql_test joinD-576 { 16997 SELECT t1.*, t2.*, t3.*, t4.* 16998 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 16999 FULL JOIN t3 ON t1.c=t3.c 17000 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 17001 WHERE t2.x>0 AND t3.y>0 17002 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17003} { 17004 30 130 230 330 130 30 230 30 330 30 17005 60 160 260 360 160 60 260 60 360 60 17006 90 190 290 390 190 90 290 90 390 90 17007} 17008do_execsql_test joinD-577 { 17009 SELECT t1.*, t2.*, t3.*, t4.* 17010 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 17011 FULL JOIN t3 ON t1.c=t3.c 17012 RIGHT JOIN t4 ON t1.d=t4.d 17013 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 17014 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17015} { 17016 30 130 230 330 130 30 230 30 330 30 17017 60 160 260 360 160 60 260 60 360 60 17018 90 190 290 390 190 90 290 90 390 90 17019} 17020do_execsql_test joinD-578 { 17021 SELECT t1.*, t2.*, t3.*, t4.* 17022 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 17023 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 17024 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 17025 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17026} { 17027 5 105 205 305 - - - - 305 5 17028 10 110 210 310 110 10 - - 310 10 17029 15 115 215 315 - - 215 15 315 15 17030 20 120 220 320 120 20 - - 320 20 17031 25 125 225 325 - - - - 325 25 17032 30 130 230 330 130 30 230 30 330 30 17033 35 135 235 335 - - - - 335 35 17034 40 140 240 340 140 40 - - 340 40 17035 45 145 245 345 - - 245 45 345 45 17036 50 150 250 350 150 50 - - 350 50 17037 55 155 255 355 - - - - 355 55 17038 60 160 260 360 160 60 260 60 360 60 17039 65 165 265 365 - - - - 365 65 17040 70 170 270 370 170 70 - - 370 70 17041 75 175 275 375 - - 275 75 375 75 17042 80 180 280 380 180 80 - - 380 80 17043 85 185 285 385 - - - - 385 85 17044 90 190 290 390 190 90 290 90 390 90 17045 95 195 295 395 - - - - 395 95 17046 - - - - - - - - 300 0 17047} 17048do_execsql_test joinD-579 { 17049 SELECT t1.*, t2.*, t3.*, t4.* 17050 FROM t1 LEFT JOIN t2 ON t2.x>0 17051 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 17052 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 17053 WHERE t1.b IS NOT DISTINCT FROM t2.b 17054 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17055} { 17056 10 110 210 310 110 10 - - 310 10 17057 20 120 220 320 120 20 - - 320 20 17058 30 130 230 330 130 30 230 30 330 30 17059 40 140 240 340 140 40 - - 340 40 17060 50 150 250 350 150 50 - - 350 50 17061 60 160 260 360 160 60 260 60 360 60 17062 70 170 270 370 170 70 - - 370 70 17063 80 180 280 380 180 80 - - 380 80 17064 90 190 290 390 190 90 290 90 390 90 17065 - - - - - - - - 300 0 17066} 17067do_execsql_test joinD-580 { 17068 SELECT t1.*, t2.*, t3.*, t4.* 17069 FROM t1 LEFT JOIN t2 ON t2.x>0 17070 FULL JOIN t3 ON t3.y>0 17071 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 17072 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 17073 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17074} { 17075 30 130 230 330 130 30 230 30 330 30 17076 60 160 260 360 160 60 260 60 360 60 17077 90 190 290 390 190 90 290 90 390 90 17078} 17079do_execsql_test joinD-581 { 17080 SELECT t1.*, t2.*, t3.*, t4.* 17081 FROM t1 LEFT JOIN t2 ON t2.x>0 17082 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 17083 RIGHT JOIN t4 ON t4.z>0 17084 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 17085 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17086} { 17087 10 110 210 310 110 10 - - 310 10 17088 20 120 220 320 120 20 - - 320 20 17089 30 130 230 330 130 30 230 30 330 30 17090 40 140 240 340 140 40 - - 340 40 17091 50 150 250 350 150 50 - - 350 50 17092 60 160 260 360 160 60 260 60 360 60 17093 70 170 270 370 170 70 - - 370 70 17094 80 180 280 380 180 80 - - 380 80 17095 90 190 290 390 190 90 290 90 390 90 17096} 17097do_execsql_test joinD-582 { 17098 SELECT t1.*, t2.*, t3.*, t4.* 17099 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 17100 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 17101 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 17102 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17103} { 17104 5 105 205 305 - - - - 305 5 17105 10 110 210 310 110 10 - - 310 10 17106 15 115 215 315 - - 215 15 315 15 17107 20 120 220 320 120 20 - - 320 20 17108 25 125 225 325 - - - - 325 25 17109 30 130 230 330 130 30 230 30 330 30 17110 35 135 235 335 - - - - 335 35 17111 40 140 240 340 140 40 - - 340 40 17112 45 145 245 345 - - 245 45 345 45 17113 50 150 250 350 150 50 - - 350 50 17114 55 155 255 355 - - - - 355 55 17115 60 160 260 360 160 60 260 60 360 60 17116 65 165 265 365 - - - - 365 65 17117 70 170 270 370 170 70 - - 370 70 17118 75 175 275 375 - - 275 75 375 75 17119 80 180 280 380 180 80 - - 380 80 17120 85 185 285 385 - - - - 385 85 17121 90 190 290 390 190 90 290 90 390 90 17122 95 195 295 395 - - - - 395 95 17123 - - - - - - - - 300 0 17124} 17125do_execsql_test joinD-583 { 17126 SELECT t1.*, t2.*, t3.*, t4.* 17127 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 17128 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 17129 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 17130 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17131} { 17132 0 100 200 300 - - - - - - 17133 1 101 201 301 - - - - - - 17134 2 102 202 302 102 2 - - - - 17135 3 103 203 303 - - 203 3 - - 17136 4 104 204 304 104 4 - - - - 17137 5 105 205 305 - - - - 305 5 17138 6 106 206 306 106 6 206 6 - - 17139 7 107 207 307 - - - - - - 17140 8 108 208 308 108 8 - - - - 17141 9 109 209 309 - - 209 9 - - 17142 10 110 210 310 110 10 - - 310 10 17143 11 111 211 311 - - - - - - 17144 12 112 212 312 112 12 212 12 - - 17145 13 113 213 313 - - - - - - 17146 14 114 214 314 114 14 - - - - 17147 15 115 215 315 - - 215 15 315 15 17148 16 116 216 316 116 16 - - - - 17149 17 117 217 317 - - - - - - 17150 18 118 218 318 118 18 218 18 - - 17151 19 119 219 319 - - - - - - 17152 20 120 220 320 120 20 - - 320 20 17153 21 121 221 321 - - 221 21 - - 17154 22 122 222 322 122 22 - - - - 17155 23 123 223 323 - - - - - - 17156 24 124 224 324 124 24 224 24 - - 17157 25 125 225 325 - - - - 325 25 17158 26 126 226 326 126 26 - - - - 17159 27 127 227 327 - - 227 27 - - 17160 28 128 228 328 128 28 - - - - 17161 29 129 229 329 - - - - - - 17162 30 130 230 330 130 30 230 30 330 30 17163 31 131 231 331 - - - - - - 17164 32 132 232 332 132 32 - - - - 17165 33 133 233 333 - - 233 33 - - 17166 34 134 234 334 134 34 - - - - 17167 35 135 235 335 - - - - 335 35 17168 36 136 236 336 136 36 236 36 - - 17169 37 137 237 337 - - - - - - 17170 38 138 238 338 138 38 - - - - 17171 39 139 239 339 - - 239 39 - - 17172 40 140 240 340 140 40 - - 340 40 17173 41 141 241 341 - - - - - - 17174 42 142 242 342 142 42 242 42 - - 17175 43 143 243 343 - - - - - - 17176 44 144 244 344 144 44 - - - - 17177 45 145 245 345 - - 245 45 345 45 17178 46 146 246 346 146 46 - - - - 17179 47 147 247 347 - - - - - - 17180 48 148 248 348 148 48 248 48 - - 17181 49 149 249 349 - - - - - - 17182 50 150 250 350 150 50 - - 350 50 17183 51 151 251 351 - - 251 51 - - 17184 52 152 252 352 152 52 - - - - 17185 53 153 253 353 - - - - - - 17186 54 154 254 354 154 54 254 54 - - 17187 55 155 255 355 - - - - 355 55 17188 56 156 256 356 156 56 - - - - 17189 57 157 257 357 - - 257 57 - - 17190 58 158 258 358 158 58 - - - - 17191 59 159 259 359 - - - - - - 17192 60 160 260 360 160 60 260 60 360 60 17193 61 161 261 361 - - - - - - 17194 62 162 262 362 162 62 - - - - 17195 63 163 263 363 - - 263 63 - - 17196 64 164 264 364 164 64 - - - - 17197 65 165 265 365 - - - - 365 65 17198 66 166 266 366 166 66 266 66 - - 17199 67 167 267 367 - - - - - - 17200 68 168 268 368 168 68 - - - - 17201 69 169 269 369 - - 269 69 - - 17202 70 170 270 370 170 70 - - 370 70 17203 71 171 271 371 - - - - - - 17204 72 172 272 372 172 72 272 72 - - 17205 73 173 273 373 - - - - - - 17206 74 174 274 374 174 74 - - - - 17207 75 175 275 375 - - 275 75 375 75 17208 76 176 276 376 176 76 - - - - 17209 77 177 277 377 - - - - - - 17210 78 178 278 378 178 78 278 78 - - 17211 79 179 279 379 - - - - - - 17212 80 180 280 380 180 80 - - 380 80 17213 81 181 281 381 - - 281 81 - - 17214 82 182 282 382 182 82 - - - - 17215 83 183 283 383 - - - - - - 17216 84 184 284 384 184 84 284 84 - - 17217 85 185 285 385 - - - - 385 85 17218 86 186 286 386 186 86 - - - - 17219 87 187 287 387 - - 287 87 - - 17220 88 188 288 388 188 88 - - - - 17221 89 189 289 389 - - - - - - 17222 90 190 290 390 190 90 290 90 390 90 17223 91 191 291 391 - - - - - - 17224 92 192 292 392 192 92 - - - - 17225 93 193 293 393 - - 293 93 - - 17226 94 194 294 394 194 94 - - - - 17227 95 195 295 395 - - - - 395 95 17228 96 - 296 396 - - - - - - 17229 97 197 - 397 - - - - - - 17230 98 198 298 - - - - - - - 17231 99 - - - - - - - - - 17232 - - - - - - 200 0 - - 17233 - - - - - - - - 300 0 17234} 17235do_execsql_test joinD-584 { 17236 SELECT t1.*, t2.*, t3.*, t4.* 17237 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 17238 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 17239 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 17240 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17241} { 17242 0 100 200 300 - - - - - - 17243 1 101 201 301 - - - - - - 17244 2 102 202 302 102 2 - - - - 17245 3 103 203 303 - - 203 3 - - 17246 4 104 204 304 104 4 - - - - 17247 5 105 205 305 - - - - 305 5 17248 6 106 206 306 106 6 206 6 - - 17249 7 107 207 307 - - - - - - 17250 8 108 208 308 108 8 - - - - 17251 9 109 209 309 - - 209 9 - - 17252 10 110 210 310 110 10 - - 310 10 17253 11 111 211 311 - - - - - - 17254 12 112 212 312 112 12 212 12 - - 17255 13 113 213 313 - - - - - - 17256 14 114 214 314 114 14 - - - - 17257 15 115 215 315 - - 215 15 315 15 17258 16 116 216 316 116 16 - - - - 17259 17 117 217 317 - - - - - - 17260 18 118 218 318 118 18 218 18 - - 17261 19 119 219 319 - - - - - - 17262 20 120 220 320 120 20 - - 320 20 17263 21 121 221 321 - - 221 21 - - 17264 22 122 222 322 122 22 - - - - 17265 23 123 223 323 - - - - - - 17266 24 124 224 324 124 24 224 24 - - 17267 25 125 225 325 - - - - 325 25 17268 26 126 226 326 126 26 - - - - 17269 27 127 227 327 - - 227 27 - - 17270 28 128 228 328 128 28 - - - - 17271 29 129 229 329 - - - - - - 17272 30 130 230 330 130 30 230 30 330 30 17273 31 131 231 331 - - - - - - 17274 32 132 232 332 132 32 - - - - 17275 33 133 233 333 - - 233 33 - - 17276 34 134 234 334 134 34 - - - - 17277 35 135 235 335 - - - - 335 35 17278 36 136 236 336 136 36 236 36 - - 17279 37 137 237 337 - - - - - - 17280 38 138 238 338 138 38 - - - - 17281 39 139 239 339 - - 239 39 - - 17282 40 140 240 340 140 40 - - 340 40 17283 41 141 241 341 - - - - - - 17284 42 142 242 342 142 42 242 42 - - 17285 43 143 243 343 - - - - - - 17286 44 144 244 344 144 44 - - - - 17287 45 145 245 345 - - 245 45 345 45 17288 46 146 246 346 146 46 - - - - 17289 47 147 247 347 - - - - - - 17290 48 148 248 348 148 48 248 48 - - 17291 49 149 249 349 - - - - - - 17292 50 150 250 350 150 50 - - 350 50 17293 51 151 251 351 - - 251 51 - - 17294 52 152 252 352 152 52 - - - - 17295 53 153 253 353 - - - - - - 17296 54 154 254 354 154 54 254 54 - - 17297 55 155 255 355 - - - - 355 55 17298 56 156 256 356 156 56 - - - - 17299 57 157 257 357 - - 257 57 - - 17300 58 158 258 358 158 58 - - - - 17301 59 159 259 359 - - - - - - 17302 60 160 260 360 160 60 260 60 360 60 17303 61 161 261 361 - - - - - - 17304 62 162 262 362 162 62 - - - - 17305 63 163 263 363 - - 263 63 - - 17306 64 164 264 364 164 64 - - - - 17307 65 165 265 365 - - - - 365 65 17308 66 166 266 366 166 66 266 66 - - 17309 67 167 267 367 - - - - - - 17310 68 168 268 368 168 68 - - - - 17311 69 169 269 369 - - 269 69 - - 17312 70 170 270 370 170 70 - - 370 70 17313 71 171 271 371 - - - - - - 17314 72 172 272 372 172 72 272 72 - - 17315 73 173 273 373 - - - - - - 17316 74 174 274 374 174 74 - - - - 17317 75 175 275 375 - - 275 75 375 75 17318 76 176 276 376 176 76 - - - - 17319 77 177 277 377 - - - - - - 17320 78 178 278 378 178 78 278 78 - - 17321 79 179 279 379 - - - - - - 17322 80 180 280 380 180 80 - - 380 80 17323 81 181 281 381 - - 281 81 - - 17324 82 182 282 382 182 82 - - - - 17325 83 183 283 383 - - - - - - 17326 84 184 284 384 184 84 284 84 - - 17327 85 185 285 385 - - - - 385 85 17328 86 186 286 386 186 86 - - - - 17329 87 187 287 387 - - 287 87 - - 17330 88 188 288 388 188 88 - - - - 17331 89 189 289 389 - - - - - - 17332 90 190 290 390 190 90 290 90 390 90 17333 91 191 291 391 - - - - - - 17334 92 192 292 392 192 92 - - - - 17335 93 193 293 393 - - 293 93 - - 17336 94 194 294 394 194 94 - - - - 17337 95 195 295 395 - - - - 395 95 17338 96 - 296 396 - - - - - - 17339 97 197 - 397 - - - - - - 17340 98 198 298 - - - - - - - 17341 99 - - - - - - - - - 17342 - - - - - - 200 0 - - 17343 - - - - - - - - 300 0 17344} 17345do_execsql_test joinD-585 { 17346 SELECT t1.*, t2.*, t3.*, t4.* 17347 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 17348 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 17349 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 17350 WHERE t2.x>0 17351 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17352} { 17353 2 102 202 302 102 2 - - - - 17354 4 104 204 304 104 4 - - - - 17355 6 106 206 306 106 6 206 6 - - 17356 8 108 208 308 108 8 - - - - 17357 10 110 210 310 110 10 - - 310 10 17358 12 112 212 312 112 12 212 12 - - 17359 14 114 214 314 114 14 - - - - 17360 16 116 216 316 116 16 - - - - 17361 18 118 218 318 118 18 218 18 - - 17362 20 120 220 320 120 20 - - 320 20 17363 22 122 222 322 122 22 - - - - 17364 24 124 224 324 124 24 224 24 - - 17365 26 126 226 326 126 26 - - - - 17366 28 128 228 328 128 28 - - - - 17367 30 130 230 330 130 30 230 30 330 30 17368 32 132 232 332 132 32 - - - - 17369 34 134 234 334 134 34 - - - - 17370 36 136 236 336 136 36 236 36 - - 17371 38 138 238 338 138 38 - - - - 17372 40 140 240 340 140 40 - - 340 40 17373 42 142 242 342 142 42 242 42 - - 17374 44 144 244 344 144 44 - - - - 17375 46 146 246 346 146 46 - - - - 17376 48 148 248 348 148 48 248 48 - - 17377 50 150 250 350 150 50 - - 350 50 17378 52 152 252 352 152 52 - - - - 17379 54 154 254 354 154 54 254 54 - - 17380 56 156 256 356 156 56 - - - - 17381 58 158 258 358 158 58 - - - - 17382 60 160 260 360 160 60 260 60 360 60 17383 62 162 262 362 162 62 - - - - 17384 64 164 264 364 164 64 - - - - 17385 66 166 266 366 166 66 266 66 - - 17386 68 168 268 368 168 68 - - - - 17387 70 170 270 370 170 70 - - 370 70 17388 72 172 272 372 172 72 272 72 - - 17389 74 174 274 374 174 74 - - - - 17390 76 176 276 376 176 76 - - - - 17391 78 178 278 378 178 78 278 78 - - 17392 80 180 280 380 180 80 - - 380 80 17393 82 182 282 382 182 82 - - - - 17394 84 184 284 384 184 84 284 84 - - 17395 86 186 286 386 186 86 - - - - 17396 88 188 288 388 188 88 - - - - 17397 90 190 290 390 190 90 290 90 390 90 17398 92 192 292 392 192 92 - - - - 17399 94 194 294 394 194 94 - - - - 17400} 17401do_execsql_test joinD-586 { 17402 SELECT t1.*, t2.*, t3.*, t4.* 17403 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 17404 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 17405 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 17406 WHERE (t2.x>0 OR t2.x IS NULL) 17407 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17408} { 17409 1 101 201 301 - - - - - - 17410 2 102 202 302 102 2 - - - - 17411 3 103 203 303 - - 203 3 - - 17412 4 104 204 304 104 4 - - - - 17413 5 105 205 305 - - - - 305 5 17414 6 106 206 306 106 6 206 6 - - 17415 7 107 207 307 - - - - - - 17416 8 108 208 308 108 8 - - - - 17417 9 109 209 309 - - 209 9 - - 17418 10 110 210 310 110 10 - - 310 10 17419 11 111 211 311 - - - - - - 17420 12 112 212 312 112 12 212 12 - - 17421 13 113 213 313 - - - - - - 17422 14 114 214 314 114 14 - - - - 17423 15 115 215 315 - - 215 15 315 15 17424 16 116 216 316 116 16 - - - - 17425 17 117 217 317 - - - - - - 17426 18 118 218 318 118 18 218 18 - - 17427 19 119 219 319 - - - - - - 17428 20 120 220 320 120 20 - - 320 20 17429 21 121 221 321 - - 221 21 - - 17430 22 122 222 322 122 22 - - - - 17431 23 123 223 323 - - - - - - 17432 24 124 224 324 124 24 224 24 - - 17433 25 125 225 325 - - - - 325 25 17434 26 126 226 326 126 26 - - - - 17435 27 127 227 327 - - 227 27 - - 17436 28 128 228 328 128 28 - - - - 17437 29 129 229 329 - - - - - - 17438 30 130 230 330 130 30 230 30 330 30 17439 31 131 231 331 - - - - - - 17440 32 132 232 332 132 32 - - - - 17441 33 133 233 333 - - 233 33 - - 17442 34 134 234 334 134 34 - - - - 17443 35 135 235 335 - - - - 335 35 17444 36 136 236 336 136 36 236 36 - - 17445 37 137 237 337 - - - - - - 17446 38 138 238 338 138 38 - - - - 17447 39 139 239 339 - - 239 39 - - 17448 40 140 240 340 140 40 - - 340 40 17449 41 141 241 341 - - - - - - 17450 42 142 242 342 142 42 242 42 - - 17451 43 143 243 343 - - - - - - 17452 44 144 244 344 144 44 - - - - 17453 45 145 245 345 - - 245 45 345 45 17454 46 146 246 346 146 46 - - - - 17455 47 147 247 347 - - - - - - 17456 48 148 248 348 148 48 248 48 - - 17457 49 149 249 349 - - - - - - 17458 50 150 250 350 150 50 - - 350 50 17459 51 151 251 351 - - 251 51 - - 17460 52 152 252 352 152 52 - - - - 17461 53 153 253 353 - - - - - - 17462 54 154 254 354 154 54 254 54 - - 17463 55 155 255 355 - - - - 355 55 17464 56 156 256 356 156 56 - - - - 17465 57 157 257 357 - - 257 57 - - 17466 58 158 258 358 158 58 - - - - 17467 59 159 259 359 - - - - - - 17468 60 160 260 360 160 60 260 60 360 60 17469 61 161 261 361 - - - - - - 17470 62 162 262 362 162 62 - - - - 17471 63 163 263 363 - - 263 63 - - 17472 64 164 264 364 164 64 - - - - 17473 65 165 265 365 - - - - 365 65 17474 66 166 266 366 166 66 266 66 - - 17475 67 167 267 367 - - - - - - 17476 68 168 268 368 168 68 - - - - 17477 69 169 269 369 - - 269 69 - - 17478 70 170 270 370 170 70 - - 370 70 17479 71 171 271 371 - - - - - - 17480 72 172 272 372 172 72 272 72 - - 17481 73 173 273 373 - - - - - - 17482 74 174 274 374 174 74 - - - - 17483 75 175 275 375 - - 275 75 375 75 17484 76 176 276 376 176 76 - - - - 17485 77 177 277 377 - - - - - - 17486 78 178 278 378 178 78 278 78 - - 17487 79 179 279 379 - - - - - - 17488 80 180 280 380 180 80 - - 380 80 17489 81 181 281 381 - - 281 81 - - 17490 82 182 282 382 182 82 - - - - 17491 83 183 283 383 - - - - - - 17492 84 184 284 384 184 84 284 84 - - 17493 85 185 285 385 - - - - 385 85 17494 86 186 286 386 186 86 - - - - 17495 87 187 287 387 - - 287 87 - - 17496 88 188 288 388 188 88 - - - - 17497 89 189 289 389 - - - - - - 17498 90 190 290 390 190 90 290 90 390 90 17499 91 191 291 391 - - - - - - 17500 92 192 292 392 192 92 - - - - 17501 93 193 293 393 - - 293 93 - - 17502 94 194 294 394 194 94 - - - - 17503 95 195 295 395 - - - - 395 95 17504 96 - 296 396 - - - - - - 17505 97 197 - 397 - - - - - - 17506 98 198 298 - - - - - - - 17507 99 - - - - - - - - - 17508 - - - - - - 200 0 - - 17509 - - - - - - - - 300 0 17510} 17511do_execsql_test joinD-587 { 17512 SELECT t1.*, t2.*, t3.*, t4.* 17513 FROM t1 LEFT JOIN t2 ON true 17514 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 17515 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 17516 WHERE t1.b=t2.b AND t2.x>0 17517 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17518} { 17519 2 102 202 302 102 2 - - - - 17520 4 104 204 304 104 4 - - - - 17521 6 106 206 306 106 6 206 6 - - 17522 8 108 208 308 108 8 - - - - 17523 10 110 210 310 110 10 - - 310 10 17524 12 112 212 312 112 12 212 12 - - 17525 14 114 214 314 114 14 - - - - 17526 16 116 216 316 116 16 - - - - 17527 18 118 218 318 118 18 218 18 - - 17528 20 120 220 320 120 20 - - 320 20 17529 22 122 222 322 122 22 - - - - 17530 24 124 224 324 124 24 224 24 - - 17531 26 126 226 326 126 26 - - - - 17532 28 128 228 328 128 28 - - - - 17533 30 130 230 330 130 30 230 30 330 30 17534 32 132 232 332 132 32 - - - - 17535 34 134 234 334 134 34 - - - - 17536 36 136 236 336 136 36 236 36 - - 17537 38 138 238 338 138 38 - - - - 17538 40 140 240 340 140 40 - - 340 40 17539 42 142 242 342 142 42 242 42 - - 17540 44 144 244 344 144 44 - - - - 17541 46 146 246 346 146 46 - - - - 17542 48 148 248 348 148 48 248 48 - - 17543 50 150 250 350 150 50 - - 350 50 17544 52 152 252 352 152 52 - - - - 17545 54 154 254 354 154 54 254 54 - - 17546 56 156 256 356 156 56 - - - - 17547 58 158 258 358 158 58 - - - - 17548 60 160 260 360 160 60 260 60 360 60 17549 62 162 262 362 162 62 - - - - 17550 64 164 264 364 164 64 - - - - 17551 66 166 266 366 166 66 266 66 - - 17552 68 168 268 368 168 68 - - - - 17553 70 170 270 370 170 70 - - 370 70 17554 72 172 272 372 172 72 272 72 - - 17555 74 174 274 374 174 74 - - - - 17556 76 176 276 376 176 76 - - - - 17557 78 178 278 378 178 78 278 78 - - 17558 80 180 280 380 180 80 - - 380 80 17559 82 182 282 382 182 82 - - - - 17560 84 184 284 384 184 84 284 84 - - 17561 86 186 286 386 186 86 - - - - 17562 88 188 288 388 188 88 - - - - 17563 90 190 290 390 190 90 290 90 390 90 17564 92 192 292 392 192 92 - - - - 17565 94 194 294 394 194 94 - - - - 17566} 17567do_execsql_test joinD-588 { 17568 SELECT t1.*, t2.*, t3.*, t4.* 17569 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 17570 FULL JOIN t3 ON t1.c=t3.c 17571 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 17572 WHERE t3.y>0 17573 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17574} { 17575 3 103 203 303 - - 203 3 - - 17576 6 106 206 306 106 6 206 6 - - 17577 9 109 209 309 - - 209 9 - - 17578 12 112 212 312 112 12 212 12 - - 17579 15 115 215 315 - - 215 15 315 15 17580 18 118 218 318 118 18 218 18 - - 17581 21 121 221 321 - - 221 21 - - 17582 24 124 224 324 124 24 224 24 - - 17583 27 127 227 327 - - 227 27 - - 17584 30 130 230 330 130 30 230 30 330 30 17585 33 133 233 333 - - 233 33 - - 17586 36 136 236 336 136 36 236 36 - - 17587 39 139 239 339 - - 239 39 - - 17588 42 142 242 342 142 42 242 42 - - 17589 45 145 245 345 - - 245 45 345 45 17590 48 148 248 348 148 48 248 48 - - 17591 51 151 251 351 - - 251 51 - - 17592 54 154 254 354 154 54 254 54 - - 17593 57 157 257 357 - - 257 57 - - 17594 60 160 260 360 160 60 260 60 360 60 17595 63 163 263 363 - - 263 63 - - 17596 66 166 266 366 166 66 266 66 - - 17597 69 169 269 369 - - 269 69 - - 17598 72 172 272 372 172 72 272 72 - - 17599 75 175 275 375 - - 275 75 375 75 17600 78 178 278 378 178 78 278 78 - - 17601 81 181 281 381 - - 281 81 - - 17602 84 184 284 384 184 84 284 84 - - 17603 87 187 287 387 - - 287 87 - - 17604 90 190 290 390 190 90 290 90 390 90 17605 93 193 293 393 - - 293 93 - - 17606} 17607do_execsql_test joinD-589 { 17608 SELECT t1.*, t2.*, t3.*, t4.* 17609 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 17610 FULL JOIN t3 ON t1.c=t3.c 17611 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 17612 WHERE t3.y>0 OR t3.y IS NULL 17613 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17614} { 17615 1 101 201 301 - - - - - - 17616 2 102 202 302 102 2 - - - - 17617 3 103 203 303 - - 203 3 - - 17618 4 104 204 304 104 4 - - - - 17619 5 105 205 305 - - - - 305 5 17620 6 106 206 306 106 6 206 6 - - 17621 7 107 207 307 - - - - - - 17622 8 108 208 308 108 8 - - - - 17623 9 109 209 309 - - 209 9 - - 17624 10 110 210 310 110 10 - - 310 10 17625 11 111 211 311 - - - - - - 17626 12 112 212 312 112 12 212 12 - - 17627 13 113 213 313 - - - - - - 17628 14 114 214 314 114 14 - - - - 17629 15 115 215 315 - - 215 15 315 15 17630 16 116 216 316 116 16 - - - - 17631 17 117 217 317 - - - - - - 17632 18 118 218 318 118 18 218 18 - - 17633 19 119 219 319 - - - - - - 17634 20 120 220 320 120 20 - - 320 20 17635 21 121 221 321 - - 221 21 - - 17636 22 122 222 322 122 22 - - - - 17637 23 123 223 323 - - - - - - 17638 24 124 224 324 124 24 224 24 - - 17639 25 125 225 325 - - - - 325 25 17640 26 126 226 326 126 26 - - - - 17641 27 127 227 327 - - 227 27 - - 17642 28 128 228 328 128 28 - - - - 17643 29 129 229 329 - - - - - - 17644 30 130 230 330 130 30 230 30 330 30 17645 31 131 231 331 - - - - - - 17646 32 132 232 332 132 32 - - - - 17647 33 133 233 333 - - 233 33 - - 17648 34 134 234 334 134 34 - - - - 17649 35 135 235 335 - - - - 335 35 17650 36 136 236 336 136 36 236 36 - - 17651 37 137 237 337 - - - - - - 17652 38 138 238 338 138 38 - - - - 17653 39 139 239 339 - - 239 39 - - 17654 40 140 240 340 140 40 - - 340 40 17655 41 141 241 341 - - - - - - 17656 42 142 242 342 142 42 242 42 - - 17657 43 143 243 343 - - - - - - 17658 44 144 244 344 144 44 - - - - 17659 45 145 245 345 - - 245 45 345 45 17660 46 146 246 346 146 46 - - - - 17661 47 147 247 347 - - - - - - 17662 48 148 248 348 148 48 248 48 - - 17663 49 149 249 349 - - - - - - 17664 50 150 250 350 150 50 - - 350 50 17665 51 151 251 351 - - 251 51 - - 17666 52 152 252 352 152 52 - - - - 17667 53 153 253 353 - - - - - - 17668 54 154 254 354 154 54 254 54 - - 17669 55 155 255 355 - - - - 355 55 17670 56 156 256 356 156 56 - - - - 17671 57 157 257 357 - - 257 57 - - 17672 58 158 258 358 158 58 - - - - 17673 59 159 259 359 - - - - - - 17674 60 160 260 360 160 60 260 60 360 60 17675 61 161 261 361 - - - - - - 17676 62 162 262 362 162 62 - - - - 17677 63 163 263 363 - - 263 63 - - 17678 64 164 264 364 164 64 - - - - 17679 65 165 265 365 - - - - 365 65 17680 66 166 266 366 166 66 266 66 - - 17681 67 167 267 367 - - - - - - 17682 68 168 268 368 168 68 - - - - 17683 69 169 269 369 - - 269 69 - - 17684 70 170 270 370 170 70 - - 370 70 17685 71 171 271 371 - - - - - - 17686 72 172 272 372 172 72 272 72 - - 17687 73 173 273 373 - - - - - - 17688 74 174 274 374 174 74 - - - - 17689 75 175 275 375 - - 275 75 375 75 17690 76 176 276 376 176 76 - - - - 17691 77 177 277 377 - - - - - - 17692 78 178 278 378 178 78 278 78 - - 17693 79 179 279 379 - - - - - - 17694 80 180 280 380 180 80 - - 380 80 17695 81 181 281 381 - - 281 81 - - 17696 82 182 282 382 182 82 - - - - 17697 83 183 283 383 - - - - - - 17698 84 184 284 384 184 84 284 84 - - 17699 85 185 285 385 - - - - 385 85 17700 86 186 286 386 186 86 - - - - 17701 87 187 287 387 - - 287 87 - - 17702 88 188 288 388 188 88 - - - - 17703 89 189 289 389 - - - - - - 17704 90 190 290 390 190 90 290 90 390 90 17705 91 191 291 391 - - - - - - 17706 92 192 292 392 192 92 - - - - 17707 93 193 293 393 - - 293 93 - - 17708 94 194 294 394 194 94 - - - - 17709 95 195 295 395 - - - - 395 95 17710 96 - 296 396 - - - - - - 17711 97 197 - 397 - - - - - - 17712 98 198 298 - - - - - - - 17713 99 - - - - - - - - - 17714 - - - - - - - - 300 0 17715} 17716do_execsql_test joinD-590 { 17717 SELECT t1.*, t2.*, t3.*, t4.* 17718 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 17719 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 17720 FULL JOIN t4 ON t1.d=t4.d 17721 WHERE t4.z>0 17722 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17723} { 17724 5 105 205 305 - - - - 305 5 17725 10 110 210 310 110 10 - - 310 10 17726 15 115 215 315 - - 215 15 315 15 17727 20 120 220 320 120 20 - - 320 20 17728 25 125 225 325 - - - - 325 25 17729 30 130 230 330 130 30 230 30 330 30 17730 35 135 235 335 - - - - 335 35 17731 40 140 240 340 140 40 - - 340 40 17732 45 145 245 345 - - 245 45 345 45 17733 50 150 250 350 150 50 - - 350 50 17734 55 155 255 355 - - - - 355 55 17735 60 160 260 360 160 60 260 60 360 60 17736 65 165 265 365 - - - - 365 65 17737 70 170 270 370 170 70 - - 370 70 17738 75 175 275 375 - - 275 75 375 75 17739 80 180 280 380 180 80 - - 380 80 17740 85 185 285 385 - - - - 385 85 17741 90 190 290 390 190 90 290 90 390 90 17742 95 195 295 395 - - - - 395 95 17743} 17744do_execsql_test joinD-591 { 17745 SELECT t1.*, t2.*, t3.*, t4.* 17746 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 17747 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 17748 FULL JOIN t4 ON t1.d=t4.d 17749 WHERE t4.z IS NULL OR t4.z>0 17750 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17751} { 17752 1 101 201 301 - - - - - - 17753 2 102 202 302 102 2 - - - - 17754 3 103 203 303 - - 203 3 - - 17755 4 104 204 304 104 4 - - - - 17756 5 105 205 305 - - - - 305 5 17757 6 106 206 306 106 6 206 6 - - 17758 7 107 207 307 - - - - - - 17759 8 108 208 308 108 8 - - - - 17760 9 109 209 309 - - 209 9 - - 17761 10 110 210 310 110 10 - - 310 10 17762 11 111 211 311 - - - - - - 17763 12 112 212 312 112 12 212 12 - - 17764 13 113 213 313 - - - - - - 17765 14 114 214 314 114 14 - - - - 17766 15 115 215 315 - - 215 15 315 15 17767 16 116 216 316 116 16 - - - - 17768 17 117 217 317 - - - - - - 17769 18 118 218 318 118 18 218 18 - - 17770 19 119 219 319 - - - - - - 17771 20 120 220 320 120 20 - - 320 20 17772 21 121 221 321 - - 221 21 - - 17773 22 122 222 322 122 22 - - - - 17774 23 123 223 323 - - - - - - 17775 24 124 224 324 124 24 224 24 - - 17776 25 125 225 325 - - - - 325 25 17777 26 126 226 326 126 26 - - - - 17778 27 127 227 327 - - 227 27 - - 17779 28 128 228 328 128 28 - - - - 17780 29 129 229 329 - - - - - - 17781 30 130 230 330 130 30 230 30 330 30 17782 31 131 231 331 - - - - - - 17783 32 132 232 332 132 32 - - - - 17784 33 133 233 333 - - 233 33 - - 17785 34 134 234 334 134 34 - - - - 17786 35 135 235 335 - - - - 335 35 17787 36 136 236 336 136 36 236 36 - - 17788 37 137 237 337 - - - - - - 17789 38 138 238 338 138 38 - - - - 17790 39 139 239 339 - - 239 39 - - 17791 40 140 240 340 140 40 - - 340 40 17792 41 141 241 341 - - - - - - 17793 42 142 242 342 142 42 242 42 - - 17794 43 143 243 343 - - - - - - 17795 44 144 244 344 144 44 - - - - 17796 45 145 245 345 - - 245 45 345 45 17797 46 146 246 346 146 46 - - - - 17798 47 147 247 347 - - - - - - 17799 48 148 248 348 148 48 248 48 - - 17800 49 149 249 349 - - - - - - 17801 50 150 250 350 150 50 - - 350 50 17802 51 151 251 351 - - 251 51 - - 17803 52 152 252 352 152 52 - - - - 17804 53 153 253 353 - - - - - - 17805 54 154 254 354 154 54 254 54 - - 17806 55 155 255 355 - - - - 355 55 17807 56 156 256 356 156 56 - - - - 17808 57 157 257 357 - - 257 57 - - 17809 58 158 258 358 158 58 - - - - 17810 59 159 259 359 - - - - - - 17811 60 160 260 360 160 60 260 60 360 60 17812 61 161 261 361 - - - - - - 17813 62 162 262 362 162 62 - - - - 17814 63 163 263 363 - - 263 63 - - 17815 64 164 264 364 164 64 - - - - 17816 65 165 265 365 - - - - 365 65 17817 66 166 266 366 166 66 266 66 - - 17818 67 167 267 367 - - - - - - 17819 68 168 268 368 168 68 - - - - 17820 69 169 269 369 - - 269 69 - - 17821 70 170 270 370 170 70 - - 370 70 17822 71 171 271 371 - - - - - - 17823 72 172 272 372 172 72 272 72 - - 17824 73 173 273 373 - - - - - - 17825 74 174 274 374 174 74 - - - - 17826 75 175 275 375 - - 275 75 375 75 17827 76 176 276 376 176 76 - - - - 17828 77 177 277 377 - - - - - - 17829 78 178 278 378 178 78 278 78 - - 17830 79 179 279 379 - - - - - - 17831 80 180 280 380 180 80 - - 380 80 17832 81 181 281 381 - - 281 81 - - 17833 82 182 282 382 182 82 - - - - 17834 83 183 283 383 - - - - - - 17835 84 184 284 384 184 84 284 84 - - 17836 85 185 285 385 - - - - 385 85 17837 86 186 286 386 186 86 - - - - 17838 87 187 287 387 - - 287 87 - - 17839 88 188 288 388 188 88 - - - - 17840 89 189 289 389 - - - - - - 17841 90 190 290 390 190 90 290 90 390 90 17842 91 191 291 391 - - - - - - 17843 92 192 292 392 192 92 - - - - 17844 93 193 293 393 - - 293 93 - - 17845 94 194 294 394 194 94 - - - - 17846 95 195 295 395 - - - - 395 95 17847 96 - 296 396 - - - - - - 17848 97 197 - 397 - - - - - - 17849 98 198 298 - - - - - - - 17850 99 - - - - - - - - - 17851 - - - - - - 200 0 - - 17852} 17853do_execsql_test joinD-592 { 17854 SELECT t1.*, t2.*, t3.*, t4.* 17855 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 17856 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 17857 FULL JOIN t4 ON t1.d=t4.d 17858 WHERE t2.x>0 AND t4.z>0 17859 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17860} { 17861 10 110 210 310 110 10 - - 310 10 17862 20 120 220 320 120 20 - - 320 20 17863 30 130 230 330 130 30 230 30 330 30 17864 40 140 240 340 140 40 - - 340 40 17865 50 150 250 350 150 50 - - 350 50 17866 60 160 260 360 160 60 260 60 360 60 17867 70 170 270 370 170 70 - - 370 70 17868 80 180 280 380 180 80 - - 380 80 17869 90 190 290 390 190 90 290 90 390 90 17870} 17871do_execsql_test joinD-593 { 17872 SELECT t1.*, t2.*, t3.*, t4.* 17873 FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0 17874 FULL JOIN t3 ON t1.c=t3.c 17875 FULL JOIN t4 ON t1.d=t4.d 17876 WHERE t4.z>0 AND t3.y>0 17877 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17878} { 17879 15 115 215 315 - - 215 15 315 15 17880 30 130 230 330 130 30 230 30 330 30 17881 45 145 245 345 - - 245 45 345 45 17882 60 160 260 360 160 60 260 60 360 60 17883 75 175 275 375 - - 275 75 375 75 17884 90 190 290 390 190 90 290 90 390 90 17885} 17886do_execsql_test joinD-594 { 17887 SELECT t1.*, t2.*, t3.*, t4.* 17888 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 17889 FULL JOIN t3 ON t1.c=t3.c 17890 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 17891 WHERE t2.x>0 AND t3.y>0 17892 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17893} { 17894 6 106 206 306 106 6 206 6 - - 17895 12 112 212 312 112 12 212 12 - - 17896 18 118 218 318 118 18 218 18 - - 17897 24 124 224 324 124 24 224 24 - - 17898 30 130 230 330 130 30 230 30 330 30 17899 36 136 236 336 136 36 236 36 - - 17900 42 142 242 342 142 42 242 42 - - 17901 48 148 248 348 148 48 248 48 - - 17902 54 154 254 354 154 54 254 54 - - 17903 60 160 260 360 160 60 260 60 360 60 17904 66 166 266 366 166 66 266 66 - - 17905 72 172 272 372 172 72 272 72 - - 17906 78 178 278 378 178 78 278 78 - - 17907 84 184 284 384 184 84 284 84 - - 17908 90 190 290 390 190 90 290 90 390 90 17909} 17910do_execsql_test joinD-595 { 17911 SELECT t1.*, t2.*, t3.*, t4.* 17912 FROM t1 LEFT JOIN t2 ON t1.b=t2.b 17913 FULL JOIN t3 ON t1.c=t3.c 17914 FULL JOIN t4 ON t1.d=t4.d 17915 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 17916 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17917} { 17918 30 130 230 330 130 30 230 30 330 30 17919 60 160 260 360 160 60 260 60 360 60 17920 90 190 290 390 190 90 290 90 390 90 17921} 17922do_execsql_test joinD-596 { 17923 SELECT t1.*, t2.*, t3.*, t4.* 17924 FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 17925 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 17926 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 17927 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 17928} { 17929 0 100 200 300 - - - - - - 17930 1 101 201 301 - - - - - - 17931 2 102 202 302 102 2 - - - - 17932 3 103 203 303 - - 203 3 - - 17933 4 104 204 304 104 4 - - - - 17934 5 105 205 305 - - - - 305 5 17935 6 106 206 306 106 6 206 6 - - 17936 7 107 207 307 - - - - - - 17937 8 108 208 308 108 8 - - - - 17938 9 109 209 309 - - 209 9 - - 17939 10 110 210 310 110 10 - - 310 10 17940 11 111 211 311 - - - - - - 17941 12 112 212 312 112 12 212 12 - - 17942 13 113 213 313 - - - - - - 17943 14 114 214 314 114 14 - - - - 17944 15 115 215 315 - - 215 15 315 15 17945 16 116 216 316 116 16 - - - - 17946 17 117 217 317 - - - - - - 17947 18 118 218 318 118 18 218 18 - - 17948 19 119 219 319 - - - - - - 17949 20 120 220 320 120 20 - - 320 20 17950 21 121 221 321 - - 221 21 - - 17951 22 122 222 322 122 22 - - - - 17952 23 123 223 323 - - - - - - 17953 24 124 224 324 124 24 224 24 - - 17954 25 125 225 325 - - - - 325 25 17955 26 126 226 326 126 26 - - - - 17956 27 127 227 327 - - 227 27 - - 17957 28 128 228 328 128 28 - - - - 17958 29 129 229 329 - - - - - - 17959 30 130 230 330 130 30 230 30 330 30 17960 31 131 231 331 - - - - - - 17961 32 132 232 332 132 32 - - - - 17962 33 133 233 333 - - 233 33 - - 17963 34 134 234 334 134 34 - - - - 17964 35 135 235 335 - - - - 335 35 17965 36 136 236 336 136 36 236 36 - - 17966 37 137 237 337 - - - - - - 17967 38 138 238 338 138 38 - - - - 17968 39 139 239 339 - - 239 39 - - 17969 40 140 240 340 140 40 - - 340 40 17970 41 141 241 341 - - - - - - 17971 42 142 242 342 142 42 242 42 - - 17972 43 143 243 343 - - - - - - 17973 44 144 244 344 144 44 - - - - 17974 45 145 245 345 - - 245 45 345 45 17975 46 146 246 346 146 46 - - - - 17976 47 147 247 347 - - - - - - 17977 48 148 248 348 148 48 248 48 - - 17978 49 149 249 349 - - - - - - 17979 50 150 250 350 150 50 - - 350 50 17980 51 151 251 351 - - 251 51 - - 17981 52 152 252 352 152 52 - - - - 17982 53 153 253 353 - - - - - - 17983 54 154 254 354 154 54 254 54 - - 17984 55 155 255 355 - - - - 355 55 17985 56 156 256 356 156 56 - - - - 17986 57 157 257 357 - - 257 57 - - 17987 58 158 258 358 158 58 - - - - 17988 59 159 259 359 - - - - - - 17989 60 160 260 360 160 60 260 60 360 60 17990 61 161 261 361 - - - - - - 17991 62 162 262 362 162 62 - - - - 17992 63 163 263 363 - - 263 63 - - 17993 64 164 264 364 164 64 - - - - 17994 65 165 265 365 - - - - 365 65 17995 66 166 266 366 166 66 266 66 - - 17996 67 167 267 367 - - - - - - 17997 68 168 268 368 168 68 - - - - 17998 69 169 269 369 - - 269 69 - - 17999 70 170 270 370 170 70 - - 370 70 18000 71 171 271 371 - - - - - - 18001 72 172 272 372 172 72 272 72 - - 18002 73 173 273 373 - - - - - - 18003 74 174 274 374 174 74 - - - - 18004 75 175 275 375 - - 275 75 375 75 18005 76 176 276 376 176 76 - - - - 18006 77 177 277 377 - - - - - - 18007 78 178 278 378 178 78 278 78 - - 18008 79 179 279 379 - - - - - - 18009 80 180 280 380 180 80 - - 380 80 18010 81 181 281 381 - - 281 81 - - 18011 82 182 282 382 182 82 - - - - 18012 83 183 283 383 - - - - - - 18013 84 184 284 384 184 84 284 84 - - 18014 85 185 285 385 - - - - 385 85 18015 86 186 286 386 186 86 - - - - 18016 87 187 287 387 - - 287 87 - - 18017 88 188 288 388 188 88 - - - - 18018 89 189 289 389 - - - - - - 18019 90 190 290 390 190 90 290 90 390 90 18020 91 191 291 391 - - - - - - 18021 92 192 292 392 192 92 - - - - 18022 93 193 293 393 - - 293 93 - - 18023 94 194 294 394 194 94 - - - - 18024 95 195 295 395 - - - - 395 95 18025 96 - 296 396 - - - - - - 18026 97 197 - 397 - - - - - - 18027 98 198 298 - - - - - - - 18028 99 - - - - - - - - - 18029 - - - - - - 200 0 - - 18030 - - - - - - - - 300 0 18031} 18032do_execsql_test joinD-597 { 18033 SELECT t1.*, t2.*, t3.*, t4.* 18034 FROM t1 LEFT JOIN t2 ON t2.x>0 18035 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 18036 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 18037 WHERE t1.b IS NOT DISTINCT FROM t2.b 18038 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18039} { 18040 2 102 202 302 102 2 - - - - 18041 4 104 204 304 104 4 - - - - 18042 6 106 206 306 106 6 206 6 - - 18043 8 108 208 308 108 8 - - - - 18044 10 110 210 310 110 10 - - 310 10 18045 12 112 212 312 112 12 212 12 - - 18046 14 114 214 314 114 14 - - - - 18047 16 116 216 316 116 16 - - - - 18048 18 118 218 318 118 18 218 18 - - 18049 20 120 220 320 120 20 - - 320 20 18050 22 122 222 322 122 22 - - - - 18051 24 124 224 324 124 24 224 24 - - 18052 26 126 226 326 126 26 - - - - 18053 28 128 228 328 128 28 - - - - 18054 30 130 230 330 130 30 230 30 330 30 18055 32 132 232 332 132 32 - - - - 18056 34 134 234 334 134 34 - - - - 18057 36 136 236 336 136 36 236 36 - - 18058 38 138 238 338 138 38 - - - - 18059 40 140 240 340 140 40 - - 340 40 18060 42 142 242 342 142 42 242 42 - - 18061 44 144 244 344 144 44 - - - - 18062 46 146 246 346 146 46 - - - - 18063 48 148 248 348 148 48 248 48 - - 18064 50 150 250 350 150 50 - - 350 50 18065 52 152 252 352 152 52 - - - - 18066 54 154 254 354 154 54 254 54 - - 18067 56 156 256 356 156 56 - - - - 18068 58 158 258 358 158 58 - - - - 18069 60 160 260 360 160 60 260 60 360 60 18070 62 162 262 362 162 62 - - - - 18071 64 164 264 364 164 64 - - - - 18072 66 166 266 366 166 66 266 66 - - 18073 68 168 268 368 168 68 - - - - 18074 70 170 270 370 170 70 - - 370 70 18075 72 172 272 372 172 72 272 72 - - 18076 74 174 274 374 174 74 - - - - 18077 76 176 276 376 176 76 - - - - 18078 78 178 278 378 178 78 278 78 - - 18079 80 180 280 380 180 80 - - 380 80 18080 82 182 282 382 182 82 - - - - 18081 84 184 284 384 184 84 284 84 - - 18082 86 186 286 386 186 86 - - - - 18083 88 188 288 388 188 88 - - - - 18084 90 190 290 390 190 90 290 90 390 90 18085 92 192 292 392 192 92 - - - - 18086 94 194 294 394 194 94 - - - - 18087 - - - - - - 200 0 - - 18088 - - - - - - - - 300 0 18089} 18090do_execsql_test joinD-598 { 18091 SELECT t1.*, t2.*, t3.*, t4.* 18092 FROM t1 LEFT JOIN t2 ON t2.x>0 18093 FULL JOIN t3 ON t3.y>0 18094 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 18095 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 18096 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18097} { 18098 6 106 206 306 106 6 206 6 - - 18099 12 112 212 312 112 12 212 12 - - 18100 18 118 218 318 118 18 218 18 - - 18101 24 124 224 324 124 24 224 24 - - 18102 30 130 230 330 130 30 230 30 330 30 18103 36 136 236 336 136 36 236 36 - - 18104 42 142 242 342 142 42 242 42 - - 18105 48 148 248 348 148 48 248 48 - - 18106 54 154 254 354 154 54 254 54 - - 18107 60 160 260 360 160 60 260 60 360 60 18108 66 166 266 366 166 66 266 66 - - 18109 72 172 272 372 172 72 272 72 - - 18110 78 178 278 378 178 78 278 78 - - 18111 84 184 284 384 184 84 284 84 - - 18112 90 190 290 390 190 90 290 90 390 90 18113} 18114do_execsql_test joinD-599 { 18115 SELECT t1.*, t2.*, t3.*, t4.* 18116 FROM t1 LEFT JOIN t2 ON t2.x>0 18117 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 18118 FULL JOIN t4 ON t4.z>0 18119 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 18120 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18121} { 18122 10 110 210 310 110 10 - - 310 10 18123 20 120 220 320 120 20 - - 320 20 18124 30 130 230 330 130 30 230 30 330 30 18125 40 140 240 340 140 40 - - 340 40 18126 50 150 250 350 150 50 - - 350 50 18127 60 160 260 360 160 60 260 60 360 60 18128 70 170 270 370 170 70 - - 370 70 18129 80 180 280 380 180 80 - - 380 80 18130 90 190 290 390 190 90 290 90 390 90 18131} 18132do_execsql_test joinD-600 { 18133 SELECT t1.*, t2.*, t3.*, t4.* 18134 FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 18135 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 18136 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 18137 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18138} { 18139 0 100 200 300 - - - - - - 18140 1 101 201 301 - - - - - - 18141 2 102 202 302 102 2 - - - - 18142 3 103 203 303 - - 203 3 - - 18143 4 104 204 304 104 4 - - - - 18144 5 105 205 305 - - - - 305 5 18145 6 106 206 306 106 6 206 6 - - 18146 7 107 207 307 - - - - - - 18147 8 108 208 308 108 8 - - - - 18148 9 109 209 309 - - 209 9 - - 18149 10 110 210 310 110 10 - - 310 10 18150 11 111 211 311 - - - - - - 18151 12 112 212 312 112 12 212 12 - - 18152 13 113 213 313 - - - - - - 18153 14 114 214 314 114 14 - - - - 18154 15 115 215 315 - - 215 15 315 15 18155 16 116 216 316 116 16 - - - - 18156 17 117 217 317 - - - - - - 18157 18 118 218 318 118 18 218 18 - - 18158 19 119 219 319 - - - - - - 18159 20 120 220 320 120 20 - - 320 20 18160 21 121 221 321 - - 221 21 - - 18161 22 122 222 322 122 22 - - - - 18162 23 123 223 323 - - - - - - 18163 24 124 224 324 124 24 224 24 - - 18164 25 125 225 325 - - - - 325 25 18165 26 126 226 326 126 26 - - - - 18166 27 127 227 327 - - 227 27 - - 18167 28 128 228 328 128 28 - - - - 18168 29 129 229 329 - - - - - - 18169 30 130 230 330 130 30 230 30 330 30 18170 31 131 231 331 - - - - - - 18171 32 132 232 332 132 32 - - - - 18172 33 133 233 333 - - 233 33 - - 18173 34 134 234 334 134 34 - - - - 18174 35 135 235 335 - - - - 335 35 18175 36 136 236 336 136 36 236 36 - - 18176 37 137 237 337 - - - - - - 18177 38 138 238 338 138 38 - - - - 18178 39 139 239 339 - - 239 39 - - 18179 40 140 240 340 140 40 - - 340 40 18180 41 141 241 341 - - - - - - 18181 42 142 242 342 142 42 242 42 - - 18182 43 143 243 343 - - - - - - 18183 44 144 244 344 144 44 - - - - 18184 45 145 245 345 - - 245 45 345 45 18185 46 146 246 346 146 46 - - - - 18186 47 147 247 347 - - - - - - 18187 48 148 248 348 148 48 248 48 - - 18188 49 149 249 349 - - - - - - 18189 50 150 250 350 150 50 - - 350 50 18190 51 151 251 351 - - 251 51 - - 18191 52 152 252 352 152 52 - - - - 18192 53 153 253 353 - - - - - - 18193 54 154 254 354 154 54 254 54 - - 18194 55 155 255 355 - - - - 355 55 18195 56 156 256 356 156 56 - - - - 18196 57 157 257 357 - - 257 57 - - 18197 58 158 258 358 158 58 - - - - 18198 59 159 259 359 - - - - - - 18199 60 160 260 360 160 60 260 60 360 60 18200 61 161 261 361 - - - - - - 18201 62 162 262 362 162 62 - - - - 18202 63 163 263 363 - - 263 63 - - 18203 64 164 264 364 164 64 - - - - 18204 65 165 265 365 - - - - 365 65 18205 66 166 266 366 166 66 266 66 - - 18206 67 167 267 367 - - - - - - 18207 68 168 268 368 168 68 - - - - 18208 69 169 269 369 - - 269 69 - - 18209 70 170 270 370 170 70 - - 370 70 18210 71 171 271 371 - - - - - - 18211 72 172 272 372 172 72 272 72 - - 18212 73 173 273 373 - - - - - - 18213 74 174 274 374 174 74 - - - - 18214 75 175 275 375 - - 275 75 375 75 18215 76 176 276 376 176 76 - - - - 18216 77 177 277 377 - - - - - - 18217 78 178 278 378 178 78 278 78 - - 18218 79 179 279 379 - - - - - - 18219 80 180 280 380 180 80 - - 380 80 18220 81 181 281 381 - - 281 81 - - 18221 82 182 282 382 182 82 - - - - 18222 83 183 283 383 - - - - - - 18223 84 184 284 384 184 84 284 84 - - 18224 85 185 285 385 - - - - 385 85 18225 86 186 286 386 186 86 - - - - 18226 87 187 287 387 - - 287 87 - - 18227 88 188 288 388 188 88 - - - - 18228 89 189 289 389 - - - - - - 18229 90 190 290 390 190 90 290 90 390 90 18230 91 191 291 391 - - - - - - 18231 92 192 292 392 192 92 - - - - 18232 93 193 293 393 - - 293 93 - - 18233 94 194 294 394 194 94 - - - - 18234 95 195 295 395 - - - - 395 95 18235 96 - 296 396 - - - - - - 18236 97 197 - 397 - - - - - - 18237 98 198 298 - - - - - - - 18238 99 - - - - - - - - - 18239 - - - - - - 200 0 - - 18240 - - - - - - - - 300 0 18241} 18242do_execsql_test joinD-601 { 18243 SELECT t1.*, t2.*, t3.*, t4.* 18244 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18245 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18246 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18247 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18248} { 18249 30 130 230 330 130 30 230 30 330 30 18250 60 160 260 360 160 60 260 60 360 60 18251 90 190 290 390 190 90 290 90 390 90 18252} 18253do_execsql_test joinD-602 { 18254 SELECT t1.*, t2.*, t3.*, t4.* 18255 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 18256 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18257 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18258 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18259} { 18260 30 130 230 330 130 30 230 30 330 30 18261 60 160 260 360 160 60 260 60 360 60 18262 90 190 290 390 190 90 290 90 390 90 18263} 18264do_execsql_test joinD-603 { 18265 SELECT t1.*, t2.*, t3.*, t4.* 18266 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18267 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18268 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18269 WHERE t2.x>0 18270 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18271} { 18272 30 130 230 330 130 30 230 30 330 30 18273 60 160 260 360 160 60 260 60 360 60 18274 90 190 290 390 190 90 290 90 390 90 18275} 18276do_execsql_test joinD-604 { 18277 SELECT t1.*, t2.*, t3.*, t4.* 18278 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18279 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18280 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18281 WHERE (t2.x>0 OR t2.x IS NULL) 18282 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18283} { 18284 30 130 230 330 130 30 230 30 330 30 18285 60 160 260 360 160 60 260 60 360 60 18286 90 190 290 390 190 90 290 90 390 90 18287} 18288do_execsql_test joinD-605 { 18289 SELECT t1.*, t2.*, t3.*, t4.* 18290 FROM t1 RIGHT JOIN t2 ON true 18291 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18292 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18293 WHERE t1.b=t2.b AND t2.x>0 18294 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18295} { 18296 30 130 230 330 130 30 230 30 330 30 18297 60 160 260 360 160 60 260 60 360 60 18298 90 190 290 390 190 90 290 90 390 90 18299} 18300do_execsql_test joinD-606 { 18301 SELECT t1.*, t2.*, t3.*, t4.* 18302 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18303 INNER JOIN t3 ON t1.c=t3.c 18304 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18305 WHERE t3.y>0 18306 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18307} { 18308 30 130 230 330 130 30 230 30 330 30 18309 60 160 260 360 160 60 260 60 360 60 18310 90 190 290 390 190 90 290 90 390 90 18311} 18312do_execsql_test joinD-607 { 18313 SELECT t1.*, t2.*, t3.*, t4.* 18314 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18315 INNER JOIN t3 ON t1.c=t3.c 18316 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18317 WHERE t3.y>0 OR t3.y IS NULL 18318 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18319} { 18320 30 130 230 330 130 30 230 30 330 30 18321 60 160 260 360 160 60 260 60 360 60 18322 90 190 290 390 190 90 290 90 390 90 18323} 18324do_execsql_test joinD-608 { 18325 SELECT t1.*, t2.*, t3.*, t4.* 18326 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18327 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18328 INNER JOIN t4 ON t1.d=t4.d 18329 WHERE t4.z>0 18330 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18331} { 18332 30 130 230 330 130 30 230 30 330 30 18333 60 160 260 360 160 60 260 60 360 60 18334 90 190 290 390 190 90 290 90 390 90 18335} 18336do_execsql_test joinD-609 { 18337 SELECT t1.*, t2.*, t3.*, t4.* 18338 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18339 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18340 INNER JOIN t4 ON t1.d=t4.d 18341 WHERE t4.z IS NULL OR t4.z>0 18342 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18343} { 18344 30 130 230 330 130 30 230 30 330 30 18345 60 160 260 360 160 60 260 60 360 60 18346 90 190 290 390 190 90 290 90 390 90 18347} 18348do_execsql_test joinD-610 { 18349 SELECT t1.*, t2.*, t3.*, t4.* 18350 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18351 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18352 INNER JOIN t4 ON t1.d=t4.d 18353 WHERE t2.x>0 AND t4.z>0 18354 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18355} { 18356 30 130 230 330 130 30 230 30 330 30 18357 60 160 260 360 160 60 260 60 360 60 18358 90 190 290 390 190 90 290 90 390 90 18359} 18360do_execsql_test joinD-611 { 18361 SELECT t1.*, t2.*, t3.*, t4.* 18362 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18363 INNER JOIN t3 ON t1.c=t3.c 18364 INNER JOIN t4 ON t1.d=t4.d 18365 WHERE t4.z>0 AND t3.y>0 18366 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18367} { 18368 30 130 230 330 130 30 230 30 330 30 18369 60 160 260 360 160 60 260 60 360 60 18370 90 190 290 390 190 90 290 90 390 90 18371} 18372do_execsql_test joinD-612 { 18373 SELECT t1.*, t2.*, t3.*, t4.* 18374 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18375 INNER JOIN t3 ON t1.c=t3.c 18376 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18377 WHERE t2.x>0 AND t3.y>0 18378 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18379} { 18380 30 130 230 330 130 30 230 30 330 30 18381 60 160 260 360 160 60 260 60 360 60 18382 90 190 290 390 190 90 290 90 390 90 18383} 18384do_execsql_test joinD-613 { 18385 SELECT t1.*, t2.*, t3.*, t4.* 18386 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18387 INNER JOIN t3 ON t1.c=t3.c 18388 INNER JOIN t4 ON t1.d=t4.d 18389 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 18390 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18391} { 18392 30 130 230 330 130 30 230 30 330 30 18393 60 160 260 360 160 60 260 60 360 60 18394 90 190 290 390 190 90 290 90 390 90 18395} 18396do_execsql_test joinD-614 { 18397 SELECT t1.*, t2.*, t3.*, t4.* 18398 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 18399 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 18400 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 18401 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18402} { 18403 30 130 230 330 130 30 230 30 330 30 18404 60 160 260 360 160 60 260 60 360 60 18405 90 190 290 390 190 90 290 90 390 90 18406} 18407do_execsql_test joinD-615 { 18408 SELECT t1.*, t2.*, t3.*, t4.* 18409 FROM t1 RIGHT JOIN t2 ON t2.x>0 18410 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 18411 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 18412 WHERE t1.b IS NOT DISTINCT FROM t2.b 18413 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18414} { 18415 30 130 230 330 130 30 230 30 330 30 18416 60 160 260 360 160 60 260 60 360 60 18417 90 190 290 390 190 90 290 90 390 90 18418} 18419do_execsql_test joinD-616 { 18420 SELECT t1.*, t2.*, t3.*, t4.* 18421 FROM t1 RIGHT JOIN t2 ON t2.x>0 18422 INNER JOIN t3 ON t3.y>0 18423 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 18424 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 18425 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18426} { 18427 30 130 230 330 130 30 230 30 330 30 18428 60 160 260 360 160 60 260 60 360 60 18429 90 190 290 390 190 90 290 90 390 90 18430} 18431do_execsql_test joinD-617 { 18432 SELECT t1.*, t2.*, t3.*, t4.* 18433 FROM t1 RIGHT JOIN t2 ON t2.x>0 18434 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 18435 INNER JOIN t4 ON t4.z>0 18436 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 18437 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18438} { 18439 30 130 230 330 130 30 230 30 330 30 18440 60 160 260 360 160 60 260 60 360 60 18441 90 190 290 390 190 90 290 90 390 90 18442} 18443do_execsql_test joinD-618 { 18444 SELECT t1.*, t2.*, t3.*, t4.* 18445 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 18446 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18447 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18448 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18449} { 18450 30 130 230 330 130 30 230 30 330 30 18451 60 160 260 360 160 60 260 60 360 60 18452 90 190 290 390 190 90 290 90 390 90 18453} 18454do_execsql_test joinD-619 { 18455 SELECT t1.*, t2.*, t3.*, t4.* 18456 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18457 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 18458 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 18459 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18460} { 18461 30 130 230 330 130 30 230 30 330 30 18462 60 160 260 360 160 60 260 60 360 60 18463 90 190 290 390 190 90 290 90 390 90 18464} 18465do_execsql_test joinD-620 { 18466 SELECT t1.*, t2.*, t3.*, t4.* 18467 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18468 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18469 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18470 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18471} { 18472 6 106 206 306 106 6 206 6 - - 18473 12 112 212 312 112 12 212 12 - - 18474 18 118 218 318 118 18 218 18 - - 18475 24 124 224 324 124 24 224 24 - - 18476 30 130 230 330 130 30 230 30 330 30 18477 36 136 236 336 136 36 236 36 - - 18478 42 142 242 342 142 42 242 42 - - 18479 48 148 248 348 148 48 248 48 - - 18480 54 154 254 354 154 54 254 54 - - 18481 60 160 260 360 160 60 260 60 360 60 18482 66 166 266 366 166 66 266 66 - - 18483 72 172 272 372 172 72 272 72 - - 18484 78 178 278 378 178 78 278 78 - - 18485 84 184 284 384 184 84 284 84 - - 18486 90 190 290 390 190 90 290 90 390 90 18487} 18488do_execsql_test joinD-621 { 18489 SELECT t1.*, t2.*, t3.*, t4.* 18490 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 18491 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18492 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18493 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18494} { 18495 6 106 206 306 106 6 206 6 - - 18496 12 112 212 312 112 12 212 12 - - 18497 18 118 218 318 118 18 218 18 - - 18498 24 124 224 324 124 24 224 24 - - 18499 30 130 230 330 130 30 230 30 330 30 18500 36 136 236 336 136 36 236 36 - - 18501 42 142 242 342 142 42 242 42 - - 18502 48 148 248 348 148 48 248 48 - - 18503 54 154 254 354 154 54 254 54 - - 18504 60 160 260 360 160 60 260 60 360 60 18505 66 166 266 366 166 66 266 66 - - 18506 72 172 272 372 172 72 272 72 - - 18507 78 178 278 378 178 78 278 78 - - 18508 84 184 284 384 184 84 284 84 - - 18509 90 190 290 390 190 90 290 90 390 90 18510} 18511do_execsql_test joinD-622 { 18512 SELECT t1.*, t2.*, t3.*, t4.* 18513 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18514 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18515 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18516 WHERE t2.x>0 18517 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18518} { 18519 6 106 206 306 106 6 206 6 - - 18520 12 112 212 312 112 12 212 12 - - 18521 18 118 218 318 118 18 218 18 - - 18522 24 124 224 324 124 24 224 24 - - 18523 30 130 230 330 130 30 230 30 330 30 18524 36 136 236 336 136 36 236 36 - - 18525 42 142 242 342 142 42 242 42 - - 18526 48 148 248 348 148 48 248 48 - - 18527 54 154 254 354 154 54 254 54 - - 18528 60 160 260 360 160 60 260 60 360 60 18529 66 166 266 366 166 66 266 66 - - 18530 72 172 272 372 172 72 272 72 - - 18531 78 178 278 378 178 78 278 78 - - 18532 84 184 284 384 184 84 284 84 - - 18533 90 190 290 390 190 90 290 90 390 90 18534} 18535do_execsql_test joinD-623 { 18536 SELECT t1.*, t2.*, t3.*, t4.* 18537 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18538 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18539 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18540 WHERE (t2.x>0 OR t2.x IS NULL) 18541 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18542} { 18543 6 106 206 306 106 6 206 6 - - 18544 12 112 212 312 112 12 212 12 - - 18545 18 118 218 318 118 18 218 18 - - 18546 24 124 224 324 124 24 224 24 - - 18547 30 130 230 330 130 30 230 30 330 30 18548 36 136 236 336 136 36 236 36 - - 18549 42 142 242 342 142 42 242 42 - - 18550 48 148 248 348 148 48 248 48 - - 18551 54 154 254 354 154 54 254 54 - - 18552 60 160 260 360 160 60 260 60 360 60 18553 66 166 266 366 166 66 266 66 - - 18554 72 172 272 372 172 72 272 72 - - 18555 78 178 278 378 178 78 278 78 - - 18556 84 184 284 384 184 84 284 84 - - 18557 90 190 290 390 190 90 290 90 390 90 18558} 18559do_execsql_test joinD-624 { 18560 SELECT t1.*, t2.*, t3.*, t4.* 18561 FROM t1 RIGHT JOIN t2 ON true 18562 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18563 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18564 WHERE t1.b=t2.b AND t2.x>0 18565 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18566} { 18567 6 106 206 306 106 6 206 6 - - 18568 12 112 212 312 112 12 212 12 - - 18569 18 118 218 318 118 18 218 18 - - 18570 24 124 224 324 124 24 224 24 - - 18571 30 130 230 330 130 30 230 30 330 30 18572 36 136 236 336 136 36 236 36 - - 18573 42 142 242 342 142 42 242 42 - - 18574 48 148 248 348 148 48 248 48 - - 18575 54 154 254 354 154 54 254 54 - - 18576 60 160 260 360 160 60 260 60 360 60 18577 66 166 266 366 166 66 266 66 - - 18578 72 172 272 372 172 72 272 72 - - 18579 78 178 278 378 178 78 278 78 - - 18580 84 184 284 384 184 84 284 84 - - 18581 90 190 290 390 190 90 290 90 390 90 18582} 18583do_execsql_test joinD-625 { 18584 SELECT t1.*, t2.*, t3.*, t4.* 18585 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18586 INNER JOIN t3 ON t1.c=t3.c 18587 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18588 WHERE t3.y>0 18589 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18590} { 18591 6 106 206 306 106 6 206 6 - - 18592 12 112 212 312 112 12 212 12 - - 18593 18 118 218 318 118 18 218 18 - - 18594 24 124 224 324 124 24 224 24 - - 18595 30 130 230 330 130 30 230 30 330 30 18596 36 136 236 336 136 36 236 36 - - 18597 42 142 242 342 142 42 242 42 - - 18598 48 148 248 348 148 48 248 48 - - 18599 54 154 254 354 154 54 254 54 - - 18600 60 160 260 360 160 60 260 60 360 60 18601 66 166 266 366 166 66 266 66 - - 18602 72 172 272 372 172 72 272 72 - - 18603 78 178 278 378 178 78 278 78 - - 18604 84 184 284 384 184 84 284 84 - - 18605 90 190 290 390 190 90 290 90 390 90 18606} 18607do_execsql_test joinD-626 { 18608 SELECT t1.*, t2.*, t3.*, t4.* 18609 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18610 INNER JOIN t3 ON t1.c=t3.c 18611 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18612 WHERE t3.y>0 OR t3.y IS NULL 18613 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18614} { 18615 6 106 206 306 106 6 206 6 - - 18616 12 112 212 312 112 12 212 12 - - 18617 18 118 218 318 118 18 218 18 - - 18618 24 124 224 324 124 24 224 24 - - 18619 30 130 230 330 130 30 230 30 330 30 18620 36 136 236 336 136 36 236 36 - - 18621 42 142 242 342 142 42 242 42 - - 18622 48 148 248 348 148 48 248 48 - - 18623 54 154 254 354 154 54 254 54 - - 18624 60 160 260 360 160 60 260 60 360 60 18625 66 166 266 366 166 66 266 66 - - 18626 72 172 272 372 172 72 272 72 - - 18627 78 178 278 378 178 78 278 78 - - 18628 84 184 284 384 184 84 284 84 - - 18629 90 190 290 390 190 90 290 90 390 90 18630} 18631do_execsql_test joinD-627 { 18632 SELECT t1.*, t2.*, t3.*, t4.* 18633 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18634 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18635 LEFT JOIN t4 ON t1.d=t4.d 18636 WHERE t4.z>0 18637 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18638} { 18639 30 130 230 330 130 30 230 30 330 30 18640 60 160 260 360 160 60 260 60 360 60 18641 90 190 290 390 190 90 290 90 390 90 18642} 18643do_execsql_test joinD-628 { 18644 SELECT t1.*, t2.*, t3.*, t4.* 18645 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18646 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18647 LEFT JOIN t4 ON t1.d=t4.d 18648 WHERE t4.z IS NULL OR t4.z>0 18649 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18650} { 18651 6 106 206 306 106 6 206 6 - - 18652 12 112 212 312 112 12 212 12 - - 18653 18 118 218 318 118 18 218 18 - - 18654 24 124 224 324 124 24 224 24 - - 18655 30 130 230 330 130 30 230 30 330 30 18656 36 136 236 336 136 36 236 36 - - 18657 42 142 242 342 142 42 242 42 - - 18658 48 148 248 348 148 48 248 48 - - 18659 54 154 254 354 154 54 254 54 - - 18660 60 160 260 360 160 60 260 60 360 60 18661 66 166 266 366 166 66 266 66 - - 18662 72 172 272 372 172 72 272 72 - - 18663 78 178 278 378 178 78 278 78 - - 18664 84 184 284 384 184 84 284 84 - - 18665 90 190 290 390 190 90 290 90 390 90 18666} 18667do_execsql_test joinD-629 { 18668 SELECT t1.*, t2.*, t3.*, t4.* 18669 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18670 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18671 LEFT JOIN t4 ON t1.d=t4.d 18672 WHERE t2.x>0 AND t4.z>0 18673 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18674} { 18675 30 130 230 330 130 30 230 30 330 30 18676 60 160 260 360 160 60 260 60 360 60 18677 90 190 290 390 190 90 290 90 390 90 18678} 18679do_execsql_test joinD-630 { 18680 SELECT t1.*, t2.*, t3.*, t4.* 18681 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18682 INNER JOIN t3 ON t1.c=t3.c 18683 LEFT JOIN t4 ON t1.d=t4.d 18684 WHERE t4.z>0 AND t3.y>0 18685 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18686} { 18687 30 130 230 330 130 30 230 30 330 30 18688 60 160 260 360 160 60 260 60 360 60 18689 90 190 290 390 190 90 290 90 390 90 18690} 18691do_execsql_test joinD-631 { 18692 SELECT t1.*, t2.*, t3.*, t4.* 18693 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18694 INNER JOIN t3 ON t1.c=t3.c 18695 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18696 WHERE t2.x>0 AND t3.y>0 18697 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18698} { 18699 6 106 206 306 106 6 206 6 - - 18700 12 112 212 312 112 12 212 12 - - 18701 18 118 218 318 118 18 218 18 - - 18702 24 124 224 324 124 24 224 24 - - 18703 30 130 230 330 130 30 230 30 330 30 18704 36 136 236 336 136 36 236 36 - - 18705 42 142 242 342 142 42 242 42 - - 18706 48 148 248 348 148 48 248 48 - - 18707 54 154 254 354 154 54 254 54 - - 18708 60 160 260 360 160 60 260 60 360 60 18709 66 166 266 366 166 66 266 66 - - 18710 72 172 272 372 172 72 272 72 - - 18711 78 178 278 378 178 78 278 78 - - 18712 84 184 284 384 184 84 284 84 - - 18713 90 190 290 390 190 90 290 90 390 90 18714} 18715do_execsql_test joinD-632 { 18716 SELECT t1.*, t2.*, t3.*, t4.* 18717 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18718 INNER JOIN t3 ON t1.c=t3.c 18719 LEFT JOIN t4 ON t1.d=t4.d 18720 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 18721 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18722} { 18723 30 130 230 330 130 30 230 30 330 30 18724 60 160 260 360 160 60 260 60 360 60 18725 90 190 290 390 190 90 290 90 390 90 18726} 18727do_execsql_test joinD-633 { 18728 SELECT t1.*, t2.*, t3.*, t4.* 18729 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 18730 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 18731 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 18732 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18733} { 18734 6 106 206 306 106 6 206 6 - - 18735 12 112 212 312 112 12 212 12 - - 18736 18 118 218 318 118 18 218 18 - - 18737 24 124 224 324 124 24 224 24 - - 18738 30 130 230 330 130 30 230 30 330 30 18739 36 136 236 336 136 36 236 36 - - 18740 42 142 242 342 142 42 242 42 - - 18741 48 148 248 348 148 48 248 48 - - 18742 54 154 254 354 154 54 254 54 - - 18743 60 160 260 360 160 60 260 60 360 60 18744 66 166 266 366 166 66 266 66 - - 18745 72 172 272 372 172 72 272 72 - - 18746 78 178 278 378 178 78 278 78 - - 18747 84 184 284 384 184 84 284 84 - - 18748 90 190 290 390 190 90 290 90 390 90 18749} 18750do_execsql_test joinD-634 { 18751 SELECT t1.*, t2.*, t3.*, t4.* 18752 FROM t1 RIGHT JOIN t2 ON t2.x>0 18753 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 18754 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 18755 WHERE t1.b IS NOT DISTINCT FROM t2.b 18756 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18757} { 18758 6 106 206 306 106 6 206 6 - - 18759 12 112 212 312 112 12 212 12 - - 18760 18 118 218 318 118 18 218 18 - - 18761 24 124 224 324 124 24 224 24 - - 18762 30 130 230 330 130 30 230 30 330 30 18763 36 136 236 336 136 36 236 36 - - 18764 42 142 242 342 142 42 242 42 - - 18765 48 148 248 348 148 48 248 48 - - 18766 54 154 254 354 154 54 254 54 - - 18767 60 160 260 360 160 60 260 60 360 60 18768 66 166 266 366 166 66 266 66 - - 18769 72 172 272 372 172 72 272 72 - - 18770 78 178 278 378 178 78 278 78 - - 18771 84 184 284 384 184 84 284 84 - - 18772 90 190 290 390 190 90 290 90 390 90 18773} 18774do_execsql_test joinD-635 { 18775 SELECT t1.*, t2.*, t3.*, t4.* 18776 FROM t1 RIGHT JOIN t2 ON t2.x>0 18777 INNER JOIN t3 ON t3.y>0 18778 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 18779 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 18780 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18781} { 18782 6 106 206 306 106 6 206 6 - - 18783 12 112 212 312 112 12 212 12 - - 18784 18 118 218 318 118 18 218 18 - - 18785 24 124 224 324 124 24 224 24 - - 18786 30 130 230 330 130 30 230 30 330 30 18787 36 136 236 336 136 36 236 36 - - 18788 42 142 242 342 142 42 242 42 - - 18789 48 148 248 348 148 48 248 48 - - 18790 54 154 254 354 154 54 254 54 - - 18791 60 160 260 360 160 60 260 60 360 60 18792 66 166 266 366 166 66 266 66 - - 18793 72 172 272 372 172 72 272 72 - - 18794 78 178 278 378 178 78 278 78 - - 18795 84 184 284 384 184 84 284 84 - - 18796 90 190 290 390 190 90 290 90 390 90 18797} 18798do_execsql_test joinD-636 { 18799 SELECT t1.*, t2.*, t3.*, t4.* 18800 FROM t1 RIGHT JOIN t2 ON t2.x>0 18801 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 18802 LEFT JOIN t4 ON t4.z>0 18803 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 18804 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18805} { 18806 30 130 230 330 130 30 230 30 330 30 18807 60 160 260 360 160 60 260 60 360 60 18808 90 190 290 390 190 90 290 90 390 90 18809} 18810do_execsql_test joinD-637 { 18811 SELECT t1.*, t2.*, t3.*, t4.* 18812 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 18813 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18814 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18815 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18816} { 18817 6 106 206 306 106 6 206 6 - - 18818 12 112 212 312 112 12 212 12 - - 18819 18 118 218 318 118 18 218 18 - - 18820 24 124 224 324 124 24 224 24 - - 18821 30 130 230 330 130 30 230 30 330 30 18822 36 136 236 336 136 36 236 36 - - 18823 42 142 242 342 142 42 242 42 - - 18824 48 148 248 348 148 48 248 48 - - 18825 54 154 254 354 154 54 254 54 - - 18826 60 160 260 360 160 60 260 60 360 60 18827 66 166 266 366 166 66 266 66 - - 18828 72 172 272 372 172 72 272 72 - - 18829 78 178 278 378 178 78 278 78 - - 18830 84 184 284 384 184 84 284 84 - - 18831 90 190 290 390 190 90 290 90 390 90 18832} 18833do_execsql_test joinD-638 { 18834 SELECT t1.*, t2.*, t3.*, t4.* 18835 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18836 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 18837 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 18838 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18839} { 18840 6 106 206 306 106 6 206 6 - - 18841 12 112 212 312 112 12 212 12 - - 18842 18 118 218 318 118 18 218 18 - - 18843 24 124 224 324 124 24 224 24 - - 18844 30 130 230 330 130 30 230 30 330 30 18845 36 136 236 336 136 36 236 36 - - 18846 42 142 242 342 142 42 242 42 - - 18847 48 148 248 348 148 48 248 48 - - 18848 54 154 254 354 154 54 254 54 - - 18849 60 160 260 360 160 60 260 60 360 60 18850 66 166 266 366 166 66 266 66 - - 18851 72 172 272 372 172 72 272 72 - - 18852 78 178 278 378 178 78 278 78 - - 18853 84 184 284 384 184 84 284 84 - - 18854 90 190 290 390 190 90 290 90 390 90 18855} 18856do_execsql_test joinD-639 { 18857 SELECT t1.*, t2.*, t3.*, t4.* 18858 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18859 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18860 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 18861 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18862} { 18863 30 130 230 330 130 30 230 30 330 30 18864 60 160 260 360 160 60 260 60 360 60 18865 90 190 290 390 190 90 290 90 390 90 18866 - - - - - - - - 300 0 18867 - - - - - - - - 305 5 18868 - - - - - - - - 310 10 18869 - - - - - - - - 315 15 18870 - - - - - - - - 320 20 18871 - - - - - - - - 325 25 18872 - - - - - - - - 335 35 18873 - - - - - - - - 340 40 18874 - - - - - - - - 345 45 18875 - - - - - - - - 350 50 18876 - - - - - - - - 355 55 18877 - - - - - - - - 365 65 18878 - - - - - - - - 370 70 18879 - - - - - - - - 375 75 18880 - - - - - - - - 380 80 18881 - - - - - - - - 385 85 18882 - - - - - - - - 395 95 18883} 18884do_execsql_test joinD-640 { 18885 SELECT t1.*, t2.*, t3.*, t4.* 18886 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 18887 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18888 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 18889 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18890} { 18891 30 130 230 330 130 30 230 30 330 30 18892 60 160 260 360 160 60 260 60 360 60 18893 90 190 290 390 190 90 290 90 390 90 18894 - - - - - - - - 300 0 18895 - - - - - - - - 305 5 18896 - - - - - - - - 310 10 18897 - - - - - - - - 315 15 18898 - - - - - - - - 320 20 18899 - - - - - - - - 325 25 18900 - - - - - - - - 335 35 18901 - - - - - - - - 340 40 18902 - - - - - - - - 345 45 18903 - - - - - - - - 350 50 18904 - - - - - - - - 355 55 18905 - - - - - - - - 365 65 18906 - - - - - - - - 370 70 18907 - - - - - - - - 375 75 18908 - - - - - - - - 380 80 18909 - - - - - - - - 385 85 18910 - - - - - - - - 395 95 18911} 18912do_execsql_test joinD-641 { 18913 SELECT t1.*, t2.*, t3.*, t4.* 18914 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18915 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18916 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 18917 WHERE t2.x>0 18918 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18919} { 18920 30 130 230 330 130 30 230 30 330 30 18921 60 160 260 360 160 60 260 60 360 60 18922 90 190 290 390 190 90 290 90 390 90 18923} 18924do_execsql_test joinD-642 { 18925 SELECT t1.*, t2.*, t3.*, t4.* 18926 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 18927 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18928 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 18929 WHERE (t2.x>0 OR t2.x IS NULL) 18930 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18931} { 18932 30 130 230 330 130 30 230 30 330 30 18933 60 160 260 360 160 60 260 60 360 60 18934 90 190 290 390 190 90 290 90 390 90 18935 - - - - - - - - 300 0 18936 - - - - - - - - 305 5 18937 - - - - - - - - 310 10 18938 - - - - - - - - 315 15 18939 - - - - - - - - 320 20 18940 - - - - - - - - 325 25 18941 - - - - - - - - 335 35 18942 - - - - - - - - 340 40 18943 - - - - - - - - 345 45 18944 - - - - - - - - 350 50 18945 - - - - - - - - 355 55 18946 - - - - - - - - 365 65 18947 - - - - - - - - 370 70 18948 - - - - - - - - 375 75 18949 - - - - - - - - 380 80 18950 - - - - - - - - 385 85 18951 - - - - - - - - 395 95 18952} 18953do_execsql_test joinD-643 { 18954 SELECT t1.*, t2.*, t3.*, t4.* 18955 FROM t1 RIGHT JOIN t2 ON true 18956 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 18957 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 18958 WHERE t1.b=t2.b AND t2.x>0 18959 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18960} { 18961 30 130 230 330 130 30 230 30 330 30 18962 60 160 260 360 160 60 260 60 360 60 18963 90 190 290 390 190 90 290 90 390 90 18964} 18965do_execsql_test joinD-644 { 18966 SELECT t1.*, t2.*, t3.*, t4.* 18967 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18968 INNER JOIN t3 ON t1.c=t3.c 18969 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 18970 WHERE t3.y>0 18971 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18972} { 18973 30 130 230 330 130 30 230 30 330 30 18974 60 160 260 360 160 60 260 60 360 60 18975 90 190 290 390 190 90 290 90 390 90 18976} 18977do_execsql_test joinD-645 { 18978 SELECT t1.*, t2.*, t3.*, t4.* 18979 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 18980 INNER JOIN t3 ON t1.c=t3.c 18981 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 18982 WHERE t3.y>0 OR t3.y IS NULL 18983 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 18984} { 18985 30 130 230 330 130 30 230 30 330 30 18986 60 160 260 360 160 60 260 60 360 60 18987 90 190 290 390 190 90 290 90 390 90 18988 - - - - - - - - 300 0 18989 - - - - - - - - 305 5 18990 - - - - - - - - 310 10 18991 - - - - - - - - 315 15 18992 - - - - - - - - 320 20 18993 - - - - - - - - 325 25 18994 - - - - - - - - 335 35 18995 - - - - - - - - 340 40 18996 - - - - - - - - 345 45 18997 - - - - - - - - 350 50 18998 - - - - - - - - 355 55 18999 - - - - - - - - 365 65 19000 - - - - - - - - 370 70 19001 - - - - - - - - 375 75 19002 - - - - - - - - 380 80 19003 - - - - - - - - 385 85 19004 - - - - - - - - 395 95 19005} 19006do_execsql_test joinD-646 { 19007 SELECT t1.*, t2.*, t3.*, t4.* 19008 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19009 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19010 RIGHT JOIN t4 ON t1.d=t4.d 19011 WHERE t4.z>0 19012 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19013} { 19014 30 130 230 330 130 30 230 30 330 30 19015 60 160 260 360 160 60 260 60 360 60 19016 90 190 290 390 190 90 290 90 390 90 19017 - - - - - - - - 305 5 19018 - - - - - - - - 310 10 19019 - - - - - - - - 315 15 19020 - - - - - - - - 320 20 19021 - - - - - - - - 325 25 19022 - - - - - - - - 335 35 19023 - - - - - - - - 340 40 19024 - - - - - - - - 345 45 19025 - - - - - - - - 350 50 19026 - - - - - - - - 355 55 19027 - - - - - - - - 365 65 19028 - - - - - - - - 370 70 19029 - - - - - - - - 375 75 19030 - - - - - - - - 380 80 19031 - - - - - - - - 385 85 19032 - - - - - - - - 395 95 19033} 19034do_execsql_test joinD-647 { 19035 SELECT t1.*, t2.*, t3.*, t4.* 19036 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19037 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19038 RIGHT JOIN t4 ON t1.d=t4.d 19039 WHERE t4.z IS NULL OR t4.z>0 19040 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19041} { 19042 30 130 230 330 130 30 230 30 330 30 19043 60 160 260 360 160 60 260 60 360 60 19044 90 190 290 390 190 90 290 90 390 90 19045 - - - - - - - - 305 5 19046 - - - - - - - - 310 10 19047 - - - - - - - - 315 15 19048 - - - - - - - - 320 20 19049 - - - - - - - - 325 25 19050 - - - - - - - - 335 35 19051 - - - - - - - - 340 40 19052 - - - - - - - - 345 45 19053 - - - - - - - - 350 50 19054 - - - - - - - - 355 55 19055 - - - - - - - - 365 65 19056 - - - - - - - - 370 70 19057 - - - - - - - - 375 75 19058 - - - - - - - - 380 80 19059 - - - - - - - - 385 85 19060 - - - - - - - - 395 95 19061} 19062do_execsql_test joinD-648 { 19063 SELECT t1.*, t2.*, t3.*, t4.* 19064 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19065 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19066 RIGHT JOIN t4 ON t1.d=t4.d 19067 WHERE t2.x>0 AND t4.z>0 19068 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19069} { 19070 30 130 230 330 130 30 230 30 330 30 19071 60 160 260 360 160 60 260 60 360 60 19072 90 190 290 390 190 90 290 90 390 90 19073} 19074do_execsql_test joinD-649 { 19075 SELECT t1.*, t2.*, t3.*, t4.* 19076 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19077 INNER JOIN t3 ON t1.c=t3.c 19078 RIGHT JOIN t4 ON t1.d=t4.d 19079 WHERE t4.z>0 AND t3.y>0 19080 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19081} { 19082 30 130 230 330 130 30 230 30 330 30 19083 60 160 260 360 160 60 260 60 360 60 19084 90 190 290 390 190 90 290 90 390 90 19085} 19086do_execsql_test joinD-650 { 19087 SELECT t1.*, t2.*, t3.*, t4.* 19088 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19089 INNER JOIN t3 ON t1.c=t3.c 19090 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 19091 WHERE t2.x>0 AND t3.y>0 19092 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19093} { 19094 30 130 230 330 130 30 230 30 330 30 19095 60 160 260 360 160 60 260 60 360 60 19096 90 190 290 390 190 90 290 90 390 90 19097} 19098do_execsql_test joinD-651 { 19099 SELECT t1.*, t2.*, t3.*, t4.* 19100 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19101 INNER JOIN t3 ON t1.c=t3.c 19102 RIGHT JOIN t4 ON t1.d=t4.d 19103 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 19104 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19105} { 19106 30 130 230 330 130 30 230 30 330 30 19107 60 160 260 360 160 60 260 60 360 60 19108 90 190 290 390 190 90 290 90 390 90 19109} 19110do_execsql_test joinD-652 { 19111 SELECT t1.*, t2.*, t3.*, t4.* 19112 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 19113 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 19114 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 19115 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19116} { 19117 30 130 230 330 130 30 230 30 330 30 19118 60 160 260 360 160 60 260 60 360 60 19119 90 190 290 390 190 90 290 90 390 90 19120 - - - - - - - - 300 0 19121 - - - - - - - - 305 5 19122 - - - - - - - - 310 10 19123 - - - - - - - - 315 15 19124 - - - - - - - - 320 20 19125 - - - - - - - - 325 25 19126 - - - - - - - - 335 35 19127 - - - - - - - - 340 40 19128 - - - - - - - - 345 45 19129 - - - - - - - - 350 50 19130 - - - - - - - - 355 55 19131 - - - - - - - - 365 65 19132 - - - - - - - - 370 70 19133 - - - - - - - - 375 75 19134 - - - - - - - - 380 80 19135 - - - - - - - - 385 85 19136 - - - - - - - - 395 95 19137} 19138do_execsql_test joinD-653 { 19139 SELECT t1.*, t2.*, t3.*, t4.* 19140 FROM t1 RIGHT JOIN t2 ON t2.x>0 19141 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 19142 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 19143 WHERE t1.b IS NOT DISTINCT FROM t2.b 19144 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19145} { 19146 30 130 230 330 130 30 230 30 330 30 19147 60 160 260 360 160 60 260 60 360 60 19148 90 190 290 390 190 90 290 90 390 90 19149 - - - - - - - - 300 0 19150 - - - - - - - - 305 5 19151 - - - - - - - - 310 10 19152 - - - - - - - - 320 20 19153 - - - - - - - - 325 25 19154 - - - - - - - - 335 35 19155 - - - - - - - - 340 40 19156 - - - - - - - - 350 50 19157 - - - - - - - - 355 55 19158 - - - - - - - - 365 65 19159 - - - - - - - - 370 70 19160 - - - - - - - - 380 80 19161 - - - - - - - - 385 85 19162 - - - - - - - - 395 95 19163} 19164do_execsql_test joinD-654 { 19165 SELECT t1.*, t2.*, t3.*, t4.* 19166 FROM t1 RIGHT JOIN t2 ON t2.x>0 19167 INNER JOIN t3 ON t3.y>0 19168 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 19169 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 19170 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19171} { 19172 30 130 230 330 130 30 230 30 330 30 19173 60 160 260 360 160 60 260 60 360 60 19174 90 190 290 390 190 90 290 90 390 90 19175 - - - - - - - - 300 0 19176} 19177do_execsql_test joinD-655 { 19178 SELECT t1.*, t2.*, t3.*, t4.* 19179 FROM t1 RIGHT JOIN t2 ON t2.x>0 19180 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 19181 RIGHT JOIN t4 ON t4.z>0 19182 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 19183 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19184} { 19185 30 130 230 330 130 30 230 30 330 30 19186 60 160 260 360 160 60 260 60 360 60 19187 90 190 290 390 190 90 290 90 390 90 19188} 19189do_execsql_test joinD-656 { 19190 SELECT t1.*, t2.*, t3.*, t4.* 19191 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 19192 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19193 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 19194 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19195} { 19196 30 130 230 330 130 30 230 30 330 30 19197 60 160 260 360 160 60 260 60 360 60 19198 90 190 290 390 190 90 290 90 390 90 19199 - - - - - - - - 300 0 19200 - - - - - - - - 305 5 19201 - - - - - - - - 310 10 19202 - - - - - - - - 315 15 19203 - - - - - - - - 320 20 19204 - - - - - - - - 325 25 19205 - - - - - - - - 335 35 19206 - - - - - - - - 340 40 19207 - - - - - - - - 345 45 19208 - - - - - - - - 350 50 19209 - - - - - - - - 355 55 19210 - - - - - - - - 365 65 19211 - - - - - - - - 370 70 19212 - - - - - - - - 375 75 19213 - - - - - - - - 380 80 19214 - - - - - - - - 385 85 19215 - - - - - - - - 395 95 19216} 19217do_execsql_test joinD-657 { 19218 SELECT t1.*, t2.*, t3.*, t4.* 19219 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19220 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 19221 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 19222 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19223} { 19224 30 130 230 330 130 30 230 30 330 30 19225 60 160 260 360 160 60 260 60 360 60 19226 90 190 290 390 190 90 290 90 390 90 19227 - - - - - - - - 300 0 19228 - - - - - - - - 305 5 19229 - - - - - - - - 310 10 19230 - - - - - - - - 315 15 19231 - - - - - - - - 320 20 19232 - - - - - - - - 325 25 19233 - - - - - - - - 335 35 19234 - - - - - - - - 340 40 19235 - - - - - - - - 345 45 19236 - - - - - - - - 350 50 19237 - - - - - - - - 355 55 19238 - - - - - - - - 365 65 19239 - - - - - - - - 370 70 19240 - - - - - - - - 375 75 19241 - - - - - - - - 380 80 19242 - - - - - - - - 385 85 19243 - - - - - - - - 395 95 19244} 19245do_execsql_test joinD-658 { 19246 SELECT t1.*, t2.*, t3.*, t4.* 19247 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19248 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19249 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19250 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19251} { 19252 6 106 206 306 106 6 206 6 - - 19253 12 112 212 312 112 12 212 12 - - 19254 18 118 218 318 118 18 218 18 - - 19255 24 124 224 324 124 24 224 24 - - 19256 30 130 230 330 130 30 230 30 330 30 19257 36 136 236 336 136 36 236 36 - - 19258 42 142 242 342 142 42 242 42 - - 19259 48 148 248 348 148 48 248 48 - - 19260 54 154 254 354 154 54 254 54 - - 19261 60 160 260 360 160 60 260 60 360 60 19262 66 166 266 366 166 66 266 66 - - 19263 72 172 272 372 172 72 272 72 - - 19264 78 178 278 378 178 78 278 78 - - 19265 84 184 284 384 184 84 284 84 - - 19266 90 190 290 390 190 90 290 90 390 90 19267 - - - - - - - - 300 0 19268 - - - - - - - - 305 5 19269 - - - - - - - - 310 10 19270 - - - - - - - - 315 15 19271 - - - - - - - - 320 20 19272 - - - - - - - - 325 25 19273 - - - - - - - - 335 35 19274 - - - - - - - - 340 40 19275 - - - - - - - - 345 45 19276 - - - - - - - - 350 50 19277 - - - - - - - - 355 55 19278 - - - - - - - - 365 65 19279 - - - - - - - - 370 70 19280 - - - - - - - - 375 75 19281 - - - - - - - - 380 80 19282 - - - - - - - - 385 85 19283 - - - - - - - - 395 95 19284} 19285do_execsql_test joinD-659 { 19286 SELECT t1.*, t2.*, t3.*, t4.* 19287 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 19288 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19289 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19290 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19291} { 19292 6 106 206 306 106 6 206 6 - - 19293 12 112 212 312 112 12 212 12 - - 19294 18 118 218 318 118 18 218 18 - - 19295 24 124 224 324 124 24 224 24 - - 19296 30 130 230 330 130 30 230 30 330 30 19297 36 136 236 336 136 36 236 36 - - 19298 42 142 242 342 142 42 242 42 - - 19299 48 148 248 348 148 48 248 48 - - 19300 54 154 254 354 154 54 254 54 - - 19301 60 160 260 360 160 60 260 60 360 60 19302 66 166 266 366 166 66 266 66 - - 19303 72 172 272 372 172 72 272 72 - - 19304 78 178 278 378 178 78 278 78 - - 19305 84 184 284 384 184 84 284 84 - - 19306 90 190 290 390 190 90 290 90 390 90 19307 - - - - - - - - 300 0 19308 - - - - - - - - 305 5 19309 - - - - - - - - 310 10 19310 - - - - - - - - 315 15 19311 - - - - - - - - 320 20 19312 - - - - - - - - 325 25 19313 - - - - - - - - 335 35 19314 - - - - - - - - 340 40 19315 - - - - - - - - 345 45 19316 - - - - - - - - 350 50 19317 - - - - - - - - 355 55 19318 - - - - - - - - 365 65 19319 - - - - - - - - 370 70 19320 - - - - - - - - 375 75 19321 - - - - - - - - 380 80 19322 - - - - - - - - 385 85 19323 - - - - - - - - 395 95 19324} 19325do_execsql_test joinD-660 { 19326 SELECT t1.*, t2.*, t3.*, t4.* 19327 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19328 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19329 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19330 WHERE t2.x>0 19331 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19332} { 19333 6 106 206 306 106 6 206 6 - - 19334 12 112 212 312 112 12 212 12 - - 19335 18 118 218 318 118 18 218 18 - - 19336 24 124 224 324 124 24 224 24 - - 19337 30 130 230 330 130 30 230 30 330 30 19338 36 136 236 336 136 36 236 36 - - 19339 42 142 242 342 142 42 242 42 - - 19340 48 148 248 348 148 48 248 48 - - 19341 54 154 254 354 154 54 254 54 - - 19342 60 160 260 360 160 60 260 60 360 60 19343 66 166 266 366 166 66 266 66 - - 19344 72 172 272 372 172 72 272 72 - - 19345 78 178 278 378 178 78 278 78 - - 19346 84 184 284 384 184 84 284 84 - - 19347 90 190 290 390 190 90 290 90 390 90 19348} 19349do_execsql_test joinD-661 { 19350 SELECT t1.*, t2.*, t3.*, t4.* 19351 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19352 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19353 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19354 WHERE (t2.x>0 OR t2.x IS NULL) 19355 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19356} { 19357 6 106 206 306 106 6 206 6 - - 19358 12 112 212 312 112 12 212 12 - - 19359 18 118 218 318 118 18 218 18 - - 19360 24 124 224 324 124 24 224 24 - - 19361 30 130 230 330 130 30 230 30 330 30 19362 36 136 236 336 136 36 236 36 - - 19363 42 142 242 342 142 42 242 42 - - 19364 48 148 248 348 148 48 248 48 - - 19365 54 154 254 354 154 54 254 54 - - 19366 60 160 260 360 160 60 260 60 360 60 19367 66 166 266 366 166 66 266 66 - - 19368 72 172 272 372 172 72 272 72 - - 19369 78 178 278 378 178 78 278 78 - - 19370 84 184 284 384 184 84 284 84 - - 19371 90 190 290 390 190 90 290 90 390 90 19372 - - - - - - - - 300 0 19373 - - - - - - - - 305 5 19374 - - - - - - - - 310 10 19375 - - - - - - - - 315 15 19376 - - - - - - - - 320 20 19377 - - - - - - - - 325 25 19378 - - - - - - - - 335 35 19379 - - - - - - - - 340 40 19380 - - - - - - - - 345 45 19381 - - - - - - - - 350 50 19382 - - - - - - - - 355 55 19383 - - - - - - - - 365 65 19384 - - - - - - - - 370 70 19385 - - - - - - - - 375 75 19386 - - - - - - - - 380 80 19387 - - - - - - - - 385 85 19388 - - - - - - - - 395 95 19389} 19390do_execsql_test joinD-662 { 19391 SELECT t1.*, t2.*, t3.*, t4.* 19392 FROM t1 RIGHT JOIN t2 ON true 19393 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19394 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19395 WHERE t1.b=t2.b AND t2.x>0 19396 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19397} { 19398 6 106 206 306 106 6 206 6 - - 19399 12 112 212 312 112 12 212 12 - - 19400 18 118 218 318 118 18 218 18 - - 19401 24 124 224 324 124 24 224 24 - - 19402 30 130 230 330 130 30 230 30 330 30 19403 36 136 236 336 136 36 236 36 - - 19404 42 142 242 342 142 42 242 42 - - 19405 48 148 248 348 148 48 248 48 - - 19406 54 154 254 354 154 54 254 54 - - 19407 60 160 260 360 160 60 260 60 360 60 19408 66 166 266 366 166 66 266 66 - - 19409 72 172 272 372 172 72 272 72 - - 19410 78 178 278 378 178 78 278 78 - - 19411 84 184 284 384 184 84 284 84 - - 19412 90 190 290 390 190 90 290 90 390 90 19413} 19414do_execsql_test joinD-663 { 19415 SELECT t1.*, t2.*, t3.*, t4.* 19416 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19417 INNER JOIN t3 ON t1.c=t3.c 19418 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19419 WHERE t3.y>0 19420 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19421} { 19422 6 106 206 306 106 6 206 6 - - 19423 12 112 212 312 112 12 212 12 - - 19424 18 118 218 318 118 18 218 18 - - 19425 24 124 224 324 124 24 224 24 - - 19426 30 130 230 330 130 30 230 30 330 30 19427 36 136 236 336 136 36 236 36 - - 19428 42 142 242 342 142 42 242 42 - - 19429 48 148 248 348 148 48 248 48 - - 19430 54 154 254 354 154 54 254 54 - - 19431 60 160 260 360 160 60 260 60 360 60 19432 66 166 266 366 166 66 266 66 - - 19433 72 172 272 372 172 72 272 72 - - 19434 78 178 278 378 178 78 278 78 - - 19435 84 184 284 384 184 84 284 84 - - 19436 90 190 290 390 190 90 290 90 390 90 19437} 19438do_execsql_test joinD-664 { 19439 SELECT t1.*, t2.*, t3.*, t4.* 19440 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19441 INNER JOIN t3 ON t1.c=t3.c 19442 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19443 WHERE t3.y>0 OR t3.y IS NULL 19444 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19445} { 19446 6 106 206 306 106 6 206 6 - - 19447 12 112 212 312 112 12 212 12 - - 19448 18 118 218 318 118 18 218 18 - - 19449 24 124 224 324 124 24 224 24 - - 19450 30 130 230 330 130 30 230 30 330 30 19451 36 136 236 336 136 36 236 36 - - 19452 42 142 242 342 142 42 242 42 - - 19453 48 148 248 348 148 48 248 48 - - 19454 54 154 254 354 154 54 254 54 - - 19455 60 160 260 360 160 60 260 60 360 60 19456 66 166 266 366 166 66 266 66 - - 19457 72 172 272 372 172 72 272 72 - - 19458 78 178 278 378 178 78 278 78 - - 19459 84 184 284 384 184 84 284 84 - - 19460 90 190 290 390 190 90 290 90 390 90 19461 - - - - - - - - 300 0 19462 - - - - - - - - 305 5 19463 - - - - - - - - 310 10 19464 - - - - - - - - 315 15 19465 - - - - - - - - 320 20 19466 - - - - - - - - 325 25 19467 - - - - - - - - 335 35 19468 - - - - - - - - 340 40 19469 - - - - - - - - 345 45 19470 - - - - - - - - 350 50 19471 - - - - - - - - 355 55 19472 - - - - - - - - 365 65 19473 - - - - - - - - 370 70 19474 - - - - - - - - 375 75 19475 - - - - - - - - 380 80 19476 - - - - - - - - 385 85 19477 - - - - - - - - 395 95 19478} 19479do_execsql_test joinD-665 { 19480 SELECT t1.*, t2.*, t3.*, t4.* 19481 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19482 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19483 FULL JOIN t4 ON t1.d=t4.d 19484 WHERE t4.z>0 19485 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19486} { 19487 30 130 230 330 130 30 230 30 330 30 19488 60 160 260 360 160 60 260 60 360 60 19489 90 190 290 390 190 90 290 90 390 90 19490 - - - - - - - - 305 5 19491 - - - - - - - - 310 10 19492 - - - - - - - - 315 15 19493 - - - - - - - - 320 20 19494 - - - - - - - - 325 25 19495 - - - - - - - - 335 35 19496 - - - - - - - - 340 40 19497 - - - - - - - - 345 45 19498 - - - - - - - - 350 50 19499 - - - - - - - - 355 55 19500 - - - - - - - - 365 65 19501 - - - - - - - - 370 70 19502 - - - - - - - - 375 75 19503 - - - - - - - - 380 80 19504 - - - - - - - - 385 85 19505 - - - - - - - - 395 95 19506} 19507do_execsql_test joinD-666 { 19508 SELECT t1.*, t2.*, t3.*, t4.* 19509 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19510 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19511 FULL JOIN t4 ON t1.d=t4.d 19512 WHERE t4.z IS NULL OR t4.z>0 19513 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19514} { 19515 6 106 206 306 106 6 206 6 - - 19516 12 112 212 312 112 12 212 12 - - 19517 18 118 218 318 118 18 218 18 - - 19518 24 124 224 324 124 24 224 24 - - 19519 30 130 230 330 130 30 230 30 330 30 19520 36 136 236 336 136 36 236 36 - - 19521 42 142 242 342 142 42 242 42 - - 19522 48 148 248 348 148 48 248 48 - - 19523 54 154 254 354 154 54 254 54 - - 19524 60 160 260 360 160 60 260 60 360 60 19525 66 166 266 366 166 66 266 66 - - 19526 72 172 272 372 172 72 272 72 - - 19527 78 178 278 378 178 78 278 78 - - 19528 84 184 284 384 184 84 284 84 - - 19529 90 190 290 390 190 90 290 90 390 90 19530 - - - - - - - - 305 5 19531 - - - - - - - - 310 10 19532 - - - - - - - - 315 15 19533 - - - - - - - - 320 20 19534 - - - - - - - - 325 25 19535 - - - - - - - - 335 35 19536 - - - - - - - - 340 40 19537 - - - - - - - - 345 45 19538 - - - - - - - - 350 50 19539 - - - - - - - - 355 55 19540 - - - - - - - - 365 65 19541 - - - - - - - - 370 70 19542 - - - - - - - - 375 75 19543 - - - - - - - - 380 80 19544 - - - - - - - - 385 85 19545 - - - - - - - - 395 95 19546} 19547do_execsql_test joinD-667 { 19548 SELECT t1.*, t2.*, t3.*, t4.* 19549 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19550 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19551 FULL JOIN t4 ON t1.d=t4.d 19552 WHERE t2.x>0 AND t4.z>0 19553 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19554} { 19555 30 130 230 330 130 30 230 30 330 30 19556 60 160 260 360 160 60 260 60 360 60 19557 90 190 290 390 190 90 290 90 390 90 19558} 19559do_execsql_test joinD-668 { 19560 SELECT t1.*, t2.*, t3.*, t4.* 19561 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19562 INNER JOIN t3 ON t1.c=t3.c 19563 FULL JOIN t4 ON t1.d=t4.d 19564 WHERE t4.z>0 AND t3.y>0 19565 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19566} { 19567 30 130 230 330 130 30 230 30 330 30 19568 60 160 260 360 160 60 260 60 360 60 19569 90 190 290 390 190 90 290 90 390 90 19570} 19571do_execsql_test joinD-669 { 19572 SELECT t1.*, t2.*, t3.*, t4.* 19573 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19574 INNER JOIN t3 ON t1.c=t3.c 19575 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19576 WHERE t2.x>0 AND t3.y>0 19577 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19578} { 19579 6 106 206 306 106 6 206 6 - - 19580 12 112 212 312 112 12 212 12 - - 19581 18 118 218 318 118 18 218 18 - - 19582 24 124 224 324 124 24 224 24 - - 19583 30 130 230 330 130 30 230 30 330 30 19584 36 136 236 336 136 36 236 36 - - 19585 42 142 242 342 142 42 242 42 - - 19586 48 148 248 348 148 48 248 48 - - 19587 54 154 254 354 154 54 254 54 - - 19588 60 160 260 360 160 60 260 60 360 60 19589 66 166 266 366 166 66 266 66 - - 19590 72 172 272 372 172 72 272 72 - - 19591 78 178 278 378 178 78 278 78 - - 19592 84 184 284 384 184 84 284 84 - - 19593 90 190 290 390 190 90 290 90 390 90 19594} 19595do_execsql_test joinD-670 { 19596 SELECT t1.*, t2.*, t3.*, t4.* 19597 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19598 INNER JOIN t3 ON t1.c=t3.c 19599 FULL JOIN t4 ON t1.d=t4.d 19600 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 19601 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19602} { 19603 30 130 230 330 130 30 230 30 330 30 19604 60 160 260 360 160 60 260 60 360 60 19605 90 190 290 390 190 90 290 90 390 90 19606} 19607do_execsql_test joinD-671 { 19608 SELECT t1.*, t2.*, t3.*, t4.* 19609 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 19610 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 19611 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 19612 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19613} { 19614 6 106 206 306 106 6 206 6 - - 19615 12 112 212 312 112 12 212 12 - - 19616 18 118 218 318 118 18 218 18 - - 19617 24 124 224 324 124 24 224 24 - - 19618 30 130 230 330 130 30 230 30 330 30 19619 36 136 236 336 136 36 236 36 - - 19620 42 142 242 342 142 42 242 42 - - 19621 48 148 248 348 148 48 248 48 - - 19622 54 154 254 354 154 54 254 54 - - 19623 60 160 260 360 160 60 260 60 360 60 19624 66 166 266 366 166 66 266 66 - - 19625 72 172 272 372 172 72 272 72 - - 19626 78 178 278 378 178 78 278 78 - - 19627 84 184 284 384 184 84 284 84 - - 19628 90 190 290 390 190 90 290 90 390 90 19629 - - - - - - - - 300 0 19630 - - - - - - - - 305 5 19631 - - - - - - - - 310 10 19632 - - - - - - - - 315 15 19633 - - - - - - - - 320 20 19634 - - - - - - - - 325 25 19635 - - - - - - - - 335 35 19636 - - - - - - - - 340 40 19637 - - - - - - - - 345 45 19638 - - - - - - - - 350 50 19639 - - - - - - - - 355 55 19640 - - - - - - - - 365 65 19641 - - - - - - - - 370 70 19642 - - - - - - - - 375 75 19643 - - - - - - - - 380 80 19644 - - - - - - - - 385 85 19645 - - - - - - - - 395 95 19646} 19647do_execsql_test joinD-672 { 19648 SELECT t1.*, t2.*, t3.*, t4.* 19649 FROM t1 RIGHT JOIN t2 ON t2.x>0 19650 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 19651 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 19652 WHERE t1.b IS NOT DISTINCT FROM t2.b 19653 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19654} { 19655 6 106 206 306 106 6 206 6 - - 19656 12 112 212 312 112 12 212 12 - - 19657 18 118 218 318 118 18 218 18 - - 19658 24 124 224 324 124 24 224 24 - - 19659 30 130 230 330 130 30 230 30 330 30 19660 36 136 236 336 136 36 236 36 - - 19661 42 142 242 342 142 42 242 42 - - 19662 48 148 248 348 148 48 248 48 - - 19663 54 154 254 354 154 54 254 54 - - 19664 60 160 260 360 160 60 260 60 360 60 19665 66 166 266 366 166 66 266 66 - - 19666 72 172 272 372 172 72 272 72 - - 19667 78 178 278 378 178 78 278 78 - - 19668 84 184 284 384 184 84 284 84 - - 19669 90 190 290 390 190 90 290 90 390 90 19670 - - - - - - - - 300 0 19671 - - - - - - - - 305 5 19672 - - - - - - - - 310 10 19673 - - - - - - - - 320 20 19674 - - - - - - - - 325 25 19675 - - - - - - - - 335 35 19676 - - - - - - - - 340 40 19677 - - - - - - - - 350 50 19678 - - - - - - - - 355 55 19679 - - - - - - - - 365 65 19680 - - - - - - - - 370 70 19681 - - - - - - - - 380 80 19682 - - - - - - - - 385 85 19683 - - - - - - - - 395 95 19684} 19685do_execsql_test joinD-673 { 19686 SELECT t1.*, t2.*, t3.*, t4.* 19687 FROM t1 RIGHT JOIN t2 ON t2.x>0 19688 INNER JOIN t3 ON t3.y>0 19689 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 19690 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 19691 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19692} { 19693 6 106 206 306 106 6 206 6 - - 19694 12 112 212 312 112 12 212 12 - - 19695 18 118 218 318 118 18 218 18 - - 19696 24 124 224 324 124 24 224 24 - - 19697 30 130 230 330 130 30 230 30 330 30 19698 36 136 236 336 136 36 236 36 - - 19699 42 142 242 342 142 42 242 42 - - 19700 48 148 248 348 148 48 248 48 - - 19701 54 154 254 354 154 54 254 54 - - 19702 60 160 260 360 160 60 260 60 360 60 19703 66 166 266 366 166 66 266 66 - - 19704 72 172 272 372 172 72 272 72 - - 19705 78 178 278 378 178 78 278 78 - - 19706 84 184 284 384 184 84 284 84 - - 19707 90 190 290 390 190 90 290 90 390 90 19708 - - - - - - - - 300 0 19709} 19710do_execsql_test joinD-674 { 19711 SELECT t1.*, t2.*, t3.*, t4.* 19712 FROM t1 RIGHT JOIN t2 ON t2.x>0 19713 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 19714 FULL JOIN t4 ON t4.z>0 19715 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 19716 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19717} { 19718 30 130 230 330 130 30 230 30 330 30 19719 60 160 260 360 160 60 260 60 360 60 19720 90 190 290 390 190 90 290 90 390 90 19721} 19722do_execsql_test joinD-675 { 19723 SELECT t1.*, t2.*, t3.*, t4.* 19724 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 19725 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 19726 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19727 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19728} { 19729 6 106 206 306 106 6 206 6 - - 19730 12 112 212 312 112 12 212 12 - - 19731 18 118 218 318 118 18 218 18 - - 19732 24 124 224 324 124 24 224 24 - - 19733 30 130 230 330 130 30 230 30 330 30 19734 36 136 236 336 136 36 236 36 - - 19735 42 142 242 342 142 42 242 42 - - 19736 48 148 248 348 148 48 248 48 - - 19737 54 154 254 354 154 54 254 54 - - 19738 60 160 260 360 160 60 260 60 360 60 19739 66 166 266 366 166 66 266 66 - - 19740 72 172 272 372 172 72 272 72 - - 19741 78 178 278 378 178 78 278 78 - - 19742 84 184 284 384 184 84 284 84 - - 19743 90 190 290 390 190 90 290 90 390 90 19744 - - - - - - - - 300 0 19745 - - - - - - - - 305 5 19746 - - - - - - - - 310 10 19747 - - - - - - - - 315 15 19748 - - - - - - - - 320 20 19749 - - - - - - - - 325 25 19750 - - - - - - - - 335 35 19751 - - - - - - - - 340 40 19752 - - - - - - - - 345 45 19753 - - - - - - - - 350 50 19754 - - - - - - - - 355 55 19755 - - - - - - - - 365 65 19756 - - - - - - - - 370 70 19757 - - - - - - - - 375 75 19758 - - - - - - - - 380 80 19759 - - - - - - - - 385 85 19760 - - - - - - - - 395 95 19761} 19762do_execsql_test joinD-676 { 19763 SELECT t1.*, t2.*, t3.*, t4.* 19764 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19765 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 19766 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 19767 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19768} { 19769 6 106 206 306 106 6 206 6 - - 19770 12 112 212 312 112 12 212 12 - - 19771 18 118 218 318 118 18 218 18 - - 19772 24 124 224 324 124 24 224 24 - - 19773 30 130 230 330 130 30 230 30 330 30 19774 36 136 236 336 136 36 236 36 - - 19775 42 142 242 342 142 42 242 42 - - 19776 48 148 248 348 148 48 248 48 - - 19777 54 154 254 354 154 54 254 54 - - 19778 60 160 260 360 160 60 260 60 360 60 19779 66 166 266 366 166 66 266 66 - - 19780 72 172 272 372 172 72 272 72 - - 19781 78 178 278 378 178 78 278 78 - - 19782 84 184 284 384 184 84 284 84 - - 19783 90 190 290 390 190 90 290 90 390 90 19784 - - - - - - - - 300 0 19785 - - - - - - - - 305 5 19786 - - - - - - - - 310 10 19787 - - - - - - - - 315 15 19788 - - - - - - - - 320 20 19789 - - - - - - - - 325 25 19790 - - - - - - - - 335 35 19791 - - - - - - - - 340 40 19792 - - - - - - - - 345 45 19793 - - - - - - - - 350 50 19794 - - - - - - - - 355 55 19795 - - - - - - - - 365 65 19796 - - - - - - - - 370 70 19797 - - - - - - - - 375 75 19798 - - - - - - - - 380 80 19799 - - - - - - - - 385 85 19800 - - - - - - - - 395 95 19801} 19802do_execsql_test joinD-677 { 19803 SELECT t1.*, t2.*, t3.*, t4.* 19804 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19805 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 19806 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 19807 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19808} { 19809 10 110 210 310 110 10 - - 310 10 19810 20 120 220 320 120 20 - - 320 20 19811 30 130 230 330 130 30 230 30 330 30 19812 40 140 240 340 140 40 - - 340 40 19813 50 150 250 350 150 50 - - 350 50 19814 60 160 260 360 160 60 260 60 360 60 19815 70 170 270 370 170 70 - - 370 70 19816 80 180 280 380 180 80 - - 380 80 19817 90 190 290 390 190 90 290 90 390 90 19818} 19819do_execsql_test joinD-678 { 19820 SELECT t1.*, t2.*, t3.*, t4.* 19821 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 19822 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 19823 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 19824 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19825} { 19826 10 110 210 310 110 10 - - 310 10 19827 20 120 220 320 120 20 - - 320 20 19828 30 130 230 330 130 30 230 30 330 30 19829 40 140 240 340 140 40 - - 340 40 19830 50 150 250 350 150 50 - - 350 50 19831 60 160 260 360 160 60 260 60 360 60 19832 70 170 270 370 170 70 - - 370 70 19833 80 180 280 380 180 80 - - 380 80 19834 90 190 290 390 190 90 290 90 390 90 19835} 19836do_execsql_test joinD-679 { 19837 SELECT t1.*, t2.*, t3.*, t4.* 19838 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19839 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 19840 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 19841 WHERE t2.x>0 19842 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19843} { 19844 10 110 210 310 110 10 - - 310 10 19845 20 120 220 320 120 20 - - 320 20 19846 30 130 230 330 130 30 230 30 330 30 19847 40 140 240 340 140 40 - - 340 40 19848 50 150 250 350 150 50 - - 350 50 19849 60 160 260 360 160 60 260 60 360 60 19850 70 170 270 370 170 70 - - 370 70 19851 80 180 280 380 180 80 - - 380 80 19852 90 190 290 390 190 90 290 90 390 90 19853} 19854do_execsql_test joinD-680 { 19855 SELECT t1.*, t2.*, t3.*, t4.* 19856 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19857 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 19858 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 19859 WHERE (t2.x>0 OR t2.x IS NULL) 19860 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19861} { 19862 10 110 210 310 110 10 - - 310 10 19863 20 120 220 320 120 20 - - 320 20 19864 30 130 230 330 130 30 230 30 330 30 19865 40 140 240 340 140 40 - - 340 40 19866 50 150 250 350 150 50 - - 350 50 19867 60 160 260 360 160 60 260 60 360 60 19868 70 170 270 370 170 70 - - 370 70 19869 80 180 280 380 180 80 - - 380 80 19870 90 190 290 390 190 90 290 90 390 90 19871} 19872do_execsql_test joinD-681 { 19873 SELECT t1.*, t2.*, t3.*, t4.* 19874 FROM t1 RIGHT JOIN t2 ON true 19875 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 19876 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 19877 WHERE t1.b=t2.b AND t2.x>0 19878 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19879} { 19880 10 110 210 310 110 10 - - 310 10 19881 20 120 220 320 120 20 - - 320 20 19882 30 130 230 330 130 30 230 30 330 30 19883 40 140 240 340 140 40 - - 340 40 19884 50 150 250 350 150 50 - - 350 50 19885 60 160 260 360 160 60 260 60 360 60 19886 70 170 270 370 170 70 - - 370 70 19887 80 180 280 380 180 80 - - 380 80 19888 90 190 290 390 190 90 290 90 390 90 19889} 19890do_execsql_test joinD-682 { 19891 SELECT t1.*, t2.*, t3.*, t4.* 19892 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19893 LEFT JOIN t3 ON t1.c=t3.c 19894 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 19895 WHERE t3.y>0 19896 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19897} { 19898 30 130 230 330 130 30 230 30 330 30 19899 60 160 260 360 160 60 260 60 360 60 19900 90 190 290 390 190 90 290 90 390 90 19901} 19902do_execsql_test joinD-683 { 19903 SELECT t1.*, t2.*, t3.*, t4.* 19904 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19905 LEFT JOIN t3 ON t1.c=t3.c 19906 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 19907 WHERE t3.y>0 OR t3.y IS NULL 19908 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19909} { 19910 10 110 210 310 110 10 - - 310 10 19911 20 120 220 320 120 20 - - 320 20 19912 30 130 230 330 130 30 230 30 330 30 19913 40 140 240 340 140 40 - - 340 40 19914 50 150 250 350 150 50 - - 350 50 19915 60 160 260 360 160 60 260 60 360 60 19916 70 170 270 370 170 70 - - 370 70 19917 80 180 280 380 180 80 - - 380 80 19918 90 190 290 390 190 90 290 90 390 90 19919} 19920do_execsql_test joinD-684 { 19921 SELECT t1.*, t2.*, t3.*, t4.* 19922 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19923 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 19924 INNER JOIN t4 ON t1.d=t4.d 19925 WHERE t4.z>0 19926 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19927} { 19928 10 110 210 310 110 10 - - 310 10 19929 20 120 220 320 120 20 - - 320 20 19930 30 130 230 330 130 30 230 30 330 30 19931 40 140 240 340 140 40 - - 340 40 19932 50 150 250 350 150 50 - - 350 50 19933 60 160 260 360 160 60 260 60 360 60 19934 70 170 270 370 170 70 - - 370 70 19935 80 180 280 380 180 80 - - 380 80 19936 90 190 290 390 190 90 290 90 390 90 19937} 19938do_execsql_test joinD-685 { 19939 SELECT t1.*, t2.*, t3.*, t4.* 19940 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19941 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 19942 INNER JOIN t4 ON t1.d=t4.d 19943 WHERE t4.z IS NULL OR t4.z>0 19944 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19945} { 19946 10 110 210 310 110 10 - - 310 10 19947 20 120 220 320 120 20 - - 320 20 19948 30 130 230 330 130 30 230 30 330 30 19949 40 140 240 340 140 40 - - 340 40 19950 50 150 250 350 150 50 - - 350 50 19951 60 160 260 360 160 60 260 60 360 60 19952 70 170 270 370 170 70 - - 370 70 19953 80 180 280 380 180 80 - - 380 80 19954 90 190 290 390 190 90 290 90 390 90 19955} 19956do_execsql_test joinD-686 { 19957 SELECT t1.*, t2.*, t3.*, t4.* 19958 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19959 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 19960 INNER JOIN t4 ON t1.d=t4.d 19961 WHERE t2.x>0 AND t4.z>0 19962 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19963} { 19964 10 110 210 310 110 10 - - 310 10 19965 20 120 220 320 120 20 - - 320 20 19966 30 130 230 330 130 30 230 30 330 30 19967 40 140 240 340 140 40 - - 340 40 19968 50 150 250 350 150 50 - - 350 50 19969 60 160 260 360 160 60 260 60 360 60 19970 70 170 270 370 170 70 - - 370 70 19971 80 180 280 380 180 80 - - 380 80 19972 90 190 290 390 190 90 290 90 390 90 19973} 19974do_execsql_test joinD-687 { 19975 SELECT t1.*, t2.*, t3.*, t4.* 19976 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 19977 LEFT JOIN t3 ON t1.c=t3.c 19978 INNER JOIN t4 ON t1.d=t4.d 19979 WHERE t4.z>0 AND t3.y>0 19980 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19981} { 19982 30 130 230 330 130 30 230 30 330 30 19983 60 160 260 360 160 60 260 60 360 60 19984 90 190 290 390 190 90 290 90 390 90 19985} 19986do_execsql_test joinD-688 { 19987 SELECT t1.*, t2.*, t3.*, t4.* 19988 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 19989 LEFT JOIN t3 ON t1.c=t3.c 19990 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 19991 WHERE t2.x>0 AND t3.y>0 19992 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 19993} { 19994 30 130 230 330 130 30 230 30 330 30 19995 60 160 260 360 160 60 260 60 360 60 19996 90 190 290 390 190 90 290 90 390 90 19997} 19998do_execsql_test joinD-689 { 19999 SELECT t1.*, t2.*, t3.*, t4.* 20000 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 20001 LEFT JOIN t3 ON t1.c=t3.c 20002 INNER JOIN t4 ON t1.d=t4.d 20003 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 20004 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20005} { 20006 30 130 230 330 130 30 230 30 330 30 20007 60 160 260 360 160 60 260 60 360 60 20008 90 190 290 390 190 90 290 90 390 90 20009} 20010do_execsql_test joinD-690 { 20011 SELECT t1.*, t2.*, t3.*, t4.* 20012 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 20013 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 20014 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 20015 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20016} { 20017 10 110 210 310 110 10 - - 310 10 20018 20 120 220 320 120 20 - - 320 20 20019 30 130 230 330 130 30 230 30 330 30 20020 40 140 240 340 140 40 - - 340 40 20021 50 150 250 350 150 50 - - 350 50 20022 60 160 260 360 160 60 260 60 360 60 20023 70 170 270 370 170 70 - - 370 70 20024 80 180 280 380 180 80 - - 380 80 20025 90 190 290 390 190 90 290 90 390 90 20026} 20027do_execsql_test joinD-691 { 20028 SELECT t1.*, t2.*, t3.*, t4.* 20029 FROM t1 RIGHT JOIN t2 ON t2.x>0 20030 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 20031 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 20032 WHERE t1.b IS NOT DISTINCT FROM t2.b 20033 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20034} { 20035 10 110 210 310 110 10 - - 310 10 20036 20 120 220 320 120 20 - - 320 20 20037 30 130 230 330 130 30 230 30 330 30 20038 40 140 240 340 140 40 - - 340 40 20039 50 150 250 350 150 50 - - 350 50 20040 60 160 260 360 160 60 260 60 360 60 20041 70 170 270 370 170 70 - - 370 70 20042 80 180 280 380 180 80 - - 380 80 20043 90 190 290 390 190 90 290 90 390 90 20044} 20045do_execsql_test joinD-692 { 20046 SELECT t1.*, t2.*, t3.*, t4.* 20047 FROM t1 RIGHT JOIN t2 ON t2.x>0 20048 LEFT JOIN t3 ON t3.y>0 20049 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 20050 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 20051 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20052} { 20053 30 130 230 330 130 30 230 30 330 30 20054 60 160 260 360 160 60 260 60 360 60 20055 90 190 290 390 190 90 290 90 390 90 20056} 20057do_execsql_test joinD-693 { 20058 SELECT t1.*, t2.*, t3.*, t4.* 20059 FROM t1 RIGHT JOIN t2 ON t2.x>0 20060 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 20061 INNER JOIN t4 ON t4.z>0 20062 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 20063 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20064} { 20065 10 110 210 310 110 10 - - 310 10 20066 20 120 220 320 120 20 - - 320 20 20067 30 130 230 330 130 30 230 30 330 30 20068 40 140 240 340 140 40 - - 340 40 20069 50 150 250 350 150 50 - - 350 50 20070 60 160 260 360 160 60 260 60 360 60 20071 70 170 270 370 170 70 - - 370 70 20072 80 180 280 380 180 80 - - 380 80 20073 90 190 290 390 190 90 290 90 390 90 20074} 20075do_execsql_test joinD-694 { 20076 SELECT t1.*, t2.*, t3.*, t4.* 20077 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 20078 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20079 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 20080 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20081} { 20082 10 110 210 310 110 10 - - 310 10 20083 20 120 220 320 120 20 - - 320 20 20084 30 130 230 330 130 30 230 30 330 30 20085 40 140 240 340 140 40 - - 340 40 20086 50 150 250 350 150 50 - - 350 50 20087 60 160 260 360 160 60 260 60 360 60 20088 70 170 270 370 170 70 - - 370 70 20089 80 180 280 380 180 80 - - 380 80 20090 90 190 290 390 190 90 290 90 390 90 20091} 20092do_execsql_test joinD-695 { 20093 SELECT t1.*, t2.*, t3.*, t4.* 20094 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 20095 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 20096 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 20097 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20098} { 20099 10 110 210 310 110 10 - - 310 10 20100 20 120 220 320 120 20 - - 320 20 20101 30 130 230 330 130 30 230 30 330 30 20102 40 140 240 340 140 40 - - 340 40 20103 50 150 250 350 150 50 - - 350 50 20104 60 160 260 360 160 60 260 60 360 60 20105 70 170 270 370 170 70 - - 370 70 20106 80 180 280 380 180 80 - - 380 80 20107 90 190 290 390 190 90 290 90 390 90 20108} 20109do_execsql_test joinD-696 { 20110 SELECT t1.*, t2.*, t3.*, t4.* 20111 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 20112 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20113 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20114 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20115} { 20116 2 102 202 302 102 2 - - - - 20117 4 104 204 304 104 4 - - - - 20118 6 106 206 306 106 6 206 6 - - 20119 8 108 208 308 108 8 - - - - 20120 10 110 210 310 110 10 - - 310 10 20121 12 112 212 312 112 12 212 12 - - 20122 14 114 214 314 114 14 - - - - 20123 16 116 216 316 116 16 - - - - 20124 18 118 218 318 118 18 218 18 - - 20125 20 120 220 320 120 20 - - 320 20 20126 22 122 222 322 122 22 - - - - 20127 24 124 224 324 124 24 224 24 - - 20128 26 126 226 326 126 26 - - - - 20129 28 128 228 328 128 28 - - - - 20130 30 130 230 330 130 30 230 30 330 30 20131 32 132 232 332 132 32 - - - - 20132 34 134 234 334 134 34 - - - - 20133 36 136 236 336 136 36 236 36 - - 20134 38 138 238 338 138 38 - - - - 20135 40 140 240 340 140 40 - - 340 40 20136 42 142 242 342 142 42 242 42 - - 20137 44 144 244 344 144 44 - - - - 20138 46 146 246 346 146 46 - - - - 20139 48 148 248 348 148 48 248 48 - - 20140 50 150 250 350 150 50 - - 350 50 20141 52 152 252 352 152 52 - - - - 20142 54 154 254 354 154 54 254 54 - - 20143 56 156 256 356 156 56 - - - - 20144 58 158 258 358 158 58 - - - - 20145 60 160 260 360 160 60 260 60 360 60 20146 62 162 262 362 162 62 - - - - 20147 64 164 264 364 164 64 - - - - 20148 66 166 266 366 166 66 266 66 - - 20149 68 168 268 368 168 68 - - - - 20150 70 170 270 370 170 70 - - 370 70 20151 72 172 272 372 172 72 272 72 - - 20152 74 174 274 374 174 74 - - - - 20153 76 176 276 376 176 76 - - - - 20154 78 178 278 378 178 78 278 78 - - 20155 80 180 280 380 180 80 - - 380 80 20156 82 182 282 382 182 82 - - - - 20157 84 184 284 384 184 84 284 84 - - 20158 86 186 286 386 186 86 - - - - 20159 88 188 288 388 188 88 - - - - 20160 90 190 290 390 190 90 290 90 390 90 20161 92 192 292 392 192 92 - - - - 20162 94 194 294 394 194 94 - - - - 20163 - - - - 100 0 - - - - 20164} 20165do_execsql_test joinD-697 { 20166 SELECT t1.*, t2.*, t3.*, t4.* 20167 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 20168 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20169 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20170 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20171} { 20172 2 102 202 302 102 2 - - - - 20173 4 104 204 304 104 4 - - - - 20174 6 106 206 306 106 6 206 6 - - 20175 8 108 208 308 108 8 - - - - 20176 10 110 210 310 110 10 - - 310 10 20177 12 112 212 312 112 12 212 12 - - 20178 14 114 214 314 114 14 - - - - 20179 16 116 216 316 116 16 - - - - 20180 18 118 218 318 118 18 218 18 - - 20181 20 120 220 320 120 20 - - 320 20 20182 22 122 222 322 122 22 - - - - 20183 24 124 224 324 124 24 224 24 - - 20184 26 126 226 326 126 26 - - - - 20185 28 128 228 328 128 28 - - - - 20186 30 130 230 330 130 30 230 30 330 30 20187 32 132 232 332 132 32 - - - - 20188 34 134 234 334 134 34 - - - - 20189 36 136 236 336 136 36 236 36 - - 20190 38 138 238 338 138 38 - - - - 20191 40 140 240 340 140 40 - - 340 40 20192 42 142 242 342 142 42 242 42 - - 20193 44 144 244 344 144 44 - - - - 20194 46 146 246 346 146 46 - - - - 20195 48 148 248 348 148 48 248 48 - - 20196 50 150 250 350 150 50 - - 350 50 20197 52 152 252 352 152 52 - - - - 20198 54 154 254 354 154 54 254 54 - - 20199 56 156 256 356 156 56 - - - - 20200 58 158 258 358 158 58 - - - - 20201 60 160 260 360 160 60 260 60 360 60 20202 62 162 262 362 162 62 - - - - 20203 64 164 264 364 164 64 - - - - 20204 66 166 266 366 166 66 266 66 - - 20205 68 168 268 368 168 68 - - - - 20206 70 170 270 370 170 70 - - 370 70 20207 72 172 272 372 172 72 272 72 - - 20208 74 174 274 374 174 74 - - - - 20209 76 176 276 376 176 76 - - - - 20210 78 178 278 378 178 78 278 78 - - 20211 80 180 280 380 180 80 - - 380 80 20212 82 182 282 382 182 82 - - - - 20213 84 184 284 384 184 84 284 84 - - 20214 86 186 286 386 186 86 - - - - 20215 88 188 288 388 188 88 - - - - 20216 90 190 290 390 190 90 290 90 390 90 20217 92 192 292 392 192 92 - - - - 20218 94 194 294 394 194 94 - - - - 20219 - - - - 100 0 - - - - 20220} 20221do_execsql_test joinD-698 { 20222 SELECT t1.*, t2.*, t3.*, t4.* 20223 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 20224 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20225 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20226 WHERE t2.x>0 20227 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20228} { 20229 2 102 202 302 102 2 - - - - 20230 4 104 204 304 104 4 - - - - 20231 6 106 206 306 106 6 206 6 - - 20232 8 108 208 308 108 8 - - - - 20233 10 110 210 310 110 10 - - 310 10 20234 12 112 212 312 112 12 212 12 - - 20235 14 114 214 314 114 14 - - - - 20236 16 116 216 316 116 16 - - - - 20237 18 118 218 318 118 18 218 18 - - 20238 20 120 220 320 120 20 - - 320 20 20239 22 122 222 322 122 22 - - - - 20240 24 124 224 324 124 24 224 24 - - 20241 26 126 226 326 126 26 - - - - 20242 28 128 228 328 128 28 - - - - 20243 30 130 230 330 130 30 230 30 330 30 20244 32 132 232 332 132 32 - - - - 20245 34 134 234 334 134 34 - - - - 20246 36 136 236 336 136 36 236 36 - - 20247 38 138 238 338 138 38 - - - - 20248 40 140 240 340 140 40 - - 340 40 20249 42 142 242 342 142 42 242 42 - - 20250 44 144 244 344 144 44 - - - - 20251 46 146 246 346 146 46 - - - - 20252 48 148 248 348 148 48 248 48 - - 20253 50 150 250 350 150 50 - - 350 50 20254 52 152 252 352 152 52 - - - - 20255 54 154 254 354 154 54 254 54 - - 20256 56 156 256 356 156 56 - - - - 20257 58 158 258 358 158 58 - - - - 20258 60 160 260 360 160 60 260 60 360 60 20259 62 162 262 362 162 62 - - - - 20260 64 164 264 364 164 64 - - - - 20261 66 166 266 366 166 66 266 66 - - 20262 68 168 268 368 168 68 - - - - 20263 70 170 270 370 170 70 - - 370 70 20264 72 172 272 372 172 72 272 72 - - 20265 74 174 274 374 174 74 - - - - 20266 76 176 276 376 176 76 - - - - 20267 78 178 278 378 178 78 278 78 - - 20268 80 180 280 380 180 80 - - 380 80 20269 82 182 282 382 182 82 - - - - 20270 84 184 284 384 184 84 284 84 - - 20271 86 186 286 386 186 86 - - - - 20272 88 188 288 388 188 88 - - - - 20273 90 190 290 390 190 90 290 90 390 90 20274 92 192 292 392 192 92 - - - - 20275 94 194 294 394 194 94 - - - - 20276} 20277do_execsql_test joinD-699 { 20278 SELECT t1.*, t2.*, t3.*, t4.* 20279 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 20280 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20281 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20282 WHERE (t2.x>0 OR t2.x IS NULL) 20283 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20284} { 20285 2 102 202 302 102 2 - - - - 20286 4 104 204 304 104 4 - - - - 20287 6 106 206 306 106 6 206 6 - - 20288 8 108 208 308 108 8 - - - - 20289 10 110 210 310 110 10 - - 310 10 20290 12 112 212 312 112 12 212 12 - - 20291 14 114 214 314 114 14 - - - - 20292 16 116 216 316 116 16 - - - - 20293 18 118 218 318 118 18 218 18 - - 20294 20 120 220 320 120 20 - - 320 20 20295 22 122 222 322 122 22 - - - - 20296 24 124 224 324 124 24 224 24 - - 20297 26 126 226 326 126 26 - - - - 20298 28 128 228 328 128 28 - - - - 20299 30 130 230 330 130 30 230 30 330 30 20300 32 132 232 332 132 32 - - - - 20301 34 134 234 334 134 34 - - - - 20302 36 136 236 336 136 36 236 36 - - 20303 38 138 238 338 138 38 - - - - 20304 40 140 240 340 140 40 - - 340 40 20305 42 142 242 342 142 42 242 42 - - 20306 44 144 244 344 144 44 - - - - 20307 46 146 246 346 146 46 - - - - 20308 48 148 248 348 148 48 248 48 - - 20309 50 150 250 350 150 50 - - 350 50 20310 52 152 252 352 152 52 - - - - 20311 54 154 254 354 154 54 254 54 - - 20312 56 156 256 356 156 56 - - - - 20313 58 158 258 358 158 58 - - - - 20314 60 160 260 360 160 60 260 60 360 60 20315 62 162 262 362 162 62 - - - - 20316 64 164 264 364 164 64 - - - - 20317 66 166 266 366 166 66 266 66 - - 20318 68 168 268 368 168 68 - - - - 20319 70 170 270 370 170 70 - - 370 70 20320 72 172 272 372 172 72 272 72 - - 20321 74 174 274 374 174 74 - - - - 20322 76 176 276 376 176 76 - - - - 20323 78 178 278 378 178 78 278 78 - - 20324 80 180 280 380 180 80 - - 380 80 20325 82 182 282 382 182 82 - - - - 20326 84 184 284 384 184 84 284 84 - - 20327 86 186 286 386 186 86 - - - - 20328 88 188 288 388 188 88 - - - - 20329 90 190 290 390 190 90 290 90 390 90 20330 92 192 292 392 192 92 - - - - 20331 94 194 294 394 194 94 - - - - 20332} 20333do_execsql_test joinD-700 { 20334 SELECT t1.*, t2.*, t3.*, t4.* 20335 FROM t1 RIGHT JOIN t2 ON true 20336 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20337 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20338 WHERE t1.b=t2.b AND t2.x>0 20339 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20340} { 20341 2 102 202 302 102 2 - - - - 20342 4 104 204 304 104 4 - - - - 20343 6 106 206 306 106 6 206 6 - - 20344 8 108 208 308 108 8 - - - - 20345 10 110 210 310 110 10 - - 310 10 20346 12 112 212 312 112 12 212 12 - - 20347 14 114 214 314 114 14 - - - - 20348 16 116 216 316 116 16 - - - - 20349 18 118 218 318 118 18 218 18 - - 20350 20 120 220 320 120 20 - - 320 20 20351 22 122 222 322 122 22 - - - - 20352 24 124 224 324 124 24 224 24 - - 20353 26 126 226 326 126 26 - - - - 20354 28 128 228 328 128 28 - - - - 20355 30 130 230 330 130 30 230 30 330 30 20356 32 132 232 332 132 32 - - - - 20357 34 134 234 334 134 34 - - - - 20358 36 136 236 336 136 36 236 36 - - 20359 38 138 238 338 138 38 - - - - 20360 40 140 240 340 140 40 - - 340 40 20361 42 142 242 342 142 42 242 42 - - 20362 44 144 244 344 144 44 - - - - 20363 46 146 246 346 146 46 - - - - 20364 48 148 248 348 148 48 248 48 - - 20365 50 150 250 350 150 50 - - 350 50 20366 52 152 252 352 152 52 - - - - 20367 54 154 254 354 154 54 254 54 - - 20368 56 156 256 356 156 56 - - - - 20369 58 158 258 358 158 58 - - - - 20370 60 160 260 360 160 60 260 60 360 60 20371 62 162 262 362 162 62 - - - - 20372 64 164 264 364 164 64 - - - - 20373 66 166 266 366 166 66 266 66 - - 20374 68 168 268 368 168 68 - - - - 20375 70 170 270 370 170 70 - - 370 70 20376 72 172 272 372 172 72 272 72 - - 20377 74 174 274 374 174 74 - - - - 20378 76 176 276 376 176 76 - - - - 20379 78 178 278 378 178 78 278 78 - - 20380 80 180 280 380 180 80 - - 380 80 20381 82 182 282 382 182 82 - - - - 20382 84 184 284 384 184 84 284 84 - - 20383 86 186 286 386 186 86 - - - - 20384 88 188 288 388 188 88 - - - - 20385 90 190 290 390 190 90 290 90 390 90 20386 92 192 292 392 192 92 - - - - 20387 94 194 294 394 194 94 - - - - 20388} 20389do_execsql_test joinD-701 { 20390 SELECT t1.*, t2.*, t3.*, t4.* 20391 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 20392 LEFT JOIN t3 ON t1.c=t3.c 20393 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20394 WHERE t3.y>0 20395 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20396} { 20397 6 106 206 306 106 6 206 6 - - 20398 12 112 212 312 112 12 212 12 - - 20399 18 118 218 318 118 18 218 18 - - 20400 24 124 224 324 124 24 224 24 - - 20401 30 130 230 330 130 30 230 30 330 30 20402 36 136 236 336 136 36 236 36 - - 20403 42 142 242 342 142 42 242 42 - - 20404 48 148 248 348 148 48 248 48 - - 20405 54 154 254 354 154 54 254 54 - - 20406 60 160 260 360 160 60 260 60 360 60 20407 66 166 266 366 166 66 266 66 - - 20408 72 172 272 372 172 72 272 72 - - 20409 78 178 278 378 178 78 278 78 - - 20410 84 184 284 384 184 84 284 84 - - 20411 90 190 290 390 190 90 290 90 390 90 20412} 20413do_execsql_test joinD-702 { 20414 SELECT t1.*, t2.*, t3.*, t4.* 20415 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 20416 LEFT JOIN t3 ON t1.c=t3.c 20417 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20418 WHERE t3.y>0 OR t3.y IS NULL 20419 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20420} { 20421 2 102 202 302 102 2 - - - - 20422 4 104 204 304 104 4 - - - - 20423 6 106 206 306 106 6 206 6 - - 20424 8 108 208 308 108 8 - - - - 20425 10 110 210 310 110 10 - - 310 10 20426 12 112 212 312 112 12 212 12 - - 20427 14 114 214 314 114 14 - - - - 20428 16 116 216 316 116 16 - - - - 20429 18 118 218 318 118 18 218 18 - - 20430 20 120 220 320 120 20 - - 320 20 20431 22 122 222 322 122 22 - - - - 20432 24 124 224 324 124 24 224 24 - - 20433 26 126 226 326 126 26 - - - - 20434 28 128 228 328 128 28 - - - - 20435 30 130 230 330 130 30 230 30 330 30 20436 32 132 232 332 132 32 - - - - 20437 34 134 234 334 134 34 - - - - 20438 36 136 236 336 136 36 236 36 - - 20439 38 138 238 338 138 38 - - - - 20440 40 140 240 340 140 40 - - 340 40 20441 42 142 242 342 142 42 242 42 - - 20442 44 144 244 344 144 44 - - - - 20443 46 146 246 346 146 46 - - - - 20444 48 148 248 348 148 48 248 48 - - 20445 50 150 250 350 150 50 - - 350 50 20446 52 152 252 352 152 52 - - - - 20447 54 154 254 354 154 54 254 54 - - 20448 56 156 256 356 156 56 - - - - 20449 58 158 258 358 158 58 - - - - 20450 60 160 260 360 160 60 260 60 360 60 20451 62 162 262 362 162 62 - - - - 20452 64 164 264 364 164 64 - - - - 20453 66 166 266 366 166 66 266 66 - - 20454 68 168 268 368 168 68 - - - - 20455 70 170 270 370 170 70 - - 370 70 20456 72 172 272 372 172 72 272 72 - - 20457 74 174 274 374 174 74 - - - - 20458 76 176 276 376 176 76 - - - - 20459 78 178 278 378 178 78 278 78 - - 20460 80 180 280 380 180 80 - - 380 80 20461 82 182 282 382 182 82 - - - - 20462 84 184 284 384 184 84 284 84 - - 20463 86 186 286 386 186 86 - - - - 20464 88 188 288 388 188 88 - - - - 20465 90 190 290 390 190 90 290 90 390 90 20466 92 192 292 392 192 92 - - - - 20467 94 194 294 394 194 94 - - - - 20468 - - - - 100 0 - - - - 20469} 20470do_execsql_test joinD-703 { 20471 SELECT t1.*, t2.*, t3.*, t4.* 20472 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 20473 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20474 LEFT JOIN t4 ON t1.d=t4.d 20475 WHERE t4.z>0 20476 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20477} { 20478 10 110 210 310 110 10 - - 310 10 20479 20 120 220 320 120 20 - - 320 20 20480 30 130 230 330 130 30 230 30 330 30 20481 40 140 240 340 140 40 - - 340 40 20482 50 150 250 350 150 50 - - 350 50 20483 60 160 260 360 160 60 260 60 360 60 20484 70 170 270 370 170 70 - - 370 70 20485 80 180 280 380 180 80 - - 380 80 20486 90 190 290 390 190 90 290 90 390 90 20487} 20488do_execsql_test joinD-704 { 20489 SELECT t1.*, t2.*, t3.*, t4.* 20490 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 20491 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20492 LEFT JOIN t4 ON t1.d=t4.d 20493 WHERE t4.z IS NULL OR t4.z>0 20494 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20495} { 20496 2 102 202 302 102 2 - - - - 20497 4 104 204 304 104 4 - - - - 20498 6 106 206 306 106 6 206 6 - - 20499 8 108 208 308 108 8 - - - - 20500 10 110 210 310 110 10 - - 310 10 20501 12 112 212 312 112 12 212 12 - - 20502 14 114 214 314 114 14 - - - - 20503 16 116 216 316 116 16 - - - - 20504 18 118 218 318 118 18 218 18 - - 20505 20 120 220 320 120 20 - - 320 20 20506 22 122 222 322 122 22 - - - - 20507 24 124 224 324 124 24 224 24 - - 20508 26 126 226 326 126 26 - - - - 20509 28 128 228 328 128 28 - - - - 20510 30 130 230 330 130 30 230 30 330 30 20511 32 132 232 332 132 32 - - - - 20512 34 134 234 334 134 34 - - - - 20513 36 136 236 336 136 36 236 36 - - 20514 38 138 238 338 138 38 - - - - 20515 40 140 240 340 140 40 - - 340 40 20516 42 142 242 342 142 42 242 42 - - 20517 44 144 244 344 144 44 - - - - 20518 46 146 246 346 146 46 - - - - 20519 48 148 248 348 148 48 248 48 - - 20520 50 150 250 350 150 50 - - 350 50 20521 52 152 252 352 152 52 - - - - 20522 54 154 254 354 154 54 254 54 - - 20523 56 156 256 356 156 56 - - - - 20524 58 158 258 358 158 58 - - - - 20525 60 160 260 360 160 60 260 60 360 60 20526 62 162 262 362 162 62 - - - - 20527 64 164 264 364 164 64 - - - - 20528 66 166 266 366 166 66 266 66 - - 20529 68 168 268 368 168 68 - - - - 20530 70 170 270 370 170 70 - - 370 70 20531 72 172 272 372 172 72 272 72 - - 20532 74 174 274 374 174 74 - - - - 20533 76 176 276 376 176 76 - - - - 20534 78 178 278 378 178 78 278 78 - - 20535 80 180 280 380 180 80 - - 380 80 20536 82 182 282 382 182 82 - - - - 20537 84 184 284 384 184 84 284 84 - - 20538 86 186 286 386 186 86 - - - - 20539 88 188 288 388 188 88 - - - - 20540 90 190 290 390 190 90 290 90 390 90 20541 92 192 292 392 192 92 - - - - 20542 94 194 294 394 194 94 - - - - 20543 - - - - 100 0 - - - - 20544} 20545do_execsql_test joinD-705 { 20546 SELECT t1.*, t2.*, t3.*, t4.* 20547 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 20548 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20549 LEFT JOIN t4 ON t1.d=t4.d 20550 WHERE t2.x>0 AND t4.z>0 20551 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20552} { 20553 10 110 210 310 110 10 - - 310 10 20554 20 120 220 320 120 20 - - 320 20 20555 30 130 230 330 130 30 230 30 330 30 20556 40 140 240 340 140 40 - - 340 40 20557 50 150 250 350 150 50 - - 350 50 20558 60 160 260 360 160 60 260 60 360 60 20559 70 170 270 370 170 70 - - 370 70 20560 80 180 280 380 180 80 - - 380 80 20561 90 190 290 390 190 90 290 90 390 90 20562} 20563do_execsql_test joinD-706 { 20564 SELECT t1.*, t2.*, t3.*, t4.* 20565 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 20566 LEFT JOIN t3 ON t1.c=t3.c 20567 LEFT JOIN t4 ON t1.d=t4.d 20568 WHERE t4.z>0 AND t3.y>0 20569 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20570} { 20571 30 130 230 330 130 30 230 30 330 30 20572 60 160 260 360 160 60 260 60 360 60 20573 90 190 290 390 190 90 290 90 390 90 20574} 20575do_execsql_test joinD-707 { 20576 SELECT t1.*, t2.*, t3.*, t4.* 20577 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 20578 LEFT JOIN t3 ON t1.c=t3.c 20579 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20580 WHERE t2.x>0 AND t3.y>0 20581 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20582} { 20583 6 106 206 306 106 6 206 6 - - 20584 12 112 212 312 112 12 212 12 - - 20585 18 118 218 318 118 18 218 18 - - 20586 24 124 224 324 124 24 224 24 - - 20587 30 130 230 330 130 30 230 30 330 30 20588 36 136 236 336 136 36 236 36 - - 20589 42 142 242 342 142 42 242 42 - - 20590 48 148 248 348 148 48 248 48 - - 20591 54 154 254 354 154 54 254 54 - - 20592 60 160 260 360 160 60 260 60 360 60 20593 66 166 266 366 166 66 266 66 - - 20594 72 172 272 372 172 72 272 72 - - 20595 78 178 278 378 178 78 278 78 - - 20596 84 184 284 384 184 84 284 84 - - 20597 90 190 290 390 190 90 290 90 390 90 20598} 20599do_execsql_test joinD-708 { 20600 SELECT t1.*, t2.*, t3.*, t4.* 20601 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 20602 LEFT JOIN t3 ON t1.c=t3.c 20603 LEFT JOIN t4 ON t1.d=t4.d 20604 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 20605 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20606} { 20607 30 130 230 330 130 30 230 30 330 30 20608 60 160 260 360 160 60 260 60 360 60 20609 90 190 290 390 190 90 290 90 390 90 20610} 20611do_execsql_test joinD-709 { 20612 SELECT t1.*, t2.*, t3.*, t4.* 20613 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 20614 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 20615 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 20616 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20617} { 20618 2 102 202 302 102 2 - - - - 20619 4 104 204 304 104 4 - - - - 20620 6 106 206 306 106 6 206 6 - - 20621 8 108 208 308 108 8 - - - - 20622 10 110 210 310 110 10 - - 310 10 20623 12 112 212 312 112 12 212 12 - - 20624 14 114 214 314 114 14 - - - - 20625 16 116 216 316 116 16 - - - - 20626 18 118 218 318 118 18 218 18 - - 20627 20 120 220 320 120 20 - - 320 20 20628 22 122 222 322 122 22 - - - - 20629 24 124 224 324 124 24 224 24 - - 20630 26 126 226 326 126 26 - - - - 20631 28 128 228 328 128 28 - - - - 20632 30 130 230 330 130 30 230 30 330 30 20633 32 132 232 332 132 32 - - - - 20634 34 134 234 334 134 34 - - - - 20635 36 136 236 336 136 36 236 36 - - 20636 38 138 238 338 138 38 - - - - 20637 40 140 240 340 140 40 - - 340 40 20638 42 142 242 342 142 42 242 42 - - 20639 44 144 244 344 144 44 - - - - 20640 46 146 246 346 146 46 - - - - 20641 48 148 248 348 148 48 248 48 - - 20642 50 150 250 350 150 50 - - 350 50 20643 52 152 252 352 152 52 - - - - 20644 54 154 254 354 154 54 254 54 - - 20645 56 156 256 356 156 56 - - - - 20646 58 158 258 358 158 58 - - - - 20647 60 160 260 360 160 60 260 60 360 60 20648 62 162 262 362 162 62 - - - - 20649 64 164 264 364 164 64 - - - - 20650 66 166 266 366 166 66 266 66 - - 20651 68 168 268 368 168 68 - - - - 20652 70 170 270 370 170 70 - - 370 70 20653 72 172 272 372 172 72 272 72 - - 20654 74 174 274 374 174 74 - - - - 20655 76 176 276 376 176 76 - - - - 20656 78 178 278 378 178 78 278 78 - - 20657 80 180 280 380 180 80 - - 380 80 20658 82 182 282 382 182 82 - - - - 20659 84 184 284 384 184 84 284 84 - - 20660 86 186 286 386 186 86 - - - - 20661 88 188 288 388 188 88 - - - - 20662 90 190 290 390 190 90 290 90 390 90 20663 92 192 292 392 192 92 - - - - 20664 94 194 294 394 194 94 - - - - 20665 - - - - 100 0 - - - - 20666} 20667do_execsql_test joinD-710 { 20668 SELECT t1.*, t2.*, t3.*, t4.* 20669 FROM t1 RIGHT JOIN t2 ON t2.x>0 20670 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 20671 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 20672 WHERE t1.b IS NOT DISTINCT FROM t2.b 20673 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20674} { 20675 2 102 202 302 102 2 - - - - 20676 4 104 204 304 104 4 - - - - 20677 6 106 206 306 106 6 206 6 - - 20678 8 108 208 308 108 8 - - - - 20679 10 110 210 310 110 10 - - 310 10 20680 12 112 212 312 112 12 212 12 - - 20681 14 114 214 314 114 14 - - - - 20682 16 116 216 316 116 16 - - - - 20683 18 118 218 318 118 18 218 18 - - 20684 20 120 220 320 120 20 - - 320 20 20685 22 122 222 322 122 22 - - - - 20686 24 124 224 324 124 24 224 24 - - 20687 26 126 226 326 126 26 - - - - 20688 28 128 228 328 128 28 - - - - 20689 30 130 230 330 130 30 230 30 330 30 20690 32 132 232 332 132 32 - - - - 20691 34 134 234 334 134 34 - - - - 20692 36 136 236 336 136 36 236 36 - - 20693 38 138 238 338 138 38 - - - - 20694 40 140 240 340 140 40 - - 340 40 20695 42 142 242 342 142 42 242 42 - - 20696 44 144 244 344 144 44 - - - - 20697 46 146 246 346 146 46 - - - - 20698 48 148 248 348 148 48 248 48 - - 20699 50 150 250 350 150 50 - - 350 50 20700 52 152 252 352 152 52 - - - - 20701 54 154 254 354 154 54 254 54 - - 20702 56 156 256 356 156 56 - - - - 20703 58 158 258 358 158 58 - - - - 20704 60 160 260 360 160 60 260 60 360 60 20705 62 162 262 362 162 62 - - - - 20706 64 164 264 364 164 64 - - - - 20707 66 166 266 366 166 66 266 66 - - 20708 68 168 268 368 168 68 - - - - 20709 70 170 270 370 170 70 - - 370 70 20710 72 172 272 372 172 72 272 72 - - 20711 74 174 274 374 174 74 - - - - 20712 76 176 276 376 176 76 - - - - 20713 78 178 278 378 178 78 278 78 - - 20714 80 180 280 380 180 80 - - 380 80 20715 82 182 282 382 182 82 - - - - 20716 84 184 284 384 184 84 284 84 - - 20717 86 186 286 386 186 86 - - - - 20718 88 188 288 388 188 88 - - - - 20719 90 190 290 390 190 90 290 90 390 90 20720 92 192 292 392 192 92 - - - - 20721 94 194 294 394 194 94 - - - - 20722} 20723do_execsql_test joinD-711 { 20724 SELECT t1.*, t2.*, t3.*, t4.* 20725 FROM t1 RIGHT JOIN t2 ON t2.x>0 20726 LEFT JOIN t3 ON t3.y>0 20727 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 20728 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 20729 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20730} { 20731 6 106 206 306 106 6 206 6 - - 20732 12 112 212 312 112 12 212 12 - - 20733 18 118 218 318 118 18 218 18 - - 20734 24 124 224 324 124 24 224 24 - - 20735 30 130 230 330 130 30 230 30 330 30 20736 36 136 236 336 136 36 236 36 - - 20737 42 142 242 342 142 42 242 42 - - 20738 48 148 248 348 148 48 248 48 - - 20739 54 154 254 354 154 54 254 54 - - 20740 60 160 260 360 160 60 260 60 360 60 20741 66 166 266 366 166 66 266 66 - - 20742 72 172 272 372 172 72 272 72 - - 20743 78 178 278 378 178 78 278 78 - - 20744 84 184 284 384 184 84 284 84 - - 20745 90 190 290 390 190 90 290 90 390 90 20746} 20747do_execsql_test joinD-712 { 20748 SELECT t1.*, t2.*, t3.*, t4.* 20749 FROM t1 RIGHT JOIN t2 ON t2.x>0 20750 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 20751 LEFT JOIN t4 ON t4.z>0 20752 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 20753 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20754} { 20755 10 110 210 310 110 10 - - 310 10 20756 20 120 220 320 120 20 - - 320 20 20757 30 130 230 330 130 30 230 30 330 30 20758 40 140 240 340 140 40 - - 340 40 20759 50 150 250 350 150 50 - - 350 50 20760 60 160 260 360 160 60 260 60 360 60 20761 70 170 270 370 170 70 - - 370 70 20762 80 180 280 380 180 80 - - 380 80 20763 90 190 290 390 190 90 290 90 390 90 20764} 20765do_execsql_test joinD-713 { 20766 SELECT t1.*, t2.*, t3.*, t4.* 20767 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 20768 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20769 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20770 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20771} { 20772 2 102 202 302 102 2 - - - - 20773 4 104 204 304 104 4 - - - - 20774 6 106 206 306 106 6 206 6 - - 20775 8 108 208 308 108 8 - - - - 20776 10 110 210 310 110 10 - - 310 10 20777 12 112 212 312 112 12 212 12 - - 20778 14 114 214 314 114 14 - - - - 20779 16 116 216 316 116 16 - - - - 20780 18 118 218 318 118 18 218 18 - - 20781 20 120 220 320 120 20 - - 320 20 20782 22 122 222 322 122 22 - - - - 20783 24 124 224 324 124 24 224 24 - - 20784 26 126 226 326 126 26 - - - - 20785 28 128 228 328 128 28 - - - - 20786 30 130 230 330 130 30 230 30 330 30 20787 32 132 232 332 132 32 - - - - 20788 34 134 234 334 134 34 - - - - 20789 36 136 236 336 136 36 236 36 - - 20790 38 138 238 338 138 38 - - - - 20791 40 140 240 340 140 40 - - 340 40 20792 42 142 242 342 142 42 242 42 - - 20793 44 144 244 344 144 44 - - - - 20794 46 146 246 346 146 46 - - - - 20795 48 148 248 348 148 48 248 48 - - 20796 50 150 250 350 150 50 - - 350 50 20797 52 152 252 352 152 52 - - - - 20798 54 154 254 354 154 54 254 54 - - 20799 56 156 256 356 156 56 - - - - 20800 58 158 258 358 158 58 - - - - 20801 60 160 260 360 160 60 260 60 360 60 20802 62 162 262 362 162 62 - - - - 20803 64 164 264 364 164 64 - - - - 20804 66 166 266 366 166 66 266 66 - - 20805 68 168 268 368 168 68 - - - - 20806 70 170 270 370 170 70 - - 370 70 20807 72 172 272 372 172 72 272 72 - - 20808 74 174 274 374 174 74 - - - - 20809 76 176 276 376 176 76 - - - - 20810 78 178 278 378 178 78 278 78 - - 20811 80 180 280 380 180 80 - - 380 80 20812 82 182 282 382 182 82 - - - - 20813 84 184 284 384 184 84 284 84 - - 20814 86 186 286 386 186 86 - - - - 20815 88 188 288 388 188 88 - - - - 20816 90 190 290 390 190 90 290 90 390 90 20817 92 192 292 392 192 92 - - - - 20818 94 194 294 394 194 94 - - - - 20819 - - - - 100 0 - - - - 20820} 20821do_execsql_test joinD-714 { 20822 SELECT t1.*, t2.*, t3.*, t4.* 20823 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 20824 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 20825 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 20826 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20827} { 20828 2 102 202 302 102 2 - - - - 20829 4 104 204 304 104 4 - - - - 20830 6 106 206 306 106 6 206 6 - - 20831 8 108 208 308 108 8 - - - - 20832 10 110 210 310 110 10 - - 310 10 20833 12 112 212 312 112 12 212 12 - - 20834 14 114 214 314 114 14 - - - - 20835 16 116 216 316 116 16 - - - - 20836 18 118 218 318 118 18 218 18 - - 20837 20 120 220 320 120 20 - - 320 20 20838 22 122 222 322 122 22 - - - - 20839 24 124 224 324 124 24 224 24 - - 20840 26 126 226 326 126 26 - - - - 20841 28 128 228 328 128 28 - - - - 20842 30 130 230 330 130 30 230 30 330 30 20843 32 132 232 332 132 32 - - - - 20844 34 134 234 334 134 34 - - - - 20845 36 136 236 336 136 36 236 36 - - 20846 38 138 238 338 138 38 - - - - 20847 40 140 240 340 140 40 - - 340 40 20848 42 142 242 342 142 42 242 42 - - 20849 44 144 244 344 144 44 - - - - 20850 46 146 246 346 146 46 - - - - 20851 48 148 248 348 148 48 248 48 - - 20852 50 150 250 350 150 50 - - 350 50 20853 52 152 252 352 152 52 - - - - 20854 54 154 254 354 154 54 254 54 - - 20855 56 156 256 356 156 56 - - - - 20856 58 158 258 358 158 58 - - - - 20857 60 160 260 360 160 60 260 60 360 60 20858 62 162 262 362 162 62 - - - - 20859 64 164 264 364 164 64 - - - - 20860 66 166 266 366 166 66 266 66 - - 20861 68 168 268 368 168 68 - - - - 20862 70 170 270 370 170 70 - - 370 70 20863 72 172 272 372 172 72 272 72 - - 20864 74 174 274 374 174 74 - - - - 20865 76 176 276 376 176 76 - - - - 20866 78 178 278 378 178 78 278 78 - - 20867 80 180 280 380 180 80 - - 380 80 20868 82 182 282 382 182 82 - - - - 20869 84 184 284 384 184 84 284 84 - - 20870 86 186 286 386 186 86 - - - - 20871 88 188 288 388 188 88 - - - - 20872 90 190 290 390 190 90 290 90 390 90 20873 92 192 292 392 192 92 - - - - 20874 94 194 294 394 194 94 - - - - 20875 - - - - 100 0 - - - - 20876} 20877do_execsql_test joinD-715 { 20878 SELECT t1.*, t2.*, t3.*, t4.* 20879 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 20880 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20881 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 20882 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20883} { 20884 10 110 210 310 110 10 - - 310 10 20885 20 120 220 320 120 20 - - 320 20 20886 30 130 230 330 130 30 230 30 330 30 20887 40 140 240 340 140 40 - - 340 40 20888 50 150 250 350 150 50 - - 350 50 20889 60 160 260 360 160 60 260 60 360 60 20890 70 170 270 370 170 70 - - 370 70 20891 80 180 280 380 180 80 - - 380 80 20892 90 190 290 390 190 90 290 90 390 90 20893 - - - - - - - - 300 0 20894 - - - - - - - - 305 5 20895 - - - - - - - - 315 15 20896 - - - - - - - - 325 25 20897 - - - - - - - - 335 35 20898 - - - - - - - - 345 45 20899 - - - - - - - - 355 55 20900 - - - - - - - - 365 65 20901 - - - - - - - - 375 75 20902 - - - - - - - - 385 85 20903 - - - - - - - - 395 95 20904} 20905do_execsql_test joinD-716 { 20906 SELECT t1.*, t2.*, t3.*, t4.* 20907 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 20908 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20909 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 20910 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20911} { 20912 10 110 210 310 110 10 - - 310 10 20913 20 120 220 320 120 20 - - 320 20 20914 30 130 230 330 130 30 230 30 330 30 20915 40 140 240 340 140 40 - - 340 40 20916 50 150 250 350 150 50 - - 350 50 20917 60 160 260 360 160 60 260 60 360 60 20918 70 170 270 370 170 70 - - 370 70 20919 80 180 280 380 180 80 - - 380 80 20920 90 190 290 390 190 90 290 90 390 90 20921 - - - - - - - - 300 0 20922 - - - - - - - - 305 5 20923 - - - - - - - - 315 15 20924 - - - - - - - - 325 25 20925 - - - - - - - - 335 35 20926 - - - - - - - - 345 45 20927 - - - - - - - - 355 55 20928 - - - - - - - - 365 65 20929 - - - - - - - - 375 75 20930 - - - - - - - - 385 85 20931 - - - - - - - - 395 95 20932} 20933do_execsql_test joinD-717 { 20934 SELECT t1.*, t2.*, t3.*, t4.* 20935 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 20936 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20937 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 20938 WHERE t2.x>0 20939 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20940} { 20941 10 110 210 310 110 10 - - 310 10 20942 20 120 220 320 120 20 - - 320 20 20943 30 130 230 330 130 30 230 30 330 30 20944 40 140 240 340 140 40 - - 340 40 20945 50 150 250 350 150 50 - - 350 50 20946 60 160 260 360 160 60 260 60 360 60 20947 70 170 270 370 170 70 - - 370 70 20948 80 180 280 380 180 80 - - 380 80 20949 90 190 290 390 190 90 290 90 390 90 20950} 20951do_execsql_test joinD-718 { 20952 SELECT t1.*, t2.*, t3.*, t4.* 20953 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 20954 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20955 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 20956 WHERE (t2.x>0 OR t2.x IS NULL) 20957 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20958} { 20959 10 110 210 310 110 10 - - 310 10 20960 20 120 220 320 120 20 - - 320 20 20961 30 130 230 330 130 30 230 30 330 30 20962 40 140 240 340 140 40 - - 340 40 20963 50 150 250 350 150 50 - - 350 50 20964 60 160 260 360 160 60 260 60 360 60 20965 70 170 270 370 170 70 - - 370 70 20966 80 180 280 380 180 80 - - 380 80 20967 90 190 290 390 190 90 290 90 390 90 20968 - - - - - - - - 300 0 20969 - - - - - - - - 305 5 20970 - - - - - - - - 315 15 20971 - - - - - - - - 325 25 20972 - - - - - - - - 335 35 20973 - - - - - - - - 345 45 20974 - - - - - - - - 355 55 20975 - - - - - - - - 365 65 20976 - - - - - - - - 375 75 20977 - - - - - - - - 385 85 20978 - - - - - - - - 395 95 20979} 20980do_execsql_test joinD-719 { 20981 SELECT t1.*, t2.*, t3.*, t4.* 20982 FROM t1 RIGHT JOIN t2 ON true 20983 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 20984 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 20985 WHERE t1.b=t2.b AND t2.x>0 20986 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 20987} { 20988 10 110 210 310 110 10 - - 310 10 20989 20 120 220 320 120 20 - - 320 20 20990 30 130 230 330 130 30 230 30 330 30 20991 40 140 240 340 140 40 - - 340 40 20992 50 150 250 350 150 50 - - 350 50 20993 60 160 260 360 160 60 260 60 360 60 20994 70 170 270 370 170 70 - - 370 70 20995 80 180 280 380 180 80 - - 380 80 20996 90 190 290 390 190 90 290 90 390 90 20997} 20998do_execsql_test joinD-720 { 20999 SELECT t1.*, t2.*, t3.*, t4.* 21000 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21001 LEFT JOIN t3 ON t1.c=t3.c 21002 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 21003 WHERE t3.y>0 21004 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21005} { 21006 30 130 230 330 130 30 230 30 330 30 21007 60 160 260 360 160 60 260 60 360 60 21008 90 190 290 390 190 90 290 90 390 90 21009} 21010do_execsql_test joinD-721 { 21011 SELECT t1.*, t2.*, t3.*, t4.* 21012 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21013 LEFT JOIN t3 ON t1.c=t3.c 21014 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 21015 WHERE t3.y>0 OR t3.y IS NULL 21016 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21017} { 21018 10 110 210 310 110 10 - - 310 10 21019 20 120 220 320 120 20 - - 320 20 21020 30 130 230 330 130 30 230 30 330 30 21021 40 140 240 340 140 40 - - 340 40 21022 50 150 250 350 150 50 - - 350 50 21023 60 160 260 360 160 60 260 60 360 60 21024 70 170 270 370 170 70 - - 370 70 21025 80 180 280 380 180 80 - - 380 80 21026 90 190 290 390 190 90 290 90 390 90 21027 - - - - - - - - 300 0 21028 - - - - - - - - 305 5 21029 - - - - - - - - 315 15 21030 - - - - - - - - 325 25 21031 - - - - - - - - 335 35 21032 - - - - - - - - 345 45 21033 - - - - - - - - 355 55 21034 - - - - - - - - 365 65 21035 - - - - - - - - 375 75 21036 - - - - - - - - 385 85 21037 - - - - - - - - 395 95 21038} 21039do_execsql_test joinD-722 { 21040 SELECT t1.*, t2.*, t3.*, t4.* 21041 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21042 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21043 RIGHT JOIN t4 ON t1.d=t4.d 21044 WHERE t4.z>0 21045 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21046} { 21047 10 110 210 310 110 10 - - 310 10 21048 20 120 220 320 120 20 - - 320 20 21049 30 130 230 330 130 30 230 30 330 30 21050 40 140 240 340 140 40 - - 340 40 21051 50 150 250 350 150 50 - - 350 50 21052 60 160 260 360 160 60 260 60 360 60 21053 70 170 270 370 170 70 - - 370 70 21054 80 180 280 380 180 80 - - 380 80 21055 90 190 290 390 190 90 290 90 390 90 21056 - - - - - - - - 305 5 21057 - - - - - - - - 315 15 21058 - - - - - - - - 325 25 21059 - - - - - - - - 335 35 21060 - - - - - - - - 345 45 21061 - - - - - - - - 355 55 21062 - - - - - - - - 365 65 21063 - - - - - - - - 375 75 21064 - - - - - - - - 385 85 21065 - - - - - - - - 395 95 21066} 21067do_execsql_test joinD-723 { 21068 SELECT t1.*, t2.*, t3.*, t4.* 21069 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21070 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21071 RIGHT JOIN t4 ON t1.d=t4.d 21072 WHERE t4.z IS NULL OR t4.z>0 21073 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21074} { 21075 10 110 210 310 110 10 - - 310 10 21076 20 120 220 320 120 20 - - 320 20 21077 30 130 230 330 130 30 230 30 330 30 21078 40 140 240 340 140 40 - - 340 40 21079 50 150 250 350 150 50 - - 350 50 21080 60 160 260 360 160 60 260 60 360 60 21081 70 170 270 370 170 70 - - 370 70 21082 80 180 280 380 180 80 - - 380 80 21083 90 190 290 390 190 90 290 90 390 90 21084 - - - - - - - - 305 5 21085 - - - - - - - - 315 15 21086 - - - - - - - - 325 25 21087 - - - - - - - - 335 35 21088 - - - - - - - - 345 45 21089 - - - - - - - - 355 55 21090 - - - - - - - - 365 65 21091 - - - - - - - - 375 75 21092 - - - - - - - - 385 85 21093 - - - - - - - - 395 95 21094} 21095do_execsql_test joinD-724 { 21096 SELECT t1.*, t2.*, t3.*, t4.* 21097 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 21098 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21099 RIGHT JOIN t4 ON t1.d=t4.d 21100 WHERE t2.x>0 AND t4.z>0 21101 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21102} { 21103 10 110 210 310 110 10 - - 310 10 21104 20 120 220 320 120 20 - - 320 20 21105 30 130 230 330 130 30 230 30 330 30 21106 40 140 240 340 140 40 - - 340 40 21107 50 150 250 350 150 50 - - 350 50 21108 60 160 260 360 160 60 260 60 360 60 21109 70 170 270 370 170 70 - - 370 70 21110 80 180 280 380 180 80 - - 380 80 21111 90 190 290 390 190 90 290 90 390 90 21112} 21113do_execsql_test joinD-725 { 21114 SELECT t1.*, t2.*, t3.*, t4.* 21115 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21116 LEFT JOIN t3 ON t1.c=t3.c 21117 RIGHT JOIN t4 ON t1.d=t4.d 21118 WHERE t4.z>0 AND t3.y>0 21119 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21120} { 21121 30 130 230 330 130 30 230 30 330 30 21122 60 160 260 360 160 60 260 60 360 60 21123 90 190 290 390 190 90 290 90 390 90 21124} 21125do_execsql_test joinD-726 { 21126 SELECT t1.*, t2.*, t3.*, t4.* 21127 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 21128 LEFT JOIN t3 ON t1.c=t3.c 21129 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 21130 WHERE t2.x>0 AND t3.y>0 21131 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21132} { 21133 30 130 230 330 130 30 230 30 330 30 21134 60 160 260 360 160 60 260 60 360 60 21135 90 190 290 390 190 90 290 90 390 90 21136} 21137do_execsql_test joinD-727 { 21138 SELECT t1.*, t2.*, t3.*, t4.* 21139 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 21140 LEFT JOIN t3 ON t1.c=t3.c 21141 RIGHT JOIN t4 ON t1.d=t4.d 21142 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 21143 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21144} { 21145 30 130 230 330 130 30 230 30 330 30 21146 60 160 260 360 160 60 260 60 360 60 21147 90 190 290 390 190 90 290 90 390 90 21148} 21149do_execsql_test joinD-728 { 21150 SELECT t1.*, t2.*, t3.*, t4.* 21151 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 21152 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 21153 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 21154 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21155} { 21156 10 110 210 310 110 10 - - 310 10 21157 20 120 220 320 120 20 - - 320 20 21158 30 130 230 330 130 30 230 30 330 30 21159 40 140 240 340 140 40 - - 340 40 21160 50 150 250 350 150 50 - - 350 50 21161 60 160 260 360 160 60 260 60 360 60 21162 70 170 270 370 170 70 - - 370 70 21163 80 180 280 380 180 80 - - 380 80 21164 90 190 290 390 190 90 290 90 390 90 21165 - - - - - - - - 300 0 21166 - - - - - - - - 305 5 21167 - - - - - - - - 315 15 21168 - - - - - - - - 325 25 21169 - - - - - - - - 335 35 21170 - - - - - - - - 345 45 21171 - - - - - - - - 355 55 21172 - - - - - - - - 365 65 21173 - - - - - - - - 375 75 21174 - - - - - - - - 385 85 21175 - - - - - - - - 395 95 21176} 21177do_execsql_test joinD-729 { 21178 SELECT t1.*, t2.*, t3.*, t4.* 21179 FROM t1 RIGHT JOIN t2 ON t2.x>0 21180 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 21181 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 21182 WHERE t1.b IS NOT DISTINCT FROM t2.b 21183 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21184} { 21185 10 110 210 310 110 10 - - 310 10 21186 20 120 220 320 120 20 - - 320 20 21187 30 130 230 330 130 30 230 30 330 30 21188 40 140 240 340 140 40 - - 340 40 21189 50 150 250 350 150 50 - - 350 50 21190 60 160 260 360 160 60 260 60 360 60 21191 70 170 270 370 170 70 - - 370 70 21192 80 180 280 380 180 80 - - 380 80 21193 90 190 290 390 190 90 290 90 390 90 21194 - - - - - - - - 300 0 21195} 21196do_execsql_test joinD-730 { 21197 SELECT t1.*, t2.*, t3.*, t4.* 21198 FROM t1 RIGHT JOIN t2 ON t2.x>0 21199 LEFT JOIN t3 ON t3.y>0 21200 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 21201 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 21202 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21203} { 21204 30 130 230 330 130 30 230 30 330 30 21205 60 160 260 360 160 60 260 60 360 60 21206 90 190 290 390 190 90 290 90 390 90 21207 - - - - - - - - 300 0 21208} 21209do_execsql_test joinD-731 { 21210 SELECT t1.*, t2.*, t3.*, t4.* 21211 FROM t1 RIGHT JOIN t2 ON t2.x>0 21212 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 21213 RIGHT JOIN t4 ON t4.z>0 21214 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 21215 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21216} { 21217 10 110 210 310 110 10 - - 310 10 21218 20 120 220 320 120 20 - - 320 20 21219 30 130 230 330 130 30 230 30 330 30 21220 40 140 240 340 140 40 - - 340 40 21221 50 150 250 350 150 50 - - 350 50 21222 60 160 260 360 160 60 260 60 360 60 21223 70 170 270 370 170 70 - - 370 70 21224 80 180 280 380 180 80 - - 380 80 21225 90 190 290 390 190 90 290 90 390 90 21226} 21227do_execsql_test joinD-732 { 21228 SELECT t1.*, t2.*, t3.*, t4.* 21229 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 21230 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21231 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 21232 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21233} { 21234 10 110 210 310 110 10 - - 310 10 21235 20 120 220 320 120 20 - - 320 20 21236 30 130 230 330 130 30 230 30 330 30 21237 40 140 240 340 140 40 - - 340 40 21238 50 150 250 350 150 50 - - 350 50 21239 60 160 260 360 160 60 260 60 360 60 21240 70 170 270 370 170 70 - - 370 70 21241 80 180 280 380 180 80 - - 380 80 21242 90 190 290 390 190 90 290 90 390 90 21243 - - - - - - - - 300 0 21244 - - - - - - - - 305 5 21245 - - - - - - - - 315 15 21246 - - - - - - - - 325 25 21247 - - - - - - - - 335 35 21248 - - - - - - - - 345 45 21249 - - - - - - - - 355 55 21250 - - - - - - - - 365 65 21251 - - - - - - - - 375 75 21252 - - - - - - - - 385 85 21253 - - - - - - - - 395 95 21254} 21255do_execsql_test joinD-733 { 21256 SELECT t1.*, t2.*, t3.*, t4.* 21257 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21258 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 21259 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 21260 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21261} { 21262 10 110 210 310 110 10 - - 310 10 21263 20 120 220 320 120 20 - - 320 20 21264 30 130 230 330 130 30 230 30 330 30 21265 40 140 240 340 140 40 - - 340 40 21266 50 150 250 350 150 50 - - 350 50 21267 60 160 260 360 160 60 260 60 360 60 21268 70 170 270 370 170 70 - - 370 70 21269 80 180 280 380 180 80 - - 380 80 21270 90 190 290 390 190 90 290 90 390 90 21271 - - - - - - - - 300 0 21272 - - - - - - - - 305 5 21273 - - - - - - - - 315 15 21274 - - - - - - - - 325 25 21275 - - - - - - - - 335 35 21276 - - - - - - - - 345 45 21277 - - - - - - - - 355 55 21278 - - - - - - - - 365 65 21279 - - - - - - - - 375 75 21280 - - - - - - - - 385 85 21281 - - - - - - - - 395 95 21282} 21283do_execsql_test joinD-734 { 21284 SELECT t1.*, t2.*, t3.*, t4.* 21285 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21286 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21287 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 21288 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21289} { 21290 2 102 202 302 102 2 - - - - 21291 4 104 204 304 104 4 - - - - 21292 6 106 206 306 106 6 206 6 - - 21293 8 108 208 308 108 8 - - - - 21294 10 110 210 310 110 10 - - 310 10 21295 12 112 212 312 112 12 212 12 - - 21296 14 114 214 314 114 14 - - - - 21297 16 116 216 316 116 16 - - - - 21298 18 118 218 318 118 18 218 18 - - 21299 20 120 220 320 120 20 - - 320 20 21300 22 122 222 322 122 22 - - - - 21301 24 124 224 324 124 24 224 24 - - 21302 26 126 226 326 126 26 - - - - 21303 28 128 228 328 128 28 - - - - 21304 30 130 230 330 130 30 230 30 330 30 21305 32 132 232 332 132 32 - - - - 21306 34 134 234 334 134 34 - - - - 21307 36 136 236 336 136 36 236 36 - - 21308 38 138 238 338 138 38 - - - - 21309 40 140 240 340 140 40 - - 340 40 21310 42 142 242 342 142 42 242 42 - - 21311 44 144 244 344 144 44 - - - - 21312 46 146 246 346 146 46 - - - - 21313 48 148 248 348 148 48 248 48 - - 21314 50 150 250 350 150 50 - - 350 50 21315 52 152 252 352 152 52 - - - - 21316 54 154 254 354 154 54 254 54 - - 21317 56 156 256 356 156 56 - - - - 21318 58 158 258 358 158 58 - - - - 21319 60 160 260 360 160 60 260 60 360 60 21320 62 162 262 362 162 62 - - - - 21321 64 164 264 364 164 64 - - - - 21322 66 166 266 366 166 66 266 66 - - 21323 68 168 268 368 168 68 - - - - 21324 70 170 270 370 170 70 - - 370 70 21325 72 172 272 372 172 72 272 72 - - 21326 74 174 274 374 174 74 - - - - 21327 76 176 276 376 176 76 - - - - 21328 78 178 278 378 178 78 278 78 - - 21329 80 180 280 380 180 80 - - 380 80 21330 82 182 282 382 182 82 - - - - 21331 84 184 284 384 184 84 284 84 - - 21332 86 186 286 386 186 86 - - - - 21333 88 188 288 388 188 88 - - - - 21334 90 190 290 390 190 90 290 90 390 90 21335 92 192 292 392 192 92 - - - - 21336 94 194 294 394 194 94 - - - - 21337 - - - - 100 0 - - - - 21338 - - - - - - - - 300 0 21339 - - - - - - - - 305 5 21340 - - - - - - - - 315 15 21341 - - - - - - - - 325 25 21342 - - - - - - - - 335 35 21343 - - - - - - - - 345 45 21344 - - - - - - - - 355 55 21345 - - - - - - - - 365 65 21346 - - - - - - - - 375 75 21347 - - - - - - - - 385 85 21348 - - - - - - - - 395 95 21349} 21350do_execsql_test joinD-735 { 21351 SELECT t1.*, t2.*, t3.*, t4.* 21352 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 21353 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21354 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 21355 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21356} { 21357 2 102 202 302 102 2 - - - - 21358 4 104 204 304 104 4 - - - - 21359 6 106 206 306 106 6 206 6 - - 21360 8 108 208 308 108 8 - - - - 21361 10 110 210 310 110 10 - - 310 10 21362 12 112 212 312 112 12 212 12 - - 21363 14 114 214 314 114 14 - - - - 21364 16 116 216 316 116 16 - - - - 21365 18 118 218 318 118 18 218 18 - - 21366 20 120 220 320 120 20 - - 320 20 21367 22 122 222 322 122 22 - - - - 21368 24 124 224 324 124 24 224 24 - - 21369 26 126 226 326 126 26 - - - - 21370 28 128 228 328 128 28 - - - - 21371 30 130 230 330 130 30 230 30 330 30 21372 32 132 232 332 132 32 - - - - 21373 34 134 234 334 134 34 - - - - 21374 36 136 236 336 136 36 236 36 - - 21375 38 138 238 338 138 38 - - - - 21376 40 140 240 340 140 40 - - 340 40 21377 42 142 242 342 142 42 242 42 - - 21378 44 144 244 344 144 44 - - - - 21379 46 146 246 346 146 46 - - - - 21380 48 148 248 348 148 48 248 48 - - 21381 50 150 250 350 150 50 - - 350 50 21382 52 152 252 352 152 52 - - - - 21383 54 154 254 354 154 54 254 54 - - 21384 56 156 256 356 156 56 - - - - 21385 58 158 258 358 158 58 - - - - 21386 60 160 260 360 160 60 260 60 360 60 21387 62 162 262 362 162 62 - - - - 21388 64 164 264 364 164 64 - - - - 21389 66 166 266 366 166 66 266 66 - - 21390 68 168 268 368 168 68 - - - - 21391 70 170 270 370 170 70 - - 370 70 21392 72 172 272 372 172 72 272 72 - - 21393 74 174 274 374 174 74 - - - - 21394 76 176 276 376 176 76 - - - - 21395 78 178 278 378 178 78 278 78 - - 21396 80 180 280 380 180 80 - - 380 80 21397 82 182 282 382 182 82 - - - - 21398 84 184 284 384 184 84 284 84 - - 21399 86 186 286 386 186 86 - - - - 21400 88 188 288 388 188 88 - - - - 21401 90 190 290 390 190 90 290 90 390 90 21402 92 192 292 392 192 92 - - - - 21403 94 194 294 394 194 94 - - - - 21404 - - - - 100 0 - - - - 21405 - - - - - - - - 300 0 21406 - - - - - - - - 305 5 21407 - - - - - - - - 315 15 21408 - - - - - - - - 325 25 21409 - - - - - - - - 335 35 21410 - - - - - - - - 345 45 21411 - - - - - - - - 355 55 21412 - - - - - - - - 365 65 21413 - - - - - - - - 375 75 21414 - - - - - - - - 385 85 21415 - - - - - - - - 395 95 21416} 21417do_execsql_test joinD-736 { 21418 SELECT t1.*, t2.*, t3.*, t4.* 21419 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 21420 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21421 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 21422 WHERE t2.x>0 21423 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21424} { 21425 2 102 202 302 102 2 - - - - 21426 4 104 204 304 104 4 - - - - 21427 6 106 206 306 106 6 206 6 - - 21428 8 108 208 308 108 8 - - - - 21429 10 110 210 310 110 10 - - 310 10 21430 12 112 212 312 112 12 212 12 - - 21431 14 114 214 314 114 14 - - - - 21432 16 116 216 316 116 16 - - - - 21433 18 118 218 318 118 18 218 18 - - 21434 20 120 220 320 120 20 - - 320 20 21435 22 122 222 322 122 22 - - - - 21436 24 124 224 324 124 24 224 24 - - 21437 26 126 226 326 126 26 - - - - 21438 28 128 228 328 128 28 - - - - 21439 30 130 230 330 130 30 230 30 330 30 21440 32 132 232 332 132 32 - - - - 21441 34 134 234 334 134 34 - - - - 21442 36 136 236 336 136 36 236 36 - - 21443 38 138 238 338 138 38 - - - - 21444 40 140 240 340 140 40 - - 340 40 21445 42 142 242 342 142 42 242 42 - - 21446 44 144 244 344 144 44 - - - - 21447 46 146 246 346 146 46 - - - - 21448 48 148 248 348 148 48 248 48 - - 21449 50 150 250 350 150 50 - - 350 50 21450 52 152 252 352 152 52 - - - - 21451 54 154 254 354 154 54 254 54 - - 21452 56 156 256 356 156 56 - - - - 21453 58 158 258 358 158 58 - - - - 21454 60 160 260 360 160 60 260 60 360 60 21455 62 162 262 362 162 62 - - - - 21456 64 164 264 364 164 64 - - - - 21457 66 166 266 366 166 66 266 66 - - 21458 68 168 268 368 168 68 - - - - 21459 70 170 270 370 170 70 - - 370 70 21460 72 172 272 372 172 72 272 72 - - 21461 74 174 274 374 174 74 - - - - 21462 76 176 276 376 176 76 - - - - 21463 78 178 278 378 178 78 278 78 - - 21464 80 180 280 380 180 80 - - 380 80 21465 82 182 282 382 182 82 - - - - 21466 84 184 284 384 184 84 284 84 - - 21467 86 186 286 386 186 86 - - - - 21468 88 188 288 388 188 88 - - - - 21469 90 190 290 390 190 90 290 90 390 90 21470 92 192 292 392 192 92 - - - - 21471 94 194 294 394 194 94 - - - - 21472} 21473do_execsql_test joinD-737 { 21474 SELECT t1.*, t2.*, t3.*, t4.* 21475 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 21476 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21477 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 21478 WHERE (t2.x>0 OR t2.x IS NULL) 21479 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21480} { 21481 2 102 202 302 102 2 - - - - 21482 4 104 204 304 104 4 - - - - 21483 6 106 206 306 106 6 206 6 - - 21484 8 108 208 308 108 8 - - - - 21485 10 110 210 310 110 10 - - 310 10 21486 12 112 212 312 112 12 212 12 - - 21487 14 114 214 314 114 14 - - - - 21488 16 116 216 316 116 16 - - - - 21489 18 118 218 318 118 18 218 18 - - 21490 20 120 220 320 120 20 - - 320 20 21491 22 122 222 322 122 22 - - - - 21492 24 124 224 324 124 24 224 24 - - 21493 26 126 226 326 126 26 - - - - 21494 28 128 228 328 128 28 - - - - 21495 30 130 230 330 130 30 230 30 330 30 21496 32 132 232 332 132 32 - - - - 21497 34 134 234 334 134 34 - - - - 21498 36 136 236 336 136 36 236 36 - - 21499 38 138 238 338 138 38 - - - - 21500 40 140 240 340 140 40 - - 340 40 21501 42 142 242 342 142 42 242 42 - - 21502 44 144 244 344 144 44 - - - - 21503 46 146 246 346 146 46 - - - - 21504 48 148 248 348 148 48 248 48 - - 21505 50 150 250 350 150 50 - - 350 50 21506 52 152 252 352 152 52 - - - - 21507 54 154 254 354 154 54 254 54 - - 21508 56 156 256 356 156 56 - - - - 21509 58 158 258 358 158 58 - - - - 21510 60 160 260 360 160 60 260 60 360 60 21511 62 162 262 362 162 62 - - - - 21512 64 164 264 364 164 64 - - - - 21513 66 166 266 366 166 66 266 66 - - 21514 68 168 268 368 168 68 - - - - 21515 70 170 270 370 170 70 - - 370 70 21516 72 172 272 372 172 72 272 72 - - 21517 74 174 274 374 174 74 - - - - 21518 76 176 276 376 176 76 - - - - 21519 78 178 278 378 178 78 278 78 - - 21520 80 180 280 380 180 80 - - 380 80 21521 82 182 282 382 182 82 - - - - 21522 84 184 284 384 184 84 284 84 - - 21523 86 186 286 386 186 86 - - - - 21524 88 188 288 388 188 88 - - - - 21525 90 190 290 390 190 90 290 90 390 90 21526 92 192 292 392 192 92 - - - - 21527 94 194 294 394 194 94 - - - - 21528 - - - - - - - - 300 0 21529 - - - - - - - - 305 5 21530 - - - - - - - - 315 15 21531 - - - - - - - - 325 25 21532 - - - - - - - - 335 35 21533 - - - - - - - - 345 45 21534 - - - - - - - - 355 55 21535 - - - - - - - - 365 65 21536 - - - - - - - - 375 75 21537 - - - - - - - - 385 85 21538 - - - - - - - - 395 95 21539} 21540do_execsql_test joinD-738 { 21541 SELECT t1.*, t2.*, t3.*, t4.* 21542 FROM t1 RIGHT JOIN t2 ON true 21543 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21544 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 21545 WHERE t1.b=t2.b AND t2.x>0 21546 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21547} { 21548 2 102 202 302 102 2 - - - - 21549 4 104 204 304 104 4 - - - - 21550 6 106 206 306 106 6 206 6 - - 21551 8 108 208 308 108 8 - - - - 21552 10 110 210 310 110 10 - - 310 10 21553 12 112 212 312 112 12 212 12 - - 21554 14 114 214 314 114 14 - - - - 21555 16 116 216 316 116 16 - - - - 21556 18 118 218 318 118 18 218 18 - - 21557 20 120 220 320 120 20 - - 320 20 21558 22 122 222 322 122 22 - - - - 21559 24 124 224 324 124 24 224 24 - - 21560 26 126 226 326 126 26 - - - - 21561 28 128 228 328 128 28 - - - - 21562 30 130 230 330 130 30 230 30 330 30 21563 32 132 232 332 132 32 - - - - 21564 34 134 234 334 134 34 - - - - 21565 36 136 236 336 136 36 236 36 - - 21566 38 138 238 338 138 38 - - - - 21567 40 140 240 340 140 40 - - 340 40 21568 42 142 242 342 142 42 242 42 - - 21569 44 144 244 344 144 44 - - - - 21570 46 146 246 346 146 46 - - - - 21571 48 148 248 348 148 48 248 48 - - 21572 50 150 250 350 150 50 - - 350 50 21573 52 152 252 352 152 52 - - - - 21574 54 154 254 354 154 54 254 54 - - 21575 56 156 256 356 156 56 - - - - 21576 58 158 258 358 158 58 - - - - 21577 60 160 260 360 160 60 260 60 360 60 21578 62 162 262 362 162 62 - - - - 21579 64 164 264 364 164 64 - - - - 21580 66 166 266 366 166 66 266 66 - - 21581 68 168 268 368 168 68 - - - - 21582 70 170 270 370 170 70 - - 370 70 21583 72 172 272 372 172 72 272 72 - - 21584 74 174 274 374 174 74 - - - - 21585 76 176 276 376 176 76 - - - - 21586 78 178 278 378 178 78 278 78 - - 21587 80 180 280 380 180 80 - - 380 80 21588 82 182 282 382 182 82 - - - - 21589 84 184 284 384 184 84 284 84 - - 21590 86 186 286 386 186 86 - - - - 21591 88 188 288 388 188 88 - - - - 21592 90 190 290 390 190 90 290 90 390 90 21593 92 192 292 392 192 92 - - - - 21594 94 194 294 394 194 94 - - - - 21595} 21596do_execsql_test joinD-739 { 21597 SELECT t1.*, t2.*, t3.*, t4.* 21598 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21599 LEFT JOIN t3 ON t1.c=t3.c 21600 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 21601 WHERE t3.y>0 21602 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21603} { 21604 6 106 206 306 106 6 206 6 - - 21605 12 112 212 312 112 12 212 12 - - 21606 18 118 218 318 118 18 218 18 - - 21607 24 124 224 324 124 24 224 24 - - 21608 30 130 230 330 130 30 230 30 330 30 21609 36 136 236 336 136 36 236 36 - - 21610 42 142 242 342 142 42 242 42 - - 21611 48 148 248 348 148 48 248 48 - - 21612 54 154 254 354 154 54 254 54 - - 21613 60 160 260 360 160 60 260 60 360 60 21614 66 166 266 366 166 66 266 66 - - 21615 72 172 272 372 172 72 272 72 - - 21616 78 178 278 378 178 78 278 78 - - 21617 84 184 284 384 184 84 284 84 - - 21618 90 190 290 390 190 90 290 90 390 90 21619} 21620do_execsql_test joinD-740 { 21621 SELECT t1.*, t2.*, t3.*, t4.* 21622 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21623 LEFT JOIN t3 ON t1.c=t3.c 21624 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 21625 WHERE t3.y>0 OR t3.y IS NULL 21626 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21627} { 21628 2 102 202 302 102 2 - - - - 21629 4 104 204 304 104 4 - - - - 21630 6 106 206 306 106 6 206 6 - - 21631 8 108 208 308 108 8 - - - - 21632 10 110 210 310 110 10 - - 310 10 21633 12 112 212 312 112 12 212 12 - - 21634 14 114 214 314 114 14 - - - - 21635 16 116 216 316 116 16 - - - - 21636 18 118 218 318 118 18 218 18 - - 21637 20 120 220 320 120 20 - - 320 20 21638 22 122 222 322 122 22 - - - - 21639 24 124 224 324 124 24 224 24 - - 21640 26 126 226 326 126 26 - - - - 21641 28 128 228 328 128 28 - - - - 21642 30 130 230 330 130 30 230 30 330 30 21643 32 132 232 332 132 32 - - - - 21644 34 134 234 334 134 34 - - - - 21645 36 136 236 336 136 36 236 36 - - 21646 38 138 238 338 138 38 - - - - 21647 40 140 240 340 140 40 - - 340 40 21648 42 142 242 342 142 42 242 42 - - 21649 44 144 244 344 144 44 - - - - 21650 46 146 246 346 146 46 - - - - 21651 48 148 248 348 148 48 248 48 - - 21652 50 150 250 350 150 50 - - 350 50 21653 52 152 252 352 152 52 - - - - 21654 54 154 254 354 154 54 254 54 - - 21655 56 156 256 356 156 56 - - - - 21656 58 158 258 358 158 58 - - - - 21657 60 160 260 360 160 60 260 60 360 60 21658 62 162 262 362 162 62 - - - - 21659 64 164 264 364 164 64 - - - - 21660 66 166 266 366 166 66 266 66 - - 21661 68 168 268 368 168 68 - - - - 21662 70 170 270 370 170 70 - - 370 70 21663 72 172 272 372 172 72 272 72 - - 21664 74 174 274 374 174 74 - - - - 21665 76 176 276 376 176 76 - - - - 21666 78 178 278 378 178 78 278 78 - - 21667 80 180 280 380 180 80 - - 380 80 21668 82 182 282 382 182 82 - - - - 21669 84 184 284 384 184 84 284 84 - - 21670 86 186 286 386 186 86 - - - - 21671 88 188 288 388 188 88 - - - - 21672 90 190 290 390 190 90 290 90 390 90 21673 92 192 292 392 192 92 - - - - 21674 94 194 294 394 194 94 - - - - 21675 - - - - 100 0 - - - - 21676 - - - - - - - - 300 0 21677 - - - - - - - - 305 5 21678 - - - - - - - - 315 15 21679 - - - - - - - - 325 25 21680 - - - - - - - - 335 35 21681 - - - - - - - - 345 45 21682 - - - - - - - - 355 55 21683 - - - - - - - - 365 65 21684 - - - - - - - - 375 75 21685 - - - - - - - - 385 85 21686 - - - - - - - - 395 95 21687} 21688do_execsql_test joinD-741 { 21689 SELECT t1.*, t2.*, t3.*, t4.* 21690 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21691 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21692 FULL JOIN t4 ON t1.d=t4.d 21693 WHERE t4.z>0 21694 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21695} { 21696 10 110 210 310 110 10 - - 310 10 21697 20 120 220 320 120 20 - - 320 20 21698 30 130 230 330 130 30 230 30 330 30 21699 40 140 240 340 140 40 - - 340 40 21700 50 150 250 350 150 50 - - 350 50 21701 60 160 260 360 160 60 260 60 360 60 21702 70 170 270 370 170 70 - - 370 70 21703 80 180 280 380 180 80 - - 380 80 21704 90 190 290 390 190 90 290 90 390 90 21705 - - - - - - - - 305 5 21706 - - - - - - - - 315 15 21707 - - - - - - - - 325 25 21708 - - - - - - - - 335 35 21709 - - - - - - - - 345 45 21710 - - - - - - - - 355 55 21711 - - - - - - - - 365 65 21712 - - - - - - - - 375 75 21713 - - - - - - - - 385 85 21714 - - - - - - - - 395 95 21715} 21716do_execsql_test joinD-742 { 21717 SELECT t1.*, t2.*, t3.*, t4.* 21718 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21719 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21720 FULL JOIN t4 ON t1.d=t4.d 21721 WHERE t4.z IS NULL OR t4.z>0 21722 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21723} { 21724 2 102 202 302 102 2 - - - - 21725 4 104 204 304 104 4 - - - - 21726 6 106 206 306 106 6 206 6 - - 21727 8 108 208 308 108 8 - - - - 21728 10 110 210 310 110 10 - - 310 10 21729 12 112 212 312 112 12 212 12 - - 21730 14 114 214 314 114 14 - - - - 21731 16 116 216 316 116 16 - - - - 21732 18 118 218 318 118 18 218 18 - - 21733 20 120 220 320 120 20 - - 320 20 21734 22 122 222 322 122 22 - - - - 21735 24 124 224 324 124 24 224 24 - - 21736 26 126 226 326 126 26 - - - - 21737 28 128 228 328 128 28 - - - - 21738 30 130 230 330 130 30 230 30 330 30 21739 32 132 232 332 132 32 - - - - 21740 34 134 234 334 134 34 - - - - 21741 36 136 236 336 136 36 236 36 - - 21742 38 138 238 338 138 38 - - - - 21743 40 140 240 340 140 40 - - 340 40 21744 42 142 242 342 142 42 242 42 - - 21745 44 144 244 344 144 44 - - - - 21746 46 146 246 346 146 46 - - - - 21747 48 148 248 348 148 48 248 48 - - 21748 50 150 250 350 150 50 - - 350 50 21749 52 152 252 352 152 52 - - - - 21750 54 154 254 354 154 54 254 54 - - 21751 56 156 256 356 156 56 - - - - 21752 58 158 258 358 158 58 - - - - 21753 60 160 260 360 160 60 260 60 360 60 21754 62 162 262 362 162 62 - - - - 21755 64 164 264 364 164 64 - - - - 21756 66 166 266 366 166 66 266 66 - - 21757 68 168 268 368 168 68 - - - - 21758 70 170 270 370 170 70 - - 370 70 21759 72 172 272 372 172 72 272 72 - - 21760 74 174 274 374 174 74 - - - - 21761 76 176 276 376 176 76 - - - - 21762 78 178 278 378 178 78 278 78 - - 21763 80 180 280 380 180 80 - - 380 80 21764 82 182 282 382 182 82 - - - - 21765 84 184 284 384 184 84 284 84 - - 21766 86 186 286 386 186 86 - - - - 21767 88 188 288 388 188 88 - - - - 21768 90 190 290 390 190 90 290 90 390 90 21769 92 192 292 392 192 92 - - - - 21770 94 194 294 394 194 94 - - - - 21771 - - - - 100 0 - - - - 21772 - - - - - - - - 305 5 21773 - - - - - - - - 315 15 21774 - - - - - - - - 325 25 21775 - - - - - - - - 335 35 21776 - - - - - - - - 345 45 21777 - - - - - - - - 355 55 21778 - - - - - - - - 365 65 21779 - - - - - - - - 375 75 21780 - - - - - - - - 385 85 21781 - - - - - - - - 395 95 21782} 21783do_execsql_test joinD-743 { 21784 SELECT t1.*, t2.*, t3.*, t4.* 21785 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 21786 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 21787 FULL JOIN t4 ON t1.d=t4.d 21788 WHERE t2.x>0 AND t4.z>0 21789 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21790} { 21791 10 110 210 310 110 10 - - 310 10 21792 20 120 220 320 120 20 - - 320 20 21793 30 130 230 330 130 30 230 30 330 30 21794 40 140 240 340 140 40 - - 340 40 21795 50 150 250 350 150 50 - - 350 50 21796 60 160 260 360 160 60 260 60 360 60 21797 70 170 270 370 170 70 - - 370 70 21798 80 180 280 380 180 80 - - 380 80 21799 90 190 290 390 190 90 290 90 390 90 21800} 21801do_execsql_test joinD-744 { 21802 SELECT t1.*, t2.*, t3.*, t4.* 21803 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 21804 LEFT JOIN t3 ON t1.c=t3.c 21805 FULL JOIN t4 ON t1.d=t4.d 21806 WHERE t4.z>0 AND t3.y>0 21807 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21808} { 21809 30 130 230 330 130 30 230 30 330 30 21810 60 160 260 360 160 60 260 60 360 60 21811 90 190 290 390 190 90 290 90 390 90 21812} 21813do_execsql_test joinD-745 { 21814 SELECT t1.*, t2.*, t3.*, t4.* 21815 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 21816 LEFT JOIN t3 ON t1.c=t3.c 21817 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 21818 WHERE t2.x>0 AND t3.y>0 21819 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21820} { 21821 6 106 206 306 106 6 206 6 - - 21822 12 112 212 312 112 12 212 12 - - 21823 18 118 218 318 118 18 218 18 - - 21824 24 124 224 324 124 24 224 24 - - 21825 30 130 230 330 130 30 230 30 330 30 21826 36 136 236 336 136 36 236 36 - - 21827 42 142 242 342 142 42 242 42 - - 21828 48 148 248 348 148 48 248 48 - - 21829 54 154 254 354 154 54 254 54 - - 21830 60 160 260 360 160 60 260 60 360 60 21831 66 166 266 366 166 66 266 66 - - 21832 72 172 272 372 172 72 272 72 - - 21833 78 178 278 378 178 78 278 78 - - 21834 84 184 284 384 184 84 284 84 - - 21835 90 190 290 390 190 90 290 90 390 90 21836} 21837do_execsql_test joinD-746 { 21838 SELECT t1.*, t2.*, t3.*, t4.* 21839 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 21840 LEFT JOIN t3 ON t1.c=t3.c 21841 FULL JOIN t4 ON t1.d=t4.d 21842 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 21843 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21844} { 21845 30 130 230 330 130 30 230 30 330 30 21846 60 160 260 360 160 60 260 60 360 60 21847 90 190 290 390 190 90 290 90 390 90 21848} 21849do_execsql_test joinD-747 { 21850 SELECT t1.*, t2.*, t3.*, t4.* 21851 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 21852 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 21853 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 21854 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21855} { 21856 2 102 202 302 102 2 - - - - 21857 4 104 204 304 104 4 - - - - 21858 6 106 206 306 106 6 206 6 - - 21859 8 108 208 308 108 8 - - - - 21860 10 110 210 310 110 10 - - 310 10 21861 12 112 212 312 112 12 212 12 - - 21862 14 114 214 314 114 14 - - - - 21863 16 116 216 316 116 16 - - - - 21864 18 118 218 318 118 18 218 18 - - 21865 20 120 220 320 120 20 - - 320 20 21866 22 122 222 322 122 22 - - - - 21867 24 124 224 324 124 24 224 24 - - 21868 26 126 226 326 126 26 - - - - 21869 28 128 228 328 128 28 - - - - 21870 30 130 230 330 130 30 230 30 330 30 21871 32 132 232 332 132 32 - - - - 21872 34 134 234 334 134 34 - - - - 21873 36 136 236 336 136 36 236 36 - - 21874 38 138 238 338 138 38 - - - - 21875 40 140 240 340 140 40 - - 340 40 21876 42 142 242 342 142 42 242 42 - - 21877 44 144 244 344 144 44 - - - - 21878 46 146 246 346 146 46 - - - - 21879 48 148 248 348 148 48 248 48 - - 21880 50 150 250 350 150 50 - - 350 50 21881 52 152 252 352 152 52 - - - - 21882 54 154 254 354 154 54 254 54 - - 21883 56 156 256 356 156 56 - - - - 21884 58 158 258 358 158 58 - - - - 21885 60 160 260 360 160 60 260 60 360 60 21886 62 162 262 362 162 62 - - - - 21887 64 164 264 364 164 64 - - - - 21888 66 166 266 366 166 66 266 66 - - 21889 68 168 268 368 168 68 - - - - 21890 70 170 270 370 170 70 - - 370 70 21891 72 172 272 372 172 72 272 72 - - 21892 74 174 274 374 174 74 - - - - 21893 76 176 276 376 176 76 - - - - 21894 78 178 278 378 178 78 278 78 - - 21895 80 180 280 380 180 80 - - 380 80 21896 82 182 282 382 182 82 - - - - 21897 84 184 284 384 184 84 284 84 - - 21898 86 186 286 386 186 86 - - - - 21899 88 188 288 388 188 88 - - - - 21900 90 190 290 390 190 90 290 90 390 90 21901 92 192 292 392 192 92 - - - - 21902 94 194 294 394 194 94 - - - - 21903 - - - - 100 0 - - - - 21904 - - - - - - - - 300 0 21905 - - - - - - - - 305 5 21906 - - - - - - - - 315 15 21907 - - - - - - - - 325 25 21908 - - - - - - - - 335 35 21909 - - - - - - - - 345 45 21910 - - - - - - - - 355 55 21911 - - - - - - - - 365 65 21912 - - - - - - - - 375 75 21913 - - - - - - - - 385 85 21914 - - - - - - - - 395 95 21915} 21916do_execsql_test joinD-748 { 21917 SELECT t1.*, t2.*, t3.*, t4.* 21918 FROM t1 RIGHT JOIN t2 ON t2.x>0 21919 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 21920 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 21921 WHERE t1.b IS NOT DISTINCT FROM t2.b 21922 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21923} { 21924 2 102 202 302 102 2 - - - - 21925 4 104 204 304 104 4 - - - - 21926 6 106 206 306 106 6 206 6 - - 21927 8 108 208 308 108 8 - - - - 21928 10 110 210 310 110 10 - - 310 10 21929 12 112 212 312 112 12 212 12 - - 21930 14 114 214 314 114 14 - - - - 21931 16 116 216 316 116 16 - - - - 21932 18 118 218 318 118 18 218 18 - - 21933 20 120 220 320 120 20 - - 320 20 21934 22 122 222 322 122 22 - - - - 21935 24 124 224 324 124 24 224 24 - - 21936 26 126 226 326 126 26 - - - - 21937 28 128 228 328 128 28 - - - - 21938 30 130 230 330 130 30 230 30 330 30 21939 32 132 232 332 132 32 - - - - 21940 34 134 234 334 134 34 - - - - 21941 36 136 236 336 136 36 236 36 - - 21942 38 138 238 338 138 38 - - - - 21943 40 140 240 340 140 40 - - 340 40 21944 42 142 242 342 142 42 242 42 - - 21945 44 144 244 344 144 44 - - - - 21946 46 146 246 346 146 46 - - - - 21947 48 148 248 348 148 48 248 48 - - 21948 50 150 250 350 150 50 - - 350 50 21949 52 152 252 352 152 52 - - - - 21950 54 154 254 354 154 54 254 54 - - 21951 56 156 256 356 156 56 - - - - 21952 58 158 258 358 158 58 - - - - 21953 60 160 260 360 160 60 260 60 360 60 21954 62 162 262 362 162 62 - - - - 21955 64 164 264 364 164 64 - - - - 21956 66 166 266 366 166 66 266 66 - - 21957 68 168 268 368 168 68 - - - - 21958 70 170 270 370 170 70 - - 370 70 21959 72 172 272 372 172 72 272 72 - - 21960 74 174 274 374 174 74 - - - - 21961 76 176 276 376 176 76 - - - - 21962 78 178 278 378 178 78 278 78 - - 21963 80 180 280 380 180 80 - - 380 80 21964 82 182 282 382 182 82 - - - - 21965 84 184 284 384 184 84 284 84 - - 21966 86 186 286 386 186 86 - - - - 21967 88 188 288 388 188 88 - - - - 21968 90 190 290 390 190 90 290 90 390 90 21969 92 192 292 392 192 92 - - - - 21970 94 194 294 394 194 94 - - - - 21971 - - - - - - - - 300 0 21972} 21973do_execsql_test joinD-749 { 21974 SELECT t1.*, t2.*, t3.*, t4.* 21975 FROM t1 RIGHT JOIN t2 ON t2.x>0 21976 LEFT JOIN t3 ON t3.y>0 21977 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 21978 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 21979 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 21980} { 21981 6 106 206 306 106 6 206 6 - - 21982 12 112 212 312 112 12 212 12 - - 21983 18 118 218 318 118 18 218 18 - - 21984 24 124 224 324 124 24 224 24 - - 21985 30 130 230 330 130 30 230 30 330 30 21986 36 136 236 336 136 36 236 36 - - 21987 42 142 242 342 142 42 242 42 - - 21988 48 148 248 348 148 48 248 48 - - 21989 54 154 254 354 154 54 254 54 - - 21990 60 160 260 360 160 60 260 60 360 60 21991 66 166 266 366 166 66 266 66 - - 21992 72 172 272 372 172 72 272 72 - - 21993 78 178 278 378 178 78 278 78 - - 21994 84 184 284 384 184 84 284 84 - - 21995 90 190 290 390 190 90 290 90 390 90 21996 - - - - - - - - 300 0 21997} 21998do_execsql_test joinD-750 { 21999 SELECT t1.*, t2.*, t3.*, t4.* 22000 FROM t1 RIGHT JOIN t2 ON t2.x>0 22001 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 22002 FULL JOIN t4 ON t4.z>0 22003 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 22004 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22005} { 22006 10 110 210 310 110 10 - - 310 10 22007 20 120 220 320 120 20 - - 320 20 22008 30 130 230 330 130 30 230 30 330 30 22009 40 140 240 340 140 40 - - 340 40 22010 50 150 250 350 150 50 - - 350 50 22011 60 160 260 360 160 60 260 60 360 60 22012 70 170 270 370 170 70 - - 370 70 22013 80 180 280 380 180 80 - - 380 80 22014 90 190 290 390 190 90 290 90 390 90 22015} 22016do_execsql_test joinD-751 { 22017 SELECT t1.*, t2.*, t3.*, t4.* 22018 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 22019 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 22020 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 22021 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22022} { 22023 2 102 202 302 102 2 - - - - 22024 4 104 204 304 104 4 - - - - 22025 6 106 206 306 106 6 206 6 - - 22026 8 108 208 308 108 8 - - - - 22027 10 110 210 310 110 10 - - 310 10 22028 12 112 212 312 112 12 212 12 - - 22029 14 114 214 314 114 14 - - - - 22030 16 116 216 316 116 16 - - - - 22031 18 118 218 318 118 18 218 18 - - 22032 20 120 220 320 120 20 - - 320 20 22033 22 122 222 322 122 22 - - - - 22034 24 124 224 324 124 24 224 24 - - 22035 26 126 226 326 126 26 - - - - 22036 28 128 228 328 128 28 - - - - 22037 30 130 230 330 130 30 230 30 330 30 22038 32 132 232 332 132 32 - - - - 22039 34 134 234 334 134 34 - - - - 22040 36 136 236 336 136 36 236 36 - - 22041 38 138 238 338 138 38 - - - - 22042 40 140 240 340 140 40 - - 340 40 22043 42 142 242 342 142 42 242 42 - - 22044 44 144 244 344 144 44 - - - - 22045 46 146 246 346 146 46 - - - - 22046 48 148 248 348 148 48 248 48 - - 22047 50 150 250 350 150 50 - - 350 50 22048 52 152 252 352 152 52 - - - - 22049 54 154 254 354 154 54 254 54 - - 22050 56 156 256 356 156 56 - - - - 22051 58 158 258 358 158 58 - - - - 22052 60 160 260 360 160 60 260 60 360 60 22053 62 162 262 362 162 62 - - - - 22054 64 164 264 364 164 64 - - - - 22055 66 166 266 366 166 66 266 66 - - 22056 68 168 268 368 168 68 - - - - 22057 70 170 270 370 170 70 - - 370 70 22058 72 172 272 372 172 72 272 72 - - 22059 74 174 274 374 174 74 - - - - 22060 76 176 276 376 176 76 - - - - 22061 78 178 278 378 178 78 278 78 - - 22062 80 180 280 380 180 80 - - 380 80 22063 82 182 282 382 182 82 - - - - 22064 84 184 284 384 184 84 284 84 - - 22065 86 186 286 386 186 86 - - - - 22066 88 188 288 388 188 88 - - - - 22067 90 190 290 390 190 90 290 90 390 90 22068 92 192 292 392 192 92 - - - - 22069 94 194 294 394 194 94 - - - - 22070 - - - - 100 0 - - - - 22071 - - - - - - - - 300 0 22072 - - - - - - - - 305 5 22073 - - - - - - - - 315 15 22074 - - - - - - - - 325 25 22075 - - - - - - - - 335 35 22076 - - - - - - - - 345 45 22077 - - - - - - - - 355 55 22078 - - - - - - - - 365 65 22079 - - - - - - - - 375 75 22080 - - - - - - - - 385 85 22081 - - - - - - - - 395 95 22082} 22083do_execsql_test joinD-752 { 22084 SELECT t1.*, t2.*, t3.*, t4.* 22085 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22086 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 22087 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 22088 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22089} { 22090 2 102 202 302 102 2 - - - - 22091 4 104 204 304 104 4 - - - - 22092 6 106 206 306 106 6 206 6 - - 22093 8 108 208 308 108 8 - - - - 22094 10 110 210 310 110 10 - - 310 10 22095 12 112 212 312 112 12 212 12 - - 22096 14 114 214 314 114 14 - - - - 22097 16 116 216 316 116 16 - - - - 22098 18 118 218 318 118 18 218 18 - - 22099 20 120 220 320 120 20 - - 320 20 22100 22 122 222 322 122 22 - - - - 22101 24 124 224 324 124 24 224 24 - - 22102 26 126 226 326 126 26 - - - - 22103 28 128 228 328 128 28 - - - - 22104 30 130 230 330 130 30 230 30 330 30 22105 32 132 232 332 132 32 - - - - 22106 34 134 234 334 134 34 - - - - 22107 36 136 236 336 136 36 236 36 - - 22108 38 138 238 338 138 38 - - - - 22109 40 140 240 340 140 40 - - 340 40 22110 42 142 242 342 142 42 242 42 - - 22111 44 144 244 344 144 44 - - - - 22112 46 146 246 346 146 46 - - - - 22113 48 148 248 348 148 48 248 48 - - 22114 50 150 250 350 150 50 - - 350 50 22115 52 152 252 352 152 52 - - - - 22116 54 154 254 354 154 54 254 54 - - 22117 56 156 256 356 156 56 - - - - 22118 58 158 258 358 158 58 - - - - 22119 60 160 260 360 160 60 260 60 360 60 22120 62 162 262 362 162 62 - - - - 22121 64 164 264 364 164 64 - - - - 22122 66 166 266 366 166 66 266 66 - - 22123 68 168 268 368 168 68 - - - - 22124 70 170 270 370 170 70 - - 370 70 22125 72 172 272 372 172 72 272 72 - - 22126 74 174 274 374 174 74 - - - - 22127 76 176 276 376 176 76 - - - - 22128 78 178 278 378 178 78 278 78 - - 22129 80 180 280 380 180 80 - - 380 80 22130 82 182 282 382 182 82 - - - - 22131 84 184 284 384 184 84 284 84 - - 22132 86 186 286 386 186 86 - - - - 22133 88 188 288 388 188 88 - - - - 22134 90 190 290 390 190 90 290 90 390 90 22135 92 192 292 392 192 92 - - - - 22136 94 194 294 394 194 94 - - - - 22137 - - - - 100 0 - - - - 22138 - - - - - - - - 300 0 22139 - - - - - - - - 305 5 22140 - - - - - - - - 315 15 22141 - - - - - - - - 325 25 22142 - - - - - - - - 335 35 22143 - - - - - - - - 345 45 22144 - - - - - - - - 355 55 22145 - - - - - - - - 365 65 22146 - - - - - - - - 375 75 22147 - - - - - - - - 385 85 22148 - - - - - - - - 395 95 22149} 22150do_execsql_test joinD-753 { 22151 SELECT t1.*, t2.*, t3.*, t4.* 22152 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22153 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22154 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22155 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22156} { 22157 30 130 230 330 130 30 230 30 330 30 22158 60 160 260 360 160 60 260 60 360 60 22159 90 190 290 390 190 90 290 90 390 90 22160} 22161do_execsql_test joinD-754 { 22162 SELECT t1.*, t2.*, t3.*, t4.* 22163 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 22164 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22165 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22166 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22167} { 22168 30 130 230 330 130 30 230 30 330 30 22169 60 160 260 360 160 60 260 60 360 60 22170 90 190 290 390 190 90 290 90 390 90 22171} 22172do_execsql_test joinD-755 { 22173 SELECT t1.*, t2.*, t3.*, t4.* 22174 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22175 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22176 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22177 WHERE t2.x>0 22178 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22179} { 22180 30 130 230 330 130 30 230 30 330 30 22181 60 160 260 360 160 60 260 60 360 60 22182 90 190 290 390 190 90 290 90 390 90 22183} 22184do_execsql_test joinD-756 { 22185 SELECT t1.*, t2.*, t3.*, t4.* 22186 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22187 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22188 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22189 WHERE (t2.x>0 OR t2.x IS NULL) 22190 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22191} { 22192 30 130 230 330 130 30 230 30 330 30 22193 60 160 260 360 160 60 260 60 360 60 22194 90 190 290 390 190 90 290 90 390 90 22195} 22196do_execsql_test joinD-757 { 22197 SELECT t1.*, t2.*, t3.*, t4.* 22198 FROM t1 RIGHT JOIN t2 ON true 22199 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22200 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22201 WHERE t1.b=t2.b AND t2.x>0 22202 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22203} { 22204 30 130 230 330 130 30 230 30 330 30 22205 60 160 260 360 160 60 260 60 360 60 22206 90 190 290 390 190 90 290 90 390 90 22207} 22208do_execsql_test joinD-758 { 22209 SELECT t1.*, t2.*, t3.*, t4.* 22210 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22211 RIGHT JOIN t3 ON t1.c=t3.c 22212 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22213 WHERE t3.y>0 22214 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22215} { 22216 30 130 230 330 130 30 230 30 330 30 22217 60 160 260 360 160 60 260 60 360 60 22218 90 190 290 390 190 90 290 90 390 90 22219} 22220do_execsql_test joinD-759 { 22221 SELECT t1.*, t2.*, t3.*, t4.* 22222 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22223 RIGHT JOIN t3 ON t1.c=t3.c 22224 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22225 WHERE t3.y>0 OR t3.y IS NULL 22226 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22227} { 22228 30 130 230 330 130 30 230 30 330 30 22229 60 160 260 360 160 60 260 60 360 60 22230 90 190 290 390 190 90 290 90 390 90 22231} 22232do_execsql_test joinD-760 { 22233 SELECT t1.*, t2.*, t3.*, t4.* 22234 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22235 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22236 INNER JOIN t4 ON t1.d=t4.d 22237 WHERE t4.z>0 22238 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22239} { 22240 30 130 230 330 130 30 230 30 330 30 22241 60 160 260 360 160 60 260 60 360 60 22242 90 190 290 390 190 90 290 90 390 90 22243} 22244do_execsql_test joinD-761 { 22245 SELECT t1.*, t2.*, t3.*, t4.* 22246 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22247 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22248 INNER JOIN t4 ON t1.d=t4.d 22249 WHERE t4.z IS NULL OR t4.z>0 22250 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22251} { 22252 30 130 230 330 130 30 230 30 330 30 22253 60 160 260 360 160 60 260 60 360 60 22254 90 190 290 390 190 90 290 90 390 90 22255} 22256do_execsql_test joinD-762 { 22257 SELECT t1.*, t2.*, t3.*, t4.* 22258 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22259 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22260 INNER JOIN t4 ON t1.d=t4.d 22261 WHERE t2.x>0 AND t4.z>0 22262 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22263} { 22264 30 130 230 330 130 30 230 30 330 30 22265 60 160 260 360 160 60 260 60 360 60 22266 90 190 290 390 190 90 290 90 390 90 22267} 22268do_execsql_test joinD-763 { 22269 SELECT t1.*, t2.*, t3.*, t4.* 22270 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22271 RIGHT JOIN t3 ON t1.c=t3.c 22272 INNER JOIN t4 ON t1.d=t4.d 22273 WHERE t4.z>0 AND t3.y>0 22274 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22275} { 22276 30 130 230 330 130 30 230 30 330 30 22277 60 160 260 360 160 60 260 60 360 60 22278 90 190 290 390 190 90 290 90 390 90 22279} 22280do_execsql_test joinD-764 { 22281 SELECT t1.*, t2.*, t3.*, t4.* 22282 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22283 RIGHT JOIN t3 ON t1.c=t3.c 22284 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22285 WHERE t2.x>0 AND t3.y>0 22286 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22287} { 22288 30 130 230 330 130 30 230 30 330 30 22289 60 160 260 360 160 60 260 60 360 60 22290 90 190 290 390 190 90 290 90 390 90 22291} 22292do_execsql_test joinD-765 { 22293 SELECT t1.*, t2.*, t3.*, t4.* 22294 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22295 RIGHT JOIN t3 ON t1.c=t3.c 22296 INNER JOIN t4 ON t1.d=t4.d 22297 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 22298 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22299} { 22300 30 130 230 330 130 30 230 30 330 30 22301 60 160 260 360 160 60 260 60 360 60 22302 90 190 290 390 190 90 290 90 390 90 22303} 22304do_execsql_test joinD-766 { 22305 SELECT t1.*, t2.*, t3.*, t4.* 22306 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 22307 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 22308 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 22309 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22310} { 22311 30 130 230 330 130 30 230 30 330 30 22312 60 160 260 360 160 60 260 60 360 60 22313 90 190 290 390 190 90 290 90 390 90 22314} 22315do_execsql_test joinD-767 { 22316 SELECT t1.*, t2.*, t3.*, t4.* 22317 FROM t1 RIGHT JOIN t2 ON t2.x>0 22318 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 22319 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 22320 WHERE t1.b IS NOT DISTINCT FROM t2.b 22321 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22322} { 22323 30 130 230 330 130 30 230 30 330 30 22324 60 160 260 360 160 60 260 60 360 60 22325 90 190 290 390 190 90 290 90 390 90 22326} 22327do_execsql_test joinD-768 { 22328 SELECT t1.*, t2.*, t3.*, t4.* 22329 FROM t1 RIGHT JOIN t2 ON t2.x>0 22330 RIGHT JOIN t3 ON t3.y>0 22331 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 22332 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 22333 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22334} { 22335 30 130 230 330 130 30 230 30 330 30 22336 60 160 260 360 160 60 260 60 360 60 22337 90 190 290 390 190 90 290 90 390 90 22338} 22339do_execsql_test joinD-769 { 22340 SELECT t1.*, t2.*, t3.*, t4.* 22341 FROM t1 RIGHT JOIN t2 ON t2.x>0 22342 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 22343 INNER JOIN t4 ON t4.z>0 22344 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 22345 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22346} { 22347 30 130 230 330 130 30 230 30 330 30 22348 60 160 260 360 160 60 260 60 360 60 22349 90 190 290 390 190 90 290 90 390 90 22350} 22351do_execsql_test joinD-770 { 22352 SELECT t1.*, t2.*, t3.*, t4.* 22353 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 22354 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22355 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22356 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22357} { 22358 30 130 230 330 130 30 230 30 330 30 22359 60 160 260 360 160 60 260 60 360 60 22360 90 190 290 390 190 90 290 90 390 90 22361} 22362do_execsql_test joinD-771 { 22363 SELECT t1.*, t2.*, t3.*, t4.* 22364 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22365 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 22366 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 22367 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22368} { 22369 30 130 230 330 130 30 230 30 330 30 22370 60 160 260 360 160 60 260 60 360 60 22371 90 190 290 390 190 90 290 90 390 90 22372} 22373do_execsql_test joinD-772 { 22374 SELECT t1.*, t2.*, t3.*, t4.* 22375 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22376 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22377 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22378 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22379} { 22380 6 106 206 306 106 6 206 6 - - 22381 12 112 212 312 112 12 212 12 - - 22382 18 118 218 318 118 18 218 18 - - 22383 24 124 224 324 124 24 224 24 - - 22384 30 130 230 330 130 30 230 30 330 30 22385 36 136 236 336 136 36 236 36 - - 22386 42 142 242 342 142 42 242 42 - - 22387 48 148 248 348 148 48 248 48 - - 22388 54 154 254 354 154 54 254 54 - - 22389 60 160 260 360 160 60 260 60 360 60 22390 66 166 266 366 166 66 266 66 - - 22391 72 172 272 372 172 72 272 72 - - 22392 78 178 278 378 178 78 278 78 - - 22393 84 184 284 384 184 84 284 84 - - 22394 90 190 290 390 190 90 290 90 390 90 22395 - - - - - - 200 0 - - 22396 - - - - - - 203 3 - - 22397 - - - - - - 209 9 - - 22398 - - - - - - 215 15 - - 22399 - - - - - - 221 21 - - 22400 - - - - - - 227 27 - - 22401 - - - - - - 233 33 - - 22402 - - - - - - 239 39 - - 22403 - - - - - - 245 45 - - 22404 - - - - - - 251 51 - - 22405 - - - - - - 257 57 - - 22406 - - - - - - 263 63 - - 22407 - - - - - - 269 69 - - 22408 - - - - - - 275 75 - - 22409 - - - - - - 281 81 - - 22410 - - - - - - 287 87 - - 22411 - - - - - - 293 93 - - 22412} 22413do_execsql_test joinD-773 { 22414 SELECT t1.*, t2.*, t3.*, t4.* 22415 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 22416 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22417 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22418 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22419} { 22420 6 106 206 306 106 6 206 6 - - 22421 12 112 212 312 112 12 212 12 - - 22422 18 118 218 318 118 18 218 18 - - 22423 24 124 224 324 124 24 224 24 - - 22424 30 130 230 330 130 30 230 30 330 30 22425 36 136 236 336 136 36 236 36 - - 22426 42 142 242 342 142 42 242 42 - - 22427 48 148 248 348 148 48 248 48 - - 22428 54 154 254 354 154 54 254 54 - - 22429 60 160 260 360 160 60 260 60 360 60 22430 66 166 266 366 166 66 266 66 - - 22431 72 172 272 372 172 72 272 72 - - 22432 78 178 278 378 178 78 278 78 - - 22433 84 184 284 384 184 84 284 84 - - 22434 90 190 290 390 190 90 290 90 390 90 22435 - - - - - - 200 0 - - 22436 - - - - - - 203 3 - - 22437 - - - - - - 209 9 - - 22438 - - - - - - 215 15 - - 22439 - - - - - - 221 21 - - 22440 - - - - - - 227 27 - - 22441 - - - - - - 233 33 - - 22442 - - - - - - 239 39 - - 22443 - - - - - - 245 45 - - 22444 - - - - - - 251 51 - - 22445 - - - - - - 257 57 - - 22446 - - - - - - 263 63 - - 22447 - - - - - - 269 69 - - 22448 - - - - - - 275 75 - - 22449 - - - - - - 281 81 - - 22450 - - - - - - 287 87 - - 22451 - - - - - - 293 93 - - 22452} 22453do_execsql_test joinD-774 { 22454 SELECT t1.*, t2.*, t3.*, t4.* 22455 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22456 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22457 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22458 WHERE t2.x>0 22459 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22460} { 22461 6 106 206 306 106 6 206 6 - - 22462 12 112 212 312 112 12 212 12 - - 22463 18 118 218 318 118 18 218 18 - - 22464 24 124 224 324 124 24 224 24 - - 22465 30 130 230 330 130 30 230 30 330 30 22466 36 136 236 336 136 36 236 36 - - 22467 42 142 242 342 142 42 242 42 - - 22468 48 148 248 348 148 48 248 48 - - 22469 54 154 254 354 154 54 254 54 - - 22470 60 160 260 360 160 60 260 60 360 60 22471 66 166 266 366 166 66 266 66 - - 22472 72 172 272 372 172 72 272 72 - - 22473 78 178 278 378 178 78 278 78 - - 22474 84 184 284 384 184 84 284 84 - - 22475 90 190 290 390 190 90 290 90 390 90 22476} 22477do_execsql_test joinD-775 { 22478 SELECT t1.*, t2.*, t3.*, t4.* 22479 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22480 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22481 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22482 WHERE (t2.x>0 OR t2.x IS NULL) 22483 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22484} { 22485 6 106 206 306 106 6 206 6 - - 22486 12 112 212 312 112 12 212 12 - - 22487 18 118 218 318 118 18 218 18 - - 22488 24 124 224 324 124 24 224 24 - - 22489 30 130 230 330 130 30 230 30 330 30 22490 36 136 236 336 136 36 236 36 - - 22491 42 142 242 342 142 42 242 42 - - 22492 48 148 248 348 148 48 248 48 - - 22493 54 154 254 354 154 54 254 54 - - 22494 60 160 260 360 160 60 260 60 360 60 22495 66 166 266 366 166 66 266 66 - - 22496 72 172 272 372 172 72 272 72 - - 22497 78 178 278 378 178 78 278 78 - - 22498 84 184 284 384 184 84 284 84 - - 22499 90 190 290 390 190 90 290 90 390 90 22500 - - - - - - 200 0 - - 22501 - - - - - - 203 3 - - 22502 - - - - - - 209 9 - - 22503 - - - - - - 215 15 - - 22504 - - - - - - 221 21 - - 22505 - - - - - - 227 27 - - 22506 - - - - - - 233 33 - - 22507 - - - - - - 239 39 - - 22508 - - - - - - 245 45 - - 22509 - - - - - - 251 51 - - 22510 - - - - - - 257 57 - - 22511 - - - - - - 263 63 - - 22512 - - - - - - 269 69 - - 22513 - - - - - - 275 75 - - 22514 - - - - - - 281 81 - - 22515 - - - - - - 287 87 - - 22516 - - - - - - 293 93 - - 22517} 22518do_execsql_test joinD-776 { 22519 SELECT t1.*, t2.*, t3.*, t4.* 22520 FROM t1 RIGHT JOIN t2 ON true 22521 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22522 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22523 WHERE t1.b=t2.b AND t2.x>0 22524 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22525} { 22526 6 106 206 306 106 6 206 6 - - 22527 12 112 212 312 112 12 212 12 - - 22528 18 118 218 318 118 18 218 18 - - 22529 24 124 224 324 124 24 224 24 - - 22530 30 130 230 330 130 30 230 30 330 30 22531 36 136 236 336 136 36 236 36 - - 22532 42 142 242 342 142 42 242 42 - - 22533 48 148 248 348 148 48 248 48 - - 22534 54 154 254 354 154 54 254 54 - - 22535 60 160 260 360 160 60 260 60 360 60 22536 66 166 266 366 166 66 266 66 - - 22537 72 172 272 372 172 72 272 72 - - 22538 78 178 278 378 178 78 278 78 - - 22539 84 184 284 384 184 84 284 84 - - 22540 90 190 290 390 190 90 290 90 390 90 22541} 22542do_execsql_test joinD-777 { 22543 SELECT t1.*, t2.*, t3.*, t4.* 22544 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22545 RIGHT JOIN t3 ON t1.c=t3.c 22546 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22547 WHERE t3.y>0 22548 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22549} { 22550 6 106 206 306 106 6 206 6 - - 22551 12 112 212 312 112 12 212 12 - - 22552 18 118 218 318 118 18 218 18 - - 22553 24 124 224 324 124 24 224 24 - - 22554 30 130 230 330 130 30 230 30 330 30 22555 36 136 236 336 136 36 236 36 - - 22556 42 142 242 342 142 42 242 42 - - 22557 48 148 248 348 148 48 248 48 - - 22558 54 154 254 354 154 54 254 54 - - 22559 60 160 260 360 160 60 260 60 360 60 22560 66 166 266 366 166 66 266 66 - - 22561 72 172 272 372 172 72 272 72 - - 22562 78 178 278 378 178 78 278 78 - - 22563 84 184 284 384 184 84 284 84 - - 22564 90 190 290 390 190 90 290 90 390 90 22565 - - - - - - 203 3 - - 22566 - - - - - - 209 9 - - 22567 - - - - - - 215 15 - - 22568 - - - - - - 221 21 - - 22569 - - - - - - 227 27 - - 22570 - - - - - - 233 33 - - 22571 - - - - - - 239 39 - - 22572 - - - - - - 245 45 - - 22573 - - - - - - 251 51 - - 22574 - - - - - - 257 57 - - 22575 - - - - - - 263 63 - - 22576 - - - - - - 269 69 - - 22577 - - - - - - 275 75 - - 22578 - - - - - - 281 81 - - 22579 - - - - - - 287 87 - - 22580 - - - - - - 293 93 - - 22581} 22582do_execsql_test joinD-778 { 22583 SELECT t1.*, t2.*, t3.*, t4.* 22584 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22585 RIGHT JOIN t3 ON t1.c=t3.c 22586 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22587 WHERE t3.y>0 OR t3.y IS NULL 22588 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22589} { 22590 6 106 206 306 106 6 206 6 - - 22591 12 112 212 312 112 12 212 12 - - 22592 18 118 218 318 118 18 218 18 - - 22593 24 124 224 324 124 24 224 24 - - 22594 30 130 230 330 130 30 230 30 330 30 22595 36 136 236 336 136 36 236 36 - - 22596 42 142 242 342 142 42 242 42 - - 22597 48 148 248 348 148 48 248 48 - - 22598 54 154 254 354 154 54 254 54 - - 22599 60 160 260 360 160 60 260 60 360 60 22600 66 166 266 366 166 66 266 66 - - 22601 72 172 272 372 172 72 272 72 - - 22602 78 178 278 378 178 78 278 78 - - 22603 84 184 284 384 184 84 284 84 - - 22604 90 190 290 390 190 90 290 90 390 90 22605 - - - - - - 203 3 - - 22606 - - - - - - 209 9 - - 22607 - - - - - - 215 15 - - 22608 - - - - - - 221 21 - - 22609 - - - - - - 227 27 - - 22610 - - - - - - 233 33 - - 22611 - - - - - - 239 39 - - 22612 - - - - - - 245 45 - - 22613 - - - - - - 251 51 - - 22614 - - - - - - 257 57 - - 22615 - - - - - - 263 63 - - 22616 - - - - - - 269 69 - - 22617 - - - - - - 275 75 - - 22618 - - - - - - 281 81 - - 22619 - - - - - - 287 87 - - 22620 - - - - - - 293 93 - - 22621} 22622do_execsql_test joinD-779 { 22623 SELECT t1.*, t2.*, t3.*, t4.* 22624 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22625 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22626 LEFT JOIN t4 ON t1.d=t4.d 22627 WHERE t4.z>0 22628 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22629} { 22630 30 130 230 330 130 30 230 30 330 30 22631 60 160 260 360 160 60 260 60 360 60 22632 90 190 290 390 190 90 290 90 390 90 22633} 22634do_execsql_test joinD-780 { 22635 SELECT t1.*, t2.*, t3.*, t4.* 22636 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22637 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22638 LEFT JOIN t4 ON t1.d=t4.d 22639 WHERE t4.z IS NULL OR t4.z>0 22640 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22641} { 22642 6 106 206 306 106 6 206 6 - - 22643 12 112 212 312 112 12 212 12 - - 22644 18 118 218 318 118 18 218 18 - - 22645 24 124 224 324 124 24 224 24 - - 22646 30 130 230 330 130 30 230 30 330 30 22647 36 136 236 336 136 36 236 36 - - 22648 42 142 242 342 142 42 242 42 - - 22649 48 148 248 348 148 48 248 48 - - 22650 54 154 254 354 154 54 254 54 - - 22651 60 160 260 360 160 60 260 60 360 60 22652 66 166 266 366 166 66 266 66 - - 22653 72 172 272 372 172 72 272 72 - - 22654 78 178 278 378 178 78 278 78 - - 22655 84 184 284 384 184 84 284 84 - - 22656 90 190 290 390 190 90 290 90 390 90 22657 - - - - - - 200 0 - - 22658 - - - - - - 203 3 - - 22659 - - - - - - 209 9 - - 22660 - - - - - - 215 15 - - 22661 - - - - - - 221 21 - - 22662 - - - - - - 227 27 - - 22663 - - - - - - 233 33 - - 22664 - - - - - - 239 39 - - 22665 - - - - - - 245 45 - - 22666 - - - - - - 251 51 - - 22667 - - - - - - 257 57 - - 22668 - - - - - - 263 63 - - 22669 - - - - - - 269 69 - - 22670 - - - - - - 275 75 - - 22671 - - - - - - 281 81 - - 22672 - - - - - - 287 87 - - 22673 - - - - - - 293 93 - - 22674} 22675do_execsql_test joinD-781 { 22676 SELECT t1.*, t2.*, t3.*, t4.* 22677 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22678 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22679 LEFT JOIN t4 ON t1.d=t4.d 22680 WHERE t2.x>0 AND t4.z>0 22681 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22682} { 22683 30 130 230 330 130 30 230 30 330 30 22684 60 160 260 360 160 60 260 60 360 60 22685 90 190 290 390 190 90 290 90 390 90 22686} 22687do_execsql_test joinD-782 { 22688 SELECT t1.*, t2.*, t3.*, t4.* 22689 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22690 RIGHT JOIN t3 ON t1.c=t3.c 22691 LEFT JOIN t4 ON t1.d=t4.d 22692 WHERE t4.z>0 AND t3.y>0 22693 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22694} { 22695 30 130 230 330 130 30 230 30 330 30 22696 60 160 260 360 160 60 260 60 360 60 22697 90 190 290 390 190 90 290 90 390 90 22698} 22699do_execsql_test joinD-783 { 22700 SELECT t1.*, t2.*, t3.*, t4.* 22701 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22702 RIGHT JOIN t3 ON t1.c=t3.c 22703 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22704 WHERE t2.x>0 AND t3.y>0 22705 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22706} { 22707 6 106 206 306 106 6 206 6 - - 22708 12 112 212 312 112 12 212 12 - - 22709 18 118 218 318 118 18 218 18 - - 22710 24 124 224 324 124 24 224 24 - - 22711 30 130 230 330 130 30 230 30 330 30 22712 36 136 236 336 136 36 236 36 - - 22713 42 142 242 342 142 42 242 42 - - 22714 48 148 248 348 148 48 248 48 - - 22715 54 154 254 354 154 54 254 54 - - 22716 60 160 260 360 160 60 260 60 360 60 22717 66 166 266 366 166 66 266 66 - - 22718 72 172 272 372 172 72 272 72 - - 22719 78 178 278 378 178 78 278 78 - - 22720 84 184 284 384 184 84 284 84 - - 22721 90 190 290 390 190 90 290 90 390 90 22722} 22723do_execsql_test joinD-784 { 22724 SELECT t1.*, t2.*, t3.*, t4.* 22725 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22726 RIGHT JOIN t3 ON t1.c=t3.c 22727 LEFT JOIN t4 ON t1.d=t4.d 22728 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 22729 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22730} { 22731 30 130 230 330 130 30 230 30 330 30 22732 60 160 260 360 160 60 260 60 360 60 22733 90 190 290 390 190 90 290 90 390 90 22734} 22735do_execsql_test joinD-785 { 22736 SELECT t1.*, t2.*, t3.*, t4.* 22737 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 22738 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 22739 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 22740 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22741} { 22742 6 106 206 306 106 6 206 6 - - 22743 12 112 212 312 112 12 212 12 - - 22744 18 118 218 318 118 18 218 18 - - 22745 24 124 224 324 124 24 224 24 - - 22746 30 130 230 330 130 30 230 30 330 30 22747 36 136 236 336 136 36 236 36 - - 22748 42 142 242 342 142 42 242 42 - - 22749 48 148 248 348 148 48 248 48 - - 22750 54 154 254 354 154 54 254 54 - - 22751 60 160 260 360 160 60 260 60 360 60 22752 66 166 266 366 166 66 266 66 - - 22753 72 172 272 372 172 72 272 72 - - 22754 78 178 278 378 178 78 278 78 - - 22755 84 184 284 384 184 84 284 84 - - 22756 90 190 290 390 190 90 290 90 390 90 22757 - - - - - - 200 0 - - 22758 - - - - - - 203 3 - - 22759 - - - - - - 209 9 - - 22760 - - - - - - 215 15 - - 22761 - - - - - - 221 21 - - 22762 - - - - - - 227 27 - - 22763 - - - - - - 233 33 - - 22764 - - - - - - 239 39 - - 22765 - - - - - - 245 45 - - 22766 - - - - - - 251 51 - - 22767 - - - - - - 257 57 - - 22768 - - - - - - 263 63 - - 22769 - - - - - - 269 69 - - 22770 - - - - - - 275 75 - - 22771 - - - - - - 281 81 - - 22772 - - - - - - 287 87 - - 22773 - - - - - - 293 93 - - 22774} 22775do_execsql_test joinD-786 { 22776 SELECT t1.*, t2.*, t3.*, t4.* 22777 FROM t1 RIGHT JOIN t2 ON t2.x>0 22778 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 22779 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 22780 WHERE t1.b IS NOT DISTINCT FROM t2.b 22781 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22782} { 22783 6 106 206 306 106 6 206 6 - - 22784 12 112 212 312 112 12 212 12 - - 22785 18 118 218 318 118 18 218 18 - - 22786 24 124 224 324 124 24 224 24 - - 22787 30 130 230 330 130 30 230 30 330 30 22788 36 136 236 336 136 36 236 36 - - 22789 42 142 242 342 142 42 242 42 - - 22790 48 148 248 348 148 48 248 48 - - 22791 54 154 254 354 154 54 254 54 - - 22792 60 160 260 360 160 60 260 60 360 60 22793 66 166 266 366 166 66 266 66 - - 22794 72 172 272 372 172 72 272 72 - - 22795 78 178 278 378 178 78 278 78 - - 22796 84 184 284 384 184 84 284 84 - - 22797 90 190 290 390 190 90 290 90 390 90 22798 - - - - - - 200 0 - - 22799} 22800do_execsql_test joinD-787 { 22801 SELECT t1.*, t2.*, t3.*, t4.* 22802 FROM t1 RIGHT JOIN t2 ON t2.x>0 22803 RIGHT JOIN t3 ON t3.y>0 22804 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 22805 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 22806 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22807} { 22808 6 106 206 306 106 6 206 6 - - 22809 12 112 212 312 112 12 212 12 - - 22810 18 118 218 318 118 18 218 18 - - 22811 24 124 224 324 124 24 224 24 - - 22812 30 130 230 330 130 30 230 30 330 30 22813 36 136 236 336 136 36 236 36 - - 22814 42 142 242 342 142 42 242 42 - - 22815 48 148 248 348 148 48 248 48 - - 22816 54 154 254 354 154 54 254 54 - - 22817 60 160 260 360 160 60 260 60 360 60 22818 66 166 266 366 166 66 266 66 - - 22819 72 172 272 372 172 72 272 72 - - 22820 78 178 278 378 178 78 278 78 - - 22821 84 184 284 384 184 84 284 84 - - 22822 90 190 290 390 190 90 290 90 390 90 22823} 22824do_execsql_test joinD-788 { 22825 SELECT t1.*, t2.*, t3.*, t4.* 22826 FROM t1 RIGHT JOIN t2 ON t2.x>0 22827 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 22828 LEFT JOIN t4 ON t4.z>0 22829 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 22830 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22831} { 22832 30 130 230 330 130 30 230 30 330 30 22833 60 160 260 360 160 60 260 60 360 60 22834 90 190 290 390 190 90 290 90 390 90 22835} 22836do_execsql_test joinD-789 { 22837 SELECT t1.*, t2.*, t3.*, t4.* 22838 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 22839 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22840 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22841 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22842} { 22843 6 106 206 306 106 6 206 6 - - 22844 12 112 212 312 112 12 212 12 - - 22845 18 118 218 318 118 18 218 18 - - 22846 24 124 224 324 124 24 224 24 - - 22847 30 130 230 330 130 30 230 30 330 30 22848 36 136 236 336 136 36 236 36 - - 22849 42 142 242 342 142 42 242 42 - - 22850 48 148 248 348 148 48 248 48 - - 22851 54 154 254 354 154 54 254 54 - - 22852 60 160 260 360 160 60 260 60 360 60 22853 66 166 266 366 166 66 266 66 - - 22854 72 172 272 372 172 72 272 72 - - 22855 78 178 278 378 178 78 278 78 - - 22856 84 184 284 384 184 84 284 84 - - 22857 90 190 290 390 190 90 290 90 390 90 22858 - - - - - - 200 0 - - 22859 - - - - - - 203 3 - - 22860 - - - - - - 209 9 - - 22861 - - - - - - 215 15 - - 22862 - - - - - - 221 21 - - 22863 - - - - - - 227 27 - - 22864 - - - - - - 233 33 - - 22865 - - - - - - 239 39 - - 22866 - - - - - - 245 45 - - 22867 - - - - - - 251 51 - - 22868 - - - - - - 257 57 - - 22869 - - - - - - 263 63 - - 22870 - - - - - - 269 69 - - 22871 - - - - - - 275 75 - - 22872 - - - - - - 281 81 - - 22873 - - - - - - 287 87 - - 22874 - - - - - - 293 93 - - 22875} 22876do_execsql_test joinD-790 { 22877 SELECT t1.*, t2.*, t3.*, t4.* 22878 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22879 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 22880 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 22881 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22882} { 22883 6 106 206 306 106 6 206 6 - - 22884 12 112 212 312 112 12 212 12 - - 22885 18 118 218 318 118 18 218 18 - - 22886 24 124 224 324 124 24 224 24 - - 22887 30 130 230 330 130 30 230 30 330 30 22888 36 136 236 336 136 36 236 36 - - 22889 42 142 242 342 142 42 242 42 - - 22890 48 148 248 348 148 48 248 48 - - 22891 54 154 254 354 154 54 254 54 - - 22892 60 160 260 360 160 60 260 60 360 60 22893 66 166 266 366 166 66 266 66 - - 22894 72 172 272 372 172 72 272 72 - - 22895 78 178 278 378 178 78 278 78 - - 22896 84 184 284 384 184 84 284 84 - - 22897 90 190 290 390 190 90 290 90 390 90 22898 - - - - - - 200 0 - - 22899 - - - - - - 203 3 - - 22900 - - - - - - 209 9 - - 22901 - - - - - - 215 15 - - 22902 - - - - - - 221 21 - - 22903 - - - - - - 227 27 - - 22904 - - - - - - 233 33 - - 22905 - - - - - - 239 39 - - 22906 - - - - - - 245 45 - - 22907 - - - - - - 251 51 - - 22908 - - - - - - 257 57 - - 22909 - - - - - - 263 63 - - 22910 - - - - - - 269 69 - - 22911 - - - - - - 275 75 - - 22912 - - - - - - 281 81 - - 22913 - - - - - - 287 87 - - 22914 - - - - - - 293 93 - - 22915} 22916do_execsql_test joinD-791 { 22917 SELECT t1.*, t2.*, t3.*, t4.* 22918 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 22919 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22920 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 22921 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22922} { 22923 30 130 230 330 130 30 230 30 330 30 22924 60 160 260 360 160 60 260 60 360 60 22925 90 190 290 390 190 90 290 90 390 90 22926 - - - - - - - - 300 0 22927 - - - - - - - - 305 5 22928 - - - - - - - - 310 10 22929 - - - - - - - - 315 15 22930 - - - - - - - - 320 20 22931 - - - - - - - - 325 25 22932 - - - - - - - - 335 35 22933 - - - - - - - - 340 40 22934 - - - - - - - - 345 45 22935 - - - - - - - - 350 50 22936 - - - - - - - - 355 55 22937 - - - - - - - - 365 65 22938 - - - - - - - - 370 70 22939 - - - - - - - - 375 75 22940 - - - - - - - - 380 80 22941 - - - - - - - - 385 85 22942 - - - - - - - - 395 95 22943} 22944do_execsql_test joinD-792 { 22945 SELECT t1.*, t2.*, t3.*, t4.* 22946 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 22947 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22948 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 22949 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22950} { 22951 30 130 230 330 130 30 230 30 330 30 22952 60 160 260 360 160 60 260 60 360 60 22953 90 190 290 390 190 90 290 90 390 90 22954 - - - - - - - - 300 0 22955 - - - - - - - - 305 5 22956 - - - - - - - - 310 10 22957 - - - - - - - - 315 15 22958 - - - - - - - - 320 20 22959 - - - - - - - - 325 25 22960 - - - - - - - - 335 35 22961 - - - - - - - - 340 40 22962 - - - - - - - - 345 45 22963 - - - - - - - - 350 50 22964 - - - - - - - - 355 55 22965 - - - - - - - - 365 65 22966 - - - - - - - - 370 70 22967 - - - - - - - - 375 75 22968 - - - - - - - - 380 80 22969 - - - - - - - - 385 85 22970 - - - - - - - - 395 95 22971} 22972do_execsql_test joinD-793 { 22973 SELECT t1.*, t2.*, t3.*, t4.* 22974 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22975 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22976 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 22977 WHERE t2.x>0 22978 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22979} { 22980 30 130 230 330 130 30 230 30 330 30 22981 60 160 260 360 160 60 260 60 360 60 22982 90 190 290 390 190 90 290 90 390 90 22983} 22984do_execsql_test joinD-794 { 22985 SELECT t1.*, t2.*, t3.*, t4.* 22986 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 22987 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 22988 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 22989 WHERE (t2.x>0 OR t2.x IS NULL) 22990 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 22991} { 22992 30 130 230 330 130 30 230 30 330 30 22993 60 160 260 360 160 60 260 60 360 60 22994 90 190 290 390 190 90 290 90 390 90 22995 - - - - - - - - 300 0 22996 - - - - - - - - 305 5 22997 - - - - - - - - 310 10 22998 - - - - - - - - 315 15 22999 - - - - - - - - 320 20 23000 - - - - - - - - 325 25 23001 - - - - - - - - 335 35 23002 - - - - - - - - 340 40 23003 - - - - - - - - 345 45 23004 - - - - - - - - 350 50 23005 - - - - - - - - 355 55 23006 - - - - - - - - 365 65 23007 - - - - - - - - 370 70 23008 - - - - - - - - 375 75 23009 - - - - - - - - 380 80 23010 - - - - - - - - 385 85 23011 - - - - - - - - 395 95 23012} 23013do_execsql_test joinD-795 { 23014 SELECT t1.*, t2.*, t3.*, t4.* 23015 FROM t1 RIGHT JOIN t2 ON true 23016 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23017 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 23018 WHERE t1.b=t2.b AND t2.x>0 23019 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23020} { 23021 30 130 230 330 130 30 230 30 330 30 23022 60 160 260 360 160 60 260 60 360 60 23023 90 190 290 390 190 90 290 90 390 90 23024} 23025do_execsql_test joinD-796 { 23026 SELECT t1.*, t2.*, t3.*, t4.* 23027 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23028 RIGHT JOIN t3 ON t1.c=t3.c 23029 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 23030 WHERE t3.y>0 23031 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23032} { 23033 30 130 230 330 130 30 230 30 330 30 23034 60 160 260 360 160 60 260 60 360 60 23035 90 190 290 390 190 90 290 90 390 90 23036} 23037do_execsql_test joinD-797 { 23038 SELECT t1.*, t2.*, t3.*, t4.* 23039 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23040 RIGHT JOIN t3 ON t1.c=t3.c 23041 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 23042 WHERE t3.y>0 OR t3.y IS NULL 23043 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23044} { 23045 30 130 230 330 130 30 230 30 330 30 23046 60 160 260 360 160 60 260 60 360 60 23047 90 190 290 390 190 90 290 90 390 90 23048 - - - - - - - - 300 0 23049 - - - - - - - - 305 5 23050 - - - - - - - - 310 10 23051 - - - - - - - - 315 15 23052 - - - - - - - - 320 20 23053 - - - - - - - - 325 25 23054 - - - - - - - - 335 35 23055 - - - - - - - - 340 40 23056 - - - - - - - - 345 45 23057 - - - - - - - - 350 50 23058 - - - - - - - - 355 55 23059 - - - - - - - - 365 65 23060 - - - - - - - - 370 70 23061 - - - - - - - - 375 75 23062 - - - - - - - - 380 80 23063 - - - - - - - - 385 85 23064 - - - - - - - - 395 95 23065} 23066do_execsql_test joinD-798 { 23067 SELECT t1.*, t2.*, t3.*, t4.* 23068 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23069 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23070 RIGHT JOIN t4 ON t1.d=t4.d 23071 WHERE t4.z>0 23072 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23073} { 23074 30 130 230 330 130 30 230 30 330 30 23075 60 160 260 360 160 60 260 60 360 60 23076 90 190 290 390 190 90 290 90 390 90 23077 - - - - - - - - 305 5 23078 - - - - - - - - 310 10 23079 - - - - - - - - 315 15 23080 - - - - - - - - 320 20 23081 - - - - - - - - 325 25 23082 - - - - - - - - 335 35 23083 - - - - - - - - 340 40 23084 - - - - - - - - 345 45 23085 - - - - - - - - 350 50 23086 - - - - - - - - 355 55 23087 - - - - - - - - 365 65 23088 - - - - - - - - 370 70 23089 - - - - - - - - 375 75 23090 - - - - - - - - 380 80 23091 - - - - - - - - 385 85 23092 - - - - - - - - 395 95 23093} 23094do_execsql_test joinD-799 { 23095 SELECT t1.*, t2.*, t3.*, t4.* 23096 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23097 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23098 RIGHT JOIN t4 ON t1.d=t4.d 23099 WHERE t4.z IS NULL OR t4.z>0 23100 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23101} { 23102 30 130 230 330 130 30 230 30 330 30 23103 60 160 260 360 160 60 260 60 360 60 23104 90 190 290 390 190 90 290 90 390 90 23105 - - - - - - - - 305 5 23106 - - - - - - - - 310 10 23107 - - - - - - - - 315 15 23108 - - - - - - - - 320 20 23109 - - - - - - - - 325 25 23110 - - - - - - - - 335 35 23111 - - - - - - - - 340 40 23112 - - - - - - - - 345 45 23113 - - - - - - - - 350 50 23114 - - - - - - - - 355 55 23115 - - - - - - - - 365 65 23116 - - - - - - - - 370 70 23117 - - - - - - - - 375 75 23118 - - - - - - - - 380 80 23119 - - - - - - - - 385 85 23120 - - - - - - - - 395 95 23121} 23122do_execsql_test joinD-800 { 23123 SELECT t1.*, t2.*, t3.*, t4.* 23124 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 23125 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23126 RIGHT JOIN t4 ON t1.d=t4.d 23127 WHERE t2.x>0 AND t4.z>0 23128 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23129} { 23130 30 130 230 330 130 30 230 30 330 30 23131 60 160 260 360 160 60 260 60 360 60 23132 90 190 290 390 190 90 290 90 390 90 23133} 23134do_execsql_test joinD-801 { 23135 SELECT t1.*, t2.*, t3.*, t4.* 23136 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23137 RIGHT JOIN t3 ON t1.c=t3.c 23138 RIGHT JOIN t4 ON t1.d=t4.d 23139 WHERE t4.z>0 AND t3.y>0 23140 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23141} { 23142 30 130 230 330 130 30 230 30 330 30 23143 60 160 260 360 160 60 260 60 360 60 23144 90 190 290 390 190 90 290 90 390 90 23145} 23146do_execsql_test joinD-802 { 23147 SELECT t1.*, t2.*, t3.*, t4.* 23148 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 23149 RIGHT JOIN t3 ON t1.c=t3.c 23150 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 23151 WHERE t2.x>0 AND t3.y>0 23152 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23153} { 23154 30 130 230 330 130 30 230 30 330 30 23155 60 160 260 360 160 60 260 60 360 60 23156 90 190 290 390 190 90 290 90 390 90 23157} 23158do_execsql_test joinD-803 { 23159 SELECT t1.*, t2.*, t3.*, t4.* 23160 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 23161 RIGHT JOIN t3 ON t1.c=t3.c 23162 RIGHT JOIN t4 ON t1.d=t4.d 23163 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 23164 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23165} { 23166 30 130 230 330 130 30 230 30 330 30 23167 60 160 260 360 160 60 260 60 360 60 23168 90 190 290 390 190 90 290 90 390 90 23169} 23170do_execsql_test joinD-804 { 23171 SELECT t1.*, t2.*, t3.*, t4.* 23172 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 23173 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 23174 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 23175 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23176} { 23177 30 130 230 330 130 30 230 30 330 30 23178 60 160 260 360 160 60 260 60 360 60 23179 90 190 290 390 190 90 290 90 390 90 23180 - - - - - - - - 300 0 23181 - - - - - - - - 305 5 23182 - - - - - - - - 310 10 23183 - - - - - - - - 315 15 23184 - - - - - - - - 320 20 23185 - - - - - - - - 325 25 23186 - - - - - - - - 335 35 23187 - - - - - - - - 340 40 23188 - - - - - - - - 345 45 23189 - - - - - - - - 350 50 23190 - - - - - - - - 355 55 23191 - - - - - - - - 365 65 23192 - - - - - - - - 370 70 23193 - - - - - - - - 375 75 23194 - - - - - - - - 380 80 23195 - - - - - - - - 385 85 23196 - - - - - - - - 395 95 23197} 23198do_execsql_test joinD-805 { 23199 SELECT t1.*, t2.*, t3.*, t4.* 23200 FROM t1 RIGHT JOIN t2 ON t2.x>0 23201 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 23202 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 23203 WHERE t1.b IS NOT DISTINCT FROM t2.b 23204 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23205} { 23206 30 130 230 330 130 30 230 30 330 30 23207 60 160 260 360 160 60 260 60 360 60 23208 90 190 290 390 190 90 290 90 390 90 23209 - - - - - - - - 300 0 23210 - - - - - - - - 305 5 23211 - - - - - - - - 310 10 23212 - - - - - - - - 320 20 23213 - - - - - - - - 325 25 23214 - - - - - - - - 335 35 23215 - - - - - - - - 340 40 23216 - - - - - - - - 350 50 23217 - - - - - - - - 355 55 23218 - - - - - - - - 365 65 23219 - - - - - - - - 370 70 23220 - - - - - - - - 380 80 23221 - - - - - - - - 385 85 23222 - - - - - - - - 395 95 23223} 23224do_execsql_test joinD-806 { 23225 SELECT t1.*, t2.*, t3.*, t4.* 23226 FROM t1 RIGHT JOIN t2 ON t2.x>0 23227 RIGHT JOIN t3 ON t3.y>0 23228 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 23229 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 23230 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23231} { 23232 30 130 230 330 130 30 230 30 330 30 23233 60 160 260 360 160 60 260 60 360 60 23234 90 190 290 390 190 90 290 90 390 90 23235 - - - - - - - - 300 0 23236} 23237do_execsql_test joinD-807 { 23238 SELECT t1.*, t2.*, t3.*, t4.* 23239 FROM t1 RIGHT JOIN t2 ON t2.x>0 23240 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 23241 RIGHT JOIN t4 ON t4.z>0 23242 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 23243 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23244} { 23245 30 130 230 330 130 30 230 30 330 30 23246 60 160 260 360 160 60 260 60 360 60 23247 90 190 290 390 190 90 290 90 390 90 23248} 23249do_execsql_test joinD-808 { 23250 SELECT t1.*, t2.*, t3.*, t4.* 23251 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 23252 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23253 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 23254 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23255} { 23256 30 130 230 330 130 30 230 30 330 30 23257 60 160 260 360 160 60 260 60 360 60 23258 90 190 290 390 190 90 290 90 390 90 23259 - - - - - - - - 300 0 23260 - - - - - - - - 305 5 23261 - - - - - - - - 310 10 23262 - - - - - - - - 315 15 23263 - - - - - - - - 320 20 23264 - - - - - - - - 325 25 23265 - - - - - - - - 335 35 23266 - - - - - - - - 340 40 23267 - - - - - - - - 345 45 23268 - - - - - - - - 350 50 23269 - - - - - - - - 355 55 23270 - - - - - - - - 365 65 23271 - - - - - - - - 370 70 23272 - - - - - - - - 375 75 23273 - - - - - - - - 380 80 23274 - - - - - - - - 385 85 23275 - - - - - - - - 395 95 23276} 23277do_execsql_test joinD-809 { 23278 SELECT t1.*, t2.*, t3.*, t4.* 23279 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23280 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 23281 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 23282 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23283} { 23284 30 130 230 330 130 30 230 30 330 30 23285 60 160 260 360 160 60 260 60 360 60 23286 90 190 290 390 190 90 290 90 390 90 23287 - - - - - - - - 300 0 23288 - - - - - - - - 305 5 23289 - - - - - - - - 310 10 23290 - - - - - - - - 315 15 23291 - - - - - - - - 320 20 23292 - - - - - - - - 325 25 23293 - - - - - - - - 335 35 23294 - - - - - - - - 340 40 23295 - - - - - - - - 345 45 23296 - - - - - - - - 350 50 23297 - - - - - - - - 355 55 23298 - - - - - - - - 365 65 23299 - - - - - - - - 370 70 23300 - - - - - - - - 375 75 23301 - - - - - - - - 380 80 23302 - - - - - - - - 385 85 23303 - - - - - - - - 395 95 23304} 23305do_execsql_test joinD-810 { 23306 SELECT t1.*, t2.*, t3.*, t4.* 23307 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23308 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23309 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23310 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23311} { 23312 6 106 206 306 106 6 206 6 - - 23313 12 112 212 312 112 12 212 12 - - 23314 18 118 218 318 118 18 218 18 - - 23315 24 124 224 324 124 24 224 24 - - 23316 30 130 230 330 130 30 230 30 330 30 23317 36 136 236 336 136 36 236 36 - - 23318 42 142 242 342 142 42 242 42 - - 23319 48 148 248 348 148 48 248 48 - - 23320 54 154 254 354 154 54 254 54 - - 23321 60 160 260 360 160 60 260 60 360 60 23322 66 166 266 366 166 66 266 66 - - 23323 72 172 272 372 172 72 272 72 - - 23324 78 178 278 378 178 78 278 78 - - 23325 84 184 284 384 184 84 284 84 - - 23326 90 190 290 390 190 90 290 90 390 90 23327 - - - - - - 200 0 - - 23328 - - - - - - 203 3 - - 23329 - - - - - - 209 9 - - 23330 - - - - - - 215 15 - - 23331 - - - - - - 221 21 - - 23332 - - - - - - 227 27 - - 23333 - - - - - - 233 33 - - 23334 - - - - - - 239 39 - - 23335 - - - - - - 245 45 - - 23336 - - - - - - 251 51 - - 23337 - - - - - - 257 57 - - 23338 - - - - - - 263 63 - - 23339 - - - - - - 269 69 - - 23340 - - - - - - 275 75 - - 23341 - - - - - - 281 81 - - 23342 - - - - - - 287 87 - - 23343 - - - - - - 293 93 - - 23344 - - - - - - - - 300 0 23345 - - - - - - - - 305 5 23346 - - - - - - - - 310 10 23347 - - - - - - - - 315 15 23348 - - - - - - - - 320 20 23349 - - - - - - - - 325 25 23350 - - - - - - - - 335 35 23351 - - - - - - - - 340 40 23352 - - - - - - - - 345 45 23353 - - - - - - - - 350 50 23354 - - - - - - - - 355 55 23355 - - - - - - - - 365 65 23356 - - - - - - - - 370 70 23357 - - - - - - - - 375 75 23358 - - - - - - - - 380 80 23359 - - - - - - - - 385 85 23360 - - - - - - - - 395 95 23361} 23362do_execsql_test joinD-811 { 23363 SELECT t1.*, t2.*, t3.*, t4.* 23364 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 23365 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23366 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23367 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23368} { 23369 6 106 206 306 106 6 206 6 - - 23370 12 112 212 312 112 12 212 12 - - 23371 18 118 218 318 118 18 218 18 - - 23372 24 124 224 324 124 24 224 24 - - 23373 30 130 230 330 130 30 230 30 330 30 23374 36 136 236 336 136 36 236 36 - - 23375 42 142 242 342 142 42 242 42 - - 23376 48 148 248 348 148 48 248 48 - - 23377 54 154 254 354 154 54 254 54 - - 23378 60 160 260 360 160 60 260 60 360 60 23379 66 166 266 366 166 66 266 66 - - 23380 72 172 272 372 172 72 272 72 - - 23381 78 178 278 378 178 78 278 78 - - 23382 84 184 284 384 184 84 284 84 - - 23383 90 190 290 390 190 90 290 90 390 90 23384 - - - - - - 200 0 - - 23385 - - - - - - 203 3 - - 23386 - - - - - - 209 9 - - 23387 - - - - - - 215 15 - - 23388 - - - - - - 221 21 - - 23389 - - - - - - 227 27 - - 23390 - - - - - - 233 33 - - 23391 - - - - - - 239 39 - - 23392 - - - - - - 245 45 - - 23393 - - - - - - 251 51 - - 23394 - - - - - - 257 57 - - 23395 - - - - - - 263 63 - - 23396 - - - - - - 269 69 - - 23397 - - - - - - 275 75 - - 23398 - - - - - - 281 81 - - 23399 - - - - - - 287 87 - - 23400 - - - - - - 293 93 - - 23401 - - - - - - - - 300 0 23402 - - - - - - - - 305 5 23403 - - - - - - - - 310 10 23404 - - - - - - - - 315 15 23405 - - - - - - - - 320 20 23406 - - - - - - - - 325 25 23407 - - - - - - - - 335 35 23408 - - - - - - - - 340 40 23409 - - - - - - - - 345 45 23410 - - - - - - - - 350 50 23411 - - - - - - - - 355 55 23412 - - - - - - - - 365 65 23413 - - - - - - - - 370 70 23414 - - - - - - - - 375 75 23415 - - - - - - - - 380 80 23416 - - - - - - - - 385 85 23417 - - - - - - - - 395 95 23418} 23419do_execsql_test joinD-812 { 23420 SELECT t1.*, t2.*, t3.*, t4.* 23421 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 23422 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23423 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23424 WHERE t2.x>0 23425 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23426} { 23427 6 106 206 306 106 6 206 6 - - 23428 12 112 212 312 112 12 212 12 - - 23429 18 118 218 318 118 18 218 18 - - 23430 24 124 224 324 124 24 224 24 - - 23431 30 130 230 330 130 30 230 30 330 30 23432 36 136 236 336 136 36 236 36 - - 23433 42 142 242 342 142 42 242 42 - - 23434 48 148 248 348 148 48 248 48 - - 23435 54 154 254 354 154 54 254 54 - - 23436 60 160 260 360 160 60 260 60 360 60 23437 66 166 266 366 166 66 266 66 - - 23438 72 172 272 372 172 72 272 72 - - 23439 78 178 278 378 178 78 278 78 - - 23440 84 184 284 384 184 84 284 84 - - 23441 90 190 290 390 190 90 290 90 390 90 23442} 23443do_execsql_test joinD-813 { 23444 SELECT t1.*, t2.*, t3.*, t4.* 23445 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 23446 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23447 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23448 WHERE (t2.x>0 OR t2.x IS NULL) 23449 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23450} { 23451 6 106 206 306 106 6 206 6 - - 23452 12 112 212 312 112 12 212 12 - - 23453 18 118 218 318 118 18 218 18 - - 23454 24 124 224 324 124 24 224 24 - - 23455 30 130 230 330 130 30 230 30 330 30 23456 36 136 236 336 136 36 236 36 - - 23457 42 142 242 342 142 42 242 42 - - 23458 48 148 248 348 148 48 248 48 - - 23459 54 154 254 354 154 54 254 54 - - 23460 60 160 260 360 160 60 260 60 360 60 23461 66 166 266 366 166 66 266 66 - - 23462 72 172 272 372 172 72 272 72 - - 23463 78 178 278 378 178 78 278 78 - - 23464 84 184 284 384 184 84 284 84 - - 23465 90 190 290 390 190 90 290 90 390 90 23466 - - - - - - 200 0 - - 23467 - - - - - - 203 3 - - 23468 - - - - - - 209 9 - - 23469 - - - - - - 215 15 - - 23470 - - - - - - 221 21 - - 23471 - - - - - - 227 27 - - 23472 - - - - - - 233 33 - - 23473 - - - - - - 239 39 - - 23474 - - - - - - 245 45 - - 23475 - - - - - - 251 51 - - 23476 - - - - - - 257 57 - - 23477 - - - - - - 263 63 - - 23478 - - - - - - 269 69 - - 23479 - - - - - - 275 75 - - 23480 - - - - - - 281 81 - - 23481 - - - - - - 287 87 - - 23482 - - - - - - 293 93 - - 23483 - - - - - - - - 300 0 23484 - - - - - - - - 305 5 23485 - - - - - - - - 310 10 23486 - - - - - - - - 315 15 23487 - - - - - - - - 320 20 23488 - - - - - - - - 325 25 23489 - - - - - - - - 335 35 23490 - - - - - - - - 340 40 23491 - - - - - - - - 345 45 23492 - - - - - - - - 350 50 23493 - - - - - - - - 355 55 23494 - - - - - - - - 365 65 23495 - - - - - - - - 370 70 23496 - - - - - - - - 375 75 23497 - - - - - - - - 380 80 23498 - - - - - - - - 385 85 23499 - - - - - - - - 395 95 23500} 23501do_execsql_test joinD-814 { 23502 SELECT t1.*, t2.*, t3.*, t4.* 23503 FROM t1 RIGHT JOIN t2 ON true 23504 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23505 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23506 WHERE t1.b=t2.b AND t2.x>0 23507 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23508} { 23509 6 106 206 306 106 6 206 6 - - 23510 12 112 212 312 112 12 212 12 - - 23511 18 118 218 318 118 18 218 18 - - 23512 24 124 224 324 124 24 224 24 - - 23513 30 130 230 330 130 30 230 30 330 30 23514 36 136 236 336 136 36 236 36 - - 23515 42 142 242 342 142 42 242 42 - - 23516 48 148 248 348 148 48 248 48 - - 23517 54 154 254 354 154 54 254 54 - - 23518 60 160 260 360 160 60 260 60 360 60 23519 66 166 266 366 166 66 266 66 - - 23520 72 172 272 372 172 72 272 72 - - 23521 78 178 278 378 178 78 278 78 - - 23522 84 184 284 384 184 84 284 84 - - 23523 90 190 290 390 190 90 290 90 390 90 23524} 23525do_execsql_test joinD-815 { 23526 SELECT t1.*, t2.*, t3.*, t4.* 23527 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23528 RIGHT JOIN t3 ON t1.c=t3.c 23529 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23530 WHERE t3.y>0 23531 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23532} { 23533 6 106 206 306 106 6 206 6 - - 23534 12 112 212 312 112 12 212 12 - - 23535 18 118 218 318 118 18 218 18 - - 23536 24 124 224 324 124 24 224 24 - - 23537 30 130 230 330 130 30 230 30 330 30 23538 36 136 236 336 136 36 236 36 - - 23539 42 142 242 342 142 42 242 42 - - 23540 48 148 248 348 148 48 248 48 - - 23541 54 154 254 354 154 54 254 54 - - 23542 60 160 260 360 160 60 260 60 360 60 23543 66 166 266 366 166 66 266 66 - - 23544 72 172 272 372 172 72 272 72 - - 23545 78 178 278 378 178 78 278 78 - - 23546 84 184 284 384 184 84 284 84 - - 23547 90 190 290 390 190 90 290 90 390 90 23548 - - - - - - 203 3 - - 23549 - - - - - - 209 9 - - 23550 - - - - - - 215 15 - - 23551 - - - - - - 221 21 - - 23552 - - - - - - 227 27 - - 23553 - - - - - - 233 33 - - 23554 - - - - - - 239 39 - - 23555 - - - - - - 245 45 - - 23556 - - - - - - 251 51 - - 23557 - - - - - - 257 57 - - 23558 - - - - - - 263 63 - - 23559 - - - - - - 269 69 - - 23560 - - - - - - 275 75 - - 23561 - - - - - - 281 81 - - 23562 - - - - - - 287 87 - - 23563 - - - - - - 293 93 - - 23564} 23565do_execsql_test joinD-816 { 23566 SELECT t1.*, t2.*, t3.*, t4.* 23567 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23568 RIGHT JOIN t3 ON t1.c=t3.c 23569 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23570 WHERE t3.y>0 OR t3.y IS NULL 23571 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23572} { 23573 6 106 206 306 106 6 206 6 - - 23574 12 112 212 312 112 12 212 12 - - 23575 18 118 218 318 118 18 218 18 - - 23576 24 124 224 324 124 24 224 24 - - 23577 30 130 230 330 130 30 230 30 330 30 23578 36 136 236 336 136 36 236 36 - - 23579 42 142 242 342 142 42 242 42 - - 23580 48 148 248 348 148 48 248 48 - - 23581 54 154 254 354 154 54 254 54 - - 23582 60 160 260 360 160 60 260 60 360 60 23583 66 166 266 366 166 66 266 66 - - 23584 72 172 272 372 172 72 272 72 - - 23585 78 178 278 378 178 78 278 78 - - 23586 84 184 284 384 184 84 284 84 - - 23587 90 190 290 390 190 90 290 90 390 90 23588 - - - - - - 203 3 - - 23589 - - - - - - 209 9 - - 23590 - - - - - - 215 15 - - 23591 - - - - - - 221 21 - - 23592 - - - - - - 227 27 - - 23593 - - - - - - 233 33 - - 23594 - - - - - - 239 39 - - 23595 - - - - - - 245 45 - - 23596 - - - - - - 251 51 - - 23597 - - - - - - 257 57 - - 23598 - - - - - - 263 63 - - 23599 - - - - - - 269 69 - - 23600 - - - - - - 275 75 - - 23601 - - - - - - 281 81 - - 23602 - - - - - - 287 87 - - 23603 - - - - - - 293 93 - - 23604 - - - - - - - - 300 0 23605 - - - - - - - - 305 5 23606 - - - - - - - - 310 10 23607 - - - - - - - - 315 15 23608 - - - - - - - - 320 20 23609 - - - - - - - - 325 25 23610 - - - - - - - - 335 35 23611 - - - - - - - - 340 40 23612 - - - - - - - - 345 45 23613 - - - - - - - - 350 50 23614 - - - - - - - - 355 55 23615 - - - - - - - - 365 65 23616 - - - - - - - - 370 70 23617 - - - - - - - - 375 75 23618 - - - - - - - - 380 80 23619 - - - - - - - - 385 85 23620 - - - - - - - - 395 95 23621} 23622do_execsql_test joinD-817 { 23623 SELECT t1.*, t2.*, t3.*, t4.* 23624 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23625 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23626 FULL JOIN t4 ON t1.d=t4.d 23627 WHERE t4.z>0 23628 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23629} { 23630 30 130 230 330 130 30 230 30 330 30 23631 60 160 260 360 160 60 260 60 360 60 23632 90 190 290 390 190 90 290 90 390 90 23633 - - - - - - - - 305 5 23634 - - - - - - - - 310 10 23635 - - - - - - - - 315 15 23636 - - - - - - - - 320 20 23637 - - - - - - - - 325 25 23638 - - - - - - - - 335 35 23639 - - - - - - - - 340 40 23640 - - - - - - - - 345 45 23641 - - - - - - - - 350 50 23642 - - - - - - - - 355 55 23643 - - - - - - - - 365 65 23644 - - - - - - - - 370 70 23645 - - - - - - - - 375 75 23646 - - - - - - - - 380 80 23647 - - - - - - - - 385 85 23648 - - - - - - - - 395 95 23649} 23650do_execsql_test joinD-818 { 23651 SELECT t1.*, t2.*, t3.*, t4.* 23652 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23653 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23654 FULL JOIN t4 ON t1.d=t4.d 23655 WHERE t4.z IS NULL OR t4.z>0 23656 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23657} { 23658 6 106 206 306 106 6 206 6 - - 23659 12 112 212 312 112 12 212 12 - - 23660 18 118 218 318 118 18 218 18 - - 23661 24 124 224 324 124 24 224 24 - - 23662 30 130 230 330 130 30 230 30 330 30 23663 36 136 236 336 136 36 236 36 - - 23664 42 142 242 342 142 42 242 42 - - 23665 48 148 248 348 148 48 248 48 - - 23666 54 154 254 354 154 54 254 54 - - 23667 60 160 260 360 160 60 260 60 360 60 23668 66 166 266 366 166 66 266 66 - - 23669 72 172 272 372 172 72 272 72 - - 23670 78 178 278 378 178 78 278 78 - - 23671 84 184 284 384 184 84 284 84 - - 23672 90 190 290 390 190 90 290 90 390 90 23673 - - - - - - 200 0 - - 23674 - - - - - - 203 3 - - 23675 - - - - - - 209 9 - - 23676 - - - - - - 215 15 - - 23677 - - - - - - 221 21 - - 23678 - - - - - - 227 27 - - 23679 - - - - - - 233 33 - - 23680 - - - - - - 239 39 - - 23681 - - - - - - 245 45 - - 23682 - - - - - - 251 51 - - 23683 - - - - - - 257 57 - - 23684 - - - - - - 263 63 - - 23685 - - - - - - 269 69 - - 23686 - - - - - - 275 75 - - 23687 - - - - - - 281 81 - - 23688 - - - - - - 287 87 - - 23689 - - - - - - 293 93 - - 23690 - - - - - - - - 305 5 23691 - - - - - - - - 310 10 23692 - - - - - - - - 315 15 23693 - - - - - - - - 320 20 23694 - - - - - - - - 325 25 23695 - - - - - - - - 335 35 23696 - - - - - - - - 340 40 23697 - - - - - - - - 345 45 23698 - - - - - - - - 350 50 23699 - - - - - - - - 355 55 23700 - - - - - - - - 365 65 23701 - - - - - - - - 370 70 23702 - - - - - - - - 375 75 23703 - - - - - - - - 380 80 23704 - - - - - - - - 385 85 23705 - - - - - - - - 395 95 23706} 23707do_execsql_test joinD-819 { 23708 SELECT t1.*, t2.*, t3.*, t4.* 23709 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 23710 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23711 FULL JOIN t4 ON t1.d=t4.d 23712 WHERE t2.x>0 AND t4.z>0 23713 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23714} { 23715 30 130 230 330 130 30 230 30 330 30 23716 60 160 260 360 160 60 260 60 360 60 23717 90 190 290 390 190 90 290 90 390 90 23718} 23719do_execsql_test joinD-820 { 23720 SELECT t1.*, t2.*, t3.*, t4.* 23721 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23722 RIGHT JOIN t3 ON t1.c=t3.c 23723 FULL JOIN t4 ON t1.d=t4.d 23724 WHERE t4.z>0 AND t3.y>0 23725 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23726} { 23727 30 130 230 330 130 30 230 30 330 30 23728 60 160 260 360 160 60 260 60 360 60 23729 90 190 290 390 190 90 290 90 390 90 23730} 23731do_execsql_test joinD-821 { 23732 SELECT t1.*, t2.*, t3.*, t4.* 23733 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 23734 RIGHT JOIN t3 ON t1.c=t3.c 23735 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23736 WHERE t2.x>0 AND t3.y>0 23737 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23738} { 23739 6 106 206 306 106 6 206 6 - - 23740 12 112 212 312 112 12 212 12 - - 23741 18 118 218 318 118 18 218 18 - - 23742 24 124 224 324 124 24 224 24 - - 23743 30 130 230 330 130 30 230 30 330 30 23744 36 136 236 336 136 36 236 36 - - 23745 42 142 242 342 142 42 242 42 - - 23746 48 148 248 348 148 48 248 48 - - 23747 54 154 254 354 154 54 254 54 - - 23748 60 160 260 360 160 60 260 60 360 60 23749 66 166 266 366 166 66 266 66 - - 23750 72 172 272 372 172 72 272 72 - - 23751 78 178 278 378 178 78 278 78 - - 23752 84 184 284 384 184 84 284 84 - - 23753 90 190 290 390 190 90 290 90 390 90 23754} 23755do_execsql_test joinD-822 { 23756 SELECT t1.*, t2.*, t3.*, t4.* 23757 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 23758 RIGHT JOIN t3 ON t1.c=t3.c 23759 FULL JOIN t4 ON t1.d=t4.d 23760 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 23761 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23762} { 23763 30 130 230 330 130 30 230 30 330 30 23764 60 160 260 360 160 60 260 60 360 60 23765 90 190 290 390 190 90 290 90 390 90 23766} 23767do_execsql_test joinD-823 { 23768 SELECT t1.*, t2.*, t3.*, t4.* 23769 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 23770 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 23771 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 23772 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23773} { 23774 6 106 206 306 106 6 206 6 - - 23775 12 112 212 312 112 12 212 12 - - 23776 18 118 218 318 118 18 218 18 - - 23777 24 124 224 324 124 24 224 24 - - 23778 30 130 230 330 130 30 230 30 330 30 23779 36 136 236 336 136 36 236 36 - - 23780 42 142 242 342 142 42 242 42 - - 23781 48 148 248 348 148 48 248 48 - - 23782 54 154 254 354 154 54 254 54 - - 23783 60 160 260 360 160 60 260 60 360 60 23784 66 166 266 366 166 66 266 66 - - 23785 72 172 272 372 172 72 272 72 - - 23786 78 178 278 378 178 78 278 78 - - 23787 84 184 284 384 184 84 284 84 - - 23788 90 190 290 390 190 90 290 90 390 90 23789 - - - - - - 200 0 - - 23790 - - - - - - 203 3 - - 23791 - - - - - - 209 9 - - 23792 - - - - - - 215 15 - - 23793 - - - - - - 221 21 - - 23794 - - - - - - 227 27 - - 23795 - - - - - - 233 33 - - 23796 - - - - - - 239 39 - - 23797 - - - - - - 245 45 - - 23798 - - - - - - 251 51 - - 23799 - - - - - - 257 57 - - 23800 - - - - - - 263 63 - - 23801 - - - - - - 269 69 - - 23802 - - - - - - 275 75 - - 23803 - - - - - - 281 81 - - 23804 - - - - - - 287 87 - - 23805 - - - - - - 293 93 - - 23806 - - - - - - - - 300 0 23807 - - - - - - - - 305 5 23808 - - - - - - - - 310 10 23809 - - - - - - - - 315 15 23810 - - - - - - - - 320 20 23811 - - - - - - - - 325 25 23812 - - - - - - - - 335 35 23813 - - - - - - - - 340 40 23814 - - - - - - - - 345 45 23815 - - - - - - - - 350 50 23816 - - - - - - - - 355 55 23817 - - - - - - - - 365 65 23818 - - - - - - - - 370 70 23819 - - - - - - - - 375 75 23820 - - - - - - - - 380 80 23821 - - - - - - - - 385 85 23822 - - - - - - - - 395 95 23823} 23824do_execsql_test joinD-824 { 23825 SELECT t1.*, t2.*, t3.*, t4.* 23826 FROM t1 RIGHT JOIN t2 ON t2.x>0 23827 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 23828 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 23829 WHERE t1.b IS NOT DISTINCT FROM t2.b 23830 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23831} { 23832 6 106 206 306 106 6 206 6 - - 23833 12 112 212 312 112 12 212 12 - - 23834 18 118 218 318 118 18 218 18 - - 23835 24 124 224 324 124 24 224 24 - - 23836 30 130 230 330 130 30 230 30 330 30 23837 36 136 236 336 136 36 236 36 - - 23838 42 142 242 342 142 42 242 42 - - 23839 48 148 248 348 148 48 248 48 - - 23840 54 154 254 354 154 54 254 54 - - 23841 60 160 260 360 160 60 260 60 360 60 23842 66 166 266 366 166 66 266 66 - - 23843 72 172 272 372 172 72 272 72 - - 23844 78 178 278 378 178 78 278 78 - - 23845 84 184 284 384 184 84 284 84 - - 23846 90 190 290 390 190 90 290 90 390 90 23847 - - - - - - 200 0 - - 23848 - - - - - - - - 300 0 23849 - - - - - - - - 305 5 23850 - - - - - - - - 310 10 23851 - - - - - - - - 320 20 23852 - - - - - - - - 325 25 23853 - - - - - - - - 335 35 23854 - - - - - - - - 340 40 23855 - - - - - - - - 350 50 23856 - - - - - - - - 355 55 23857 - - - - - - - - 365 65 23858 - - - - - - - - 370 70 23859 - - - - - - - - 380 80 23860 - - - - - - - - 385 85 23861 - - - - - - - - 395 95 23862} 23863do_execsql_test joinD-825 { 23864 SELECT t1.*, t2.*, t3.*, t4.* 23865 FROM t1 RIGHT JOIN t2 ON t2.x>0 23866 RIGHT JOIN t3 ON t3.y>0 23867 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 23868 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c 23869 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23870} { 23871 6 106 206 306 106 6 206 6 - - 23872 12 112 212 312 112 12 212 12 - - 23873 18 118 218 318 118 18 218 18 - - 23874 24 124 224 324 124 24 224 24 - - 23875 30 130 230 330 130 30 230 30 330 30 23876 36 136 236 336 136 36 236 36 - - 23877 42 142 242 342 142 42 242 42 - - 23878 48 148 248 348 148 48 248 48 - - 23879 54 154 254 354 154 54 254 54 - - 23880 60 160 260 360 160 60 260 60 360 60 23881 66 166 266 366 166 66 266 66 - - 23882 72 172 272 372 172 72 272 72 - - 23883 78 178 278 378 178 78 278 78 - - 23884 84 184 284 384 184 84 284 84 - - 23885 90 190 290 390 190 90 290 90 390 90 23886 - - - - - - - - 300 0 23887} 23888do_execsql_test joinD-826 { 23889 SELECT t1.*, t2.*, t3.*, t4.* 23890 FROM t1 RIGHT JOIN t2 ON t2.x>0 23891 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 23892 FULL JOIN t4 ON t4.z>0 23893 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 23894 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23895} { 23896 30 130 230 330 130 30 230 30 330 30 23897 60 160 260 360 160 60 260 60 360 60 23898 90 190 290 390 190 90 290 90 390 90 23899} 23900do_execsql_test joinD-827 { 23901 SELECT t1.*, t2.*, t3.*, t4.* 23902 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 23903 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 23904 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23905 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23906} { 23907 6 106 206 306 106 6 206 6 - - 23908 12 112 212 312 112 12 212 12 - - 23909 18 118 218 318 118 18 218 18 - - 23910 24 124 224 324 124 24 224 24 - - 23911 30 130 230 330 130 30 230 30 330 30 23912 36 136 236 336 136 36 236 36 - - 23913 42 142 242 342 142 42 242 42 - - 23914 48 148 248 348 148 48 248 48 - - 23915 54 154 254 354 154 54 254 54 - - 23916 60 160 260 360 160 60 260 60 360 60 23917 66 166 266 366 166 66 266 66 - - 23918 72 172 272 372 172 72 272 72 - - 23919 78 178 278 378 178 78 278 78 - - 23920 84 184 284 384 184 84 284 84 - - 23921 90 190 290 390 190 90 290 90 390 90 23922 - - - - - - 200 0 - - 23923 - - - - - - 203 3 - - 23924 - - - - - - 209 9 - - 23925 - - - - - - 215 15 - - 23926 - - - - - - 221 21 - - 23927 - - - - - - 227 27 - - 23928 - - - - - - 233 33 - - 23929 - - - - - - 239 39 - - 23930 - - - - - - 245 45 - - 23931 - - - - - - 251 51 - - 23932 - - - - - - 257 57 - - 23933 - - - - - - 263 63 - - 23934 - - - - - - 269 69 - - 23935 - - - - - - 275 75 - - 23936 - - - - - - 281 81 - - 23937 - - - - - - 287 87 - - 23938 - - - - - - 293 93 - - 23939 - - - - - - - - 300 0 23940 - - - - - - - - 305 5 23941 - - - - - - - - 310 10 23942 - - - - - - - - 315 15 23943 - - - - - - - - 320 20 23944 - - - - - - - - 325 25 23945 - - - - - - - - 335 35 23946 - - - - - - - - 340 40 23947 - - - - - - - - 345 45 23948 - - - - - - - - 350 50 23949 - - - - - - - - 355 55 23950 - - - - - - - - 365 65 23951 - - - - - - - - 370 70 23952 - - - - - - - - 375 75 23953 - - - - - - - - 380 80 23954 - - - - - - - - 385 85 23955 - - - - - - - - 395 95 23956} 23957do_execsql_test joinD-828 { 23958 SELECT t1.*, t2.*, t3.*, t4.* 23959 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 23960 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 23961 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 23962 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 23963} { 23964 6 106 206 306 106 6 206 6 - - 23965 12 112 212 312 112 12 212 12 - - 23966 18 118 218 318 118 18 218 18 - - 23967 24 124 224 324 124 24 224 24 - - 23968 30 130 230 330 130 30 230 30 330 30 23969 36 136 236 336 136 36 236 36 - - 23970 42 142 242 342 142 42 242 42 - - 23971 48 148 248 348 148 48 248 48 - - 23972 54 154 254 354 154 54 254 54 - - 23973 60 160 260 360 160 60 260 60 360 60 23974 66 166 266 366 166 66 266 66 - - 23975 72 172 272 372 172 72 272 72 - - 23976 78 178 278 378 178 78 278 78 - - 23977 84 184 284 384 184 84 284 84 - - 23978 90 190 290 390 190 90 290 90 390 90 23979 - - - - - - 200 0 - - 23980 - - - - - - 203 3 - - 23981 - - - - - - 209 9 - - 23982 - - - - - - 215 15 - - 23983 - - - - - - 221 21 - - 23984 - - - - - - 227 27 - - 23985 - - - - - - 233 33 - - 23986 - - - - - - 239 39 - - 23987 - - - - - - 245 45 - - 23988 - - - - - - 251 51 - - 23989 - - - - - - 257 57 - - 23990 - - - - - - 263 63 - - 23991 - - - - - - 269 69 - - 23992 - - - - - - 275 75 - - 23993 - - - - - - 281 81 - - 23994 - - - - - - 287 87 - - 23995 - - - - - - 293 93 - - 23996 - - - - - - - - 300 0 23997 - - - - - - - - 305 5 23998 - - - - - - - - 310 10 23999 - - - - - - - - 315 15 24000 - - - - - - - - 320 20 24001 - - - - - - - - 325 25 24002 - - - - - - - - 335 35 24003 - - - - - - - - 340 40 24004 - - - - - - - - 345 45 24005 - - - - - - - - 350 50 24006 - - - - - - - - 355 55 24007 - - - - - - - - 365 65 24008 - - - - - - - - 370 70 24009 - - - - - - - - 375 75 24010 - - - - - - - - 380 80 24011 - - - - - - - - 385 85 24012 - - - - - - - - 395 95 24013} 24014do_execsql_test joinD-829 { 24015 SELECT t1.*, t2.*, t3.*, t4.* 24016 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24017 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24018 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 24019 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24020} { 24021 10 110 210 310 110 10 - - 310 10 24022 20 120 220 320 120 20 - - 320 20 24023 30 130 230 330 130 30 230 30 330 30 24024 40 140 240 340 140 40 - - 340 40 24025 50 150 250 350 150 50 - - 350 50 24026 60 160 260 360 160 60 260 60 360 60 24027 70 170 270 370 170 70 - - 370 70 24028 80 180 280 380 180 80 - - 380 80 24029 90 190 290 390 190 90 290 90 390 90 24030} 24031do_execsql_test joinD-830 { 24032 SELECT t1.*, t2.*, t3.*, t4.* 24033 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 24034 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24035 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 24036 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24037} { 24038 10 110 210 310 110 10 - - 310 10 24039 20 120 220 320 120 20 - - 320 20 24040 30 130 230 330 130 30 230 30 330 30 24041 40 140 240 340 140 40 - - 340 40 24042 50 150 250 350 150 50 - - 350 50 24043 60 160 260 360 160 60 260 60 360 60 24044 70 170 270 370 170 70 - - 370 70 24045 80 180 280 380 180 80 - - 380 80 24046 90 190 290 390 190 90 290 90 390 90 24047} 24048do_execsql_test joinD-831 { 24049 SELECT t1.*, t2.*, t3.*, t4.* 24050 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24051 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24052 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 24053 WHERE t2.x>0 24054 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24055} { 24056 10 110 210 310 110 10 - - 310 10 24057 20 120 220 320 120 20 - - 320 20 24058 30 130 230 330 130 30 230 30 330 30 24059 40 140 240 340 140 40 - - 340 40 24060 50 150 250 350 150 50 - - 350 50 24061 60 160 260 360 160 60 260 60 360 60 24062 70 170 270 370 170 70 - - 370 70 24063 80 180 280 380 180 80 - - 380 80 24064 90 190 290 390 190 90 290 90 390 90 24065} 24066do_execsql_test joinD-832 { 24067 SELECT t1.*, t2.*, t3.*, t4.* 24068 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24069 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24070 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 24071 WHERE (t2.x>0 OR t2.x IS NULL) 24072 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24073} { 24074 10 110 210 310 110 10 - - 310 10 24075 20 120 220 320 120 20 - - 320 20 24076 30 130 230 330 130 30 230 30 330 30 24077 40 140 240 340 140 40 - - 340 40 24078 50 150 250 350 150 50 - - 350 50 24079 60 160 260 360 160 60 260 60 360 60 24080 70 170 270 370 170 70 - - 370 70 24081 80 180 280 380 180 80 - - 380 80 24082 90 190 290 390 190 90 290 90 390 90 24083} 24084do_execsql_test joinD-833 { 24085 SELECT t1.*, t2.*, t3.*, t4.* 24086 FROM t1 RIGHT JOIN t2 ON true 24087 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24088 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 24089 WHERE t1.b=t2.b AND t2.x>0 24090 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24091} { 24092 10 110 210 310 110 10 - - 310 10 24093 20 120 220 320 120 20 - - 320 20 24094 30 130 230 330 130 30 230 30 330 30 24095 40 140 240 340 140 40 - - 340 40 24096 50 150 250 350 150 50 - - 350 50 24097 60 160 260 360 160 60 260 60 360 60 24098 70 170 270 370 170 70 - - 370 70 24099 80 180 280 380 180 80 - - 380 80 24100 90 190 290 390 190 90 290 90 390 90 24101} 24102do_execsql_test joinD-834 { 24103 SELECT t1.*, t2.*, t3.*, t4.* 24104 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24105 FULL JOIN t3 ON t1.c=t3.c 24106 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 24107 WHERE t3.y>0 24108 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24109} { 24110 30 130 230 330 130 30 230 30 330 30 24111 60 160 260 360 160 60 260 60 360 60 24112 90 190 290 390 190 90 290 90 390 90 24113} 24114do_execsql_test joinD-835 { 24115 SELECT t1.*, t2.*, t3.*, t4.* 24116 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24117 FULL JOIN t3 ON t1.c=t3.c 24118 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 24119 WHERE t3.y>0 OR t3.y IS NULL 24120 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24121} { 24122 10 110 210 310 110 10 - - 310 10 24123 20 120 220 320 120 20 - - 320 20 24124 30 130 230 330 130 30 230 30 330 30 24125 40 140 240 340 140 40 - - 340 40 24126 50 150 250 350 150 50 - - 350 50 24127 60 160 260 360 160 60 260 60 360 60 24128 70 170 270 370 170 70 - - 370 70 24129 80 180 280 380 180 80 - - 380 80 24130 90 190 290 390 190 90 290 90 390 90 24131} 24132do_execsql_test joinD-836 { 24133 SELECT t1.*, t2.*, t3.*, t4.* 24134 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24135 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24136 INNER JOIN t4 ON t1.d=t4.d 24137 WHERE t4.z>0 24138 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24139} { 24140 10 110 210 310 110 10 - - 310 10 24141 20 120 220 320 120 20 - - 320 20 24142 30 130 230 330 130 30 230 30 330 30 24143 40 140 240 340 140 40 - - 340 40 24144 50 150 250 350 150 50 - - 350 50 24145 60 160 260 360 160 60 260 60 360 60 24146 70 170 270 370 170 70 - - 370 70 24147 80 180 280 380 180 80 - - 380 80 24148 90 190 290 390 190 90 290 90 390 90 24149} 24150do_execsql_test joinD-837 { 24151 SELECT t1.*, t2.*, t3.*, t4.* 24152 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24153 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24154 INNER JOIN t4 ON t1.d=t4.d 24155 WHERE t4.z IS NULL OR t4.z>0 24156 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24157} { 24158 10 110 210 310 110 10 - - 310 10 24159 20 120 220 320 120 20 - - 320 20 24160 30 130 230 330 130 30 230 30 330 30 24161 40 140 240 340 140 40 - - 340 40 24162 50 150 250 350 150 50 - - 350 50 24163 60 160 260 360 160 60 260 60 360 60 24164 70 170 270 370 170 70 - - 370 70 24165 80 180 280 380 180 80 - - 380 80 24166 90 190 290 390 190 90 290 90 390 90 24167} 24168do_execsql_test joinD-838 { 24169 SELECT t1.*, t2.*, t3.*, t4.* 24170 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24171 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24172 INNER JOIN t4 ON t1.d=t4.d 24173 WHERE t2.x>0 AND t4.z>0 24174 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24175} { 24176 10 110 210 310 110 10 - - 310 10 24177 20 120 220 320 120 20 - - 320 20 24178 30 130 230 330 130 30 230 30 330 30 24179 40 140 240 340 140 40 - - 340 40 24180 50 150 250 350 150 50 - - 350 50 24181 60 160 260 360 160 60 260 60 360 60 24182 70 170 270 370 170 70 - - 370 70 24183 80 180 280 380 180 80 - - 380 80 24184 90 190 290 390 190 90 290 90 390 90 24185} 24186do_execsql_test joinD-839 { 24187 SELECT t1.*, t2.*, t3.*, t4.* 24188 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24189 FULL JOIN t3 ON t1.c=t3.c 24190 INNER JOIN t4 ON t1.d=t4.d 24191 WHERE t4.z>0 AND t3.y>0 24192 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24193} { 24194 30 130 230 330 130 30 230 30 330 30 24195 60 160 260 360 160 60 260 60 360 60 24196 90 190 290 390 190 90 290 90 390 90 24197} 24198do_execsql_test joinD-840 { 24199 SELECT t1.*, t2.*, t3.*, t4.* 24200 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24201 FULL JOIN t3 ON t1.c=t3.c 24202 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 24203 WHERE t2.x>0 AND t3.y>0 24204 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24205} { 24206 30 130 230 330 130 30 230 30 330 30 24207 60 160 260 360 160 60 260 60 360 60 24208 90 190 290 390 190 90 290 90 390 90 24209} 24210do_execsql_test joinD-841 { 24211 SELECT t1.*, t2.*, t3.*, t4.* 24212 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24213 FULL JOIN t3 ON t1.c=t3.c 24214 INNER JOIN t4 ON t1.d=t4.d 24215 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 24216 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24217} { 24218 30 130 230 330 130 30 230 30 330 30 24219 60 160 260 360 160 60 260 60 360 60 24220 90 190 290 390 190 90 290 90 390 90 24221} 24222do_execsql_test joinD-842 { 24223 SELECT t1.*, t2.*, t3.*, t4.* 24224 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 24225 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 24226 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 24227 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24228} { 24229 10 110 210 310 110 10 - - 310 10 24230 20 120 220 320 120 20 - - 320 20 24231 30 130 230 330 130 30 230 30 330 30 24232 40 140 240 340 140 40 - - 340 40 24233 50 150 250 350 150 50 - - 350 50 24234 60 160 260 360 160 60 260 60 360 60 24235 70 170 270 370 170 70 - - 370 70 24236 80 180 280 380 180 80 - - 380 80 24237 90 190 290 390 190 90 290 90 390 90 24238} 24239do_execsql_test joinD-843 { 24240 SELECT t1.*, t2.*, t3.*, t4.* 24241 FROM t1 RIGHT JOIN t2 ON t2.x>0 24242 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 24243 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 24244 WHERE t1.b IS NOT DISTINCT FROM t2.b 24245 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24246} { 24247 10 110 210 310 110 10 - - 310 10 24248 20 120 220 320 120 20 - - 320 20 24249 30 130 230 330 130 30 230 30 330 30 24250 40 140 240 340 140 40 - - 340 40 24251 50 150 250 350 150 50 - - 350 50 24252 60 160 260 360 160 60 260 60 360 60 24253 70 170 270 370 170 70 - - 370 70 24254 80 180 280 380 180 80 - - 380 80 24255 90 190 290 390 190 90 290 90 390 90 24256} 24257do_execsql_test joinD-844 { 24258 SELECT t1.*, t2.*, t3.*, t4.* 24259 FROM t1 RIGHT JOIN t2 ON t2.x>0 24260 FULL JOIN t3 ON t3.y>0 24261 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 24262 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 24263 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24264} { 24265 30 130 230 330 130 30 230 30 330 30 24266 60 160 260 360 160 60 260 60 360 60 24267 90 190 290 390 190 90 290 90 390 90 24268} 24269do_execsql_test joinD-845 { 24270 SELECT t1.*, t2.*, t3.*, t4.* 24271 FROM t1 RIGHT JOIN t2 ON t2.x>0 24272 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 24273 INNER JOIN t4 ON t4.z>0 24274 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 24275 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24276} { 24277 10 110 210 310 110 10 - - 310 10 24278 20 120 220 320 120 20 - - 320 20 24279 30 130 230 330 130 30 230 30 330 30 24280 40 140 240 340 140 40 - - 340 40 24281 50 150 250 350 150 50 - - 350 50 24282 60 160 260 360 160 60 260 60 360 60 24283 70 170 270 370 170 70 - - 370 70 24284 80 180 280 380 180 80 - - 380 80 24285 90 190 290 390 190 90 290 90 390 90 24286} 24287do_execsql_test joinD-846 { 24288 SELECT t1.*, t2.*, t3.*, t4.* 24289 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 24290 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24291 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 24292 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24293} { 24294 10 110 210 310 110 10 - - 310 10 24295 20 120 220 320 120 20 - - 320 20 24296 30 130 230 330 130 30 230 30 330 30 24297 40 140 240 340 140 40 - - 340 40 24298 50 150 250 350 150 50 - - 350 50 24299 60 160 260 360 160 60 260 60 360 60 24300 70 170 270 370 170 70 - - 370 70 24301 80 180 280 380 180 80 - - 380 80 24302 90 190 290 390 190 90 290 90 390 90 24303} 24304do_execsql_test joinD-847 { 24305 SELECT t1.*, t2.*, t3.*, t4.* 24306 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24307 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24308 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 24309 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24310} { 24311 2 102 202 302 102 2 - - - - 24312 4 104 204 304 104 4 - - - - 24313 6 106 206 306 106 6 206 6 - - 24314 8 108 208 308 108 8 - - - - 24315 10 110 210 310 110 10 - - 310 10 24316 12 112 212 312 112 12 212 12 - - 24317 14 114 214 314 114 14 - - - - 24318 16 116 216 316 116 16 - - - - 24319 18 118 218 318 118 18 218 18 - - 24320 20 120 220 320 120 20 - - 320 20 24321 22 122 222 322 122 22 - - - - 24322 24 124 224 324 124 24 224 24 - - 24323 26 126 226 326 126 26 - - - - 24324 28 128 228 328 128 28 - - - - 24325 30 130 230 330 130 30 230 30 330 30 24326 32 132 232 332 132 32 - - - - 24327 34 134 234 334 134 34 - - - - 24328 36 136 236 336 136 36 236 36 - - 24329 38 138 238 338 138 38 - - - - 24330 40 140 240 340 140 40 - - 340 40 24331 42 142 242 342 142 42 242 42 - - 24332 44 144 244 344 144 44 - - - - 24333 46 146 246 346 146 46 - - - - 24334 48 148 248 348 148 48 248 48 - - 24335 50 150 250 350 150 50 - - 350 50 24336 52 152 252 352 152 52 - - - - 24337 54 154 254 354 154 54 254 54 - - 24338 56 156 256 356 156 56 - - - - 24339 58 158 258 358 158 58 - - - - 24340 60 160 260 360 160 60 260 60 360 60 24341 62 162 262 362 162 62 - - - - 24342 64 164 264 364 164 64 - - - - 24343 66 166 266 366 166 66 266 66 - - 24344 68 168 268 368 168 68 - - - - 24345 70 170 270 370 170 70 - - 370 70 24346 72 172 272 372 172 72 272 72 - - 24347 74 174 274 374 174 74 - - - - 24348 76 176 276 376 176 76 - - - - 24349 78 178 278 378 178 78 278 78 - - 24350 80 180 280 380 180 80 - - 380 80 24351 82 182 282 382 182 82 - - - - 24352 84 184 284 384 184 84 284 84 - - 24353 86 186 286 386 186 86 - - - - 24354 88 188 288 388 188 88 - - - - 24355 90 190 290 390 190 90 290 90 390 90 24356 92 192 292 392 192 92 - - - - 24357 94 194 294 394 194 94 - - - - 24358 - - - - 100 0 - - - - 24359 - - - - - - 200 0 - - 24360 - - - - - - 203 3 - - 24361 - - - - - - 209 9 - - 24362 - - - - - - 215 15 - - 24363 - - - - - - 221 21 - - 24364 - - - - - - 227 27 - - 24365 - - - - - - 233 33 - - 24366 - - - - - - 239 39 - - 24367 - - - - - - 245 45 - - 24368 - - - - - - 251 51 - - 24369 - - - - - - 257 57 - - 24370 - - - - - - 263 63 - - 24371 - - - - - - 269 69 - - 24372 - - - - - - 275 75 - - 24373 - - - - - - 281 81 - - 24374 - - - - - - 287 87 - - 24375 - - - - - - 293 93 - - 24376} 24377do_execsql_test joinD-848 { 24378 SELECT t1.*, t2.*, t3.*, t4.* 24379 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 24380 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24381 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 24382 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24383} { 24384 2 102 202 302 102 2 - - - - 24385 4 104 204 304 104 4 - - - - 24386 6 106 206 306 106 6 206 6 - - 24387 8 108 208 308 108 8 - - - - 24388 10 110 210 310 110 10 - - 310 10 24389 12 112 212 312 112 12 212 12 - - 24390 14 114 214 314 114 14 - - - - 24391 16 116 216 316 116 16 - - - - 24392 18 118 218 318 118 18 218 18 - - 24393 20 120 220 320 120 20 - - 320 20 24394 22 122 222 322 122 22 - - - - 24395 24 124 224 324 124 24 224 24 - - 24396 26 126 226 326 126 26 - - - - 24397 28 128 228 328 128 28 - - - - 24398 30 130 230 330 130 30 230 30 330 30 24399 32 132 232 332 132 32 - - - - 24400 34 134 234 334 134 34 - - - - 24401 36 136 236 336 136 36 236 36 - - 24402 38 138 238 338 138 38 - - - - 24403 40 140 240 340 140 40 - - 340 40 24404 42 142 242 342 142 42 242 42 - - 24405 44 144 244 344 144 44 - - - - 24406 46 146 246 346 146 46 - - - - 24407 48 148 248 348 148 48 248 48 - - 24408 50 150 250 350 150 50 - - 350 50 24409 52 152 252 352 152 52 - - - - 24410 54 154 254 354 154 54 254 54 - - 24411 56 156 256 356 156 56 - - - - 24412 58 158 258 358 158 58 - - - - 24413 60 160 260 360 160 60 260 60 360 60 24414 62 162 262 362 162 62 - - - - 24415 64 164 264 364 164 64 - - - - 24416 66 166 266 366 166 66 266 66 - - 24417 68 168 268 368 168 68 - - - - 24418 70 170 270 370 170 70 - - 370 70 24419 72 172 272 372 172 72 272 72 - - 24420 74 174 274 374 174 74 - - - - 24421 76 176 276 376 176 76 - - - - 24422 78 178 278 378 178 78 278 78 - - 24423 80 180 280 380 180 80 - - 380 80 24424 82 182 282 382 182 82 - - - - 24425 84 184 284 384 184 84 284 84 - - 24426 86 186 286 386 186 86 - - - - 24427 88 188 288 388 188 88 - - - - 24428 90 190 290 390 190 90 290 90 390 90 24429 92 192 292 392 192 92 - - - - 24430 94 194 294 394 194 94 - - - - 24431 - - - - 100 0 - - - - 24432 - - - - - - 200 0 - - 24433 - - - - - - 203 3 - - 24434 - - - - - - 209 9 - - 24435 - - - - - - 215 15 - - 24436 - - - - - - 221 21 - - 24437 - - - - - - 227 27 - - 24438 - - - - - - 233 33 - - 24439 - - - - - - 239 39 - - 24440 - - - - - - 245 45 - - 24441 - - - - - - 251 51 - - 24442 - - - - - - 257 57 - - 24443 - - - - - - 263 63 - - 24444 - - - - - - 269 69 - - 24445 - - - - - - 275 75 - - 24446 - - - - - - 281 81 - - 24447 - - - - - - 287 87 - - 24448 - - - - - - 293 93 - - 24449} 24450do_execsql_test joinD-849 { 24451 SELECT t1.*, t2.*, t3.*, t4.* 24452 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24453 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24454 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 24455 WHERE t2.x>0 24456 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24457} { 24458 2 102 202 302 102 2 - - - - 24459 4 104 204 304 104 4 - - - - 24460 6 106 206 306 106 6 206 6 - - 24461 8 108 208 308 108 8 - - - - 24462 10 110 210 310 110 10 - - 310 10 24463 12 112 212 312 112 12 212 12 - - 24464 14 114 214 314 114 14 - - - - 24465 16 116 216 316 116 16 - - - - 24466 18 118 218 318 118 18 218 18 - - 24467 20 120 220 320 120 20 - - 320 20 24468 22 122 222 322 122 22 - - - - 24469 24 124 224 324 124 24 224 24 - - 24470 26 126 226 326 126 26 - - - - 24471 28 128 228 328 128 28 - - - - 24472 30 130 230 330 130 30 230 30 330 30 24473 32 132 232 332 132 32 - - - - 24474 34 134 234 334 134 34 - - - - 24475 36 136 236 336 136 36 236 36 - - 24476 38 138 238 338 138 38 - - - - 24477 40 140 240 340 140 40 - - 340 40 24478 42 142 242 342 142 42 242 42 - - 24479 44 144 244 344 144 44 - - - - 24480 46 146 246 346 146 46 - - - - 24481 48 148 248 348 148 48 248 48 - - 24482 50 150 250 350 150 50 - - 350 50 24483 52 152 252 352 152 52 - - - - 24484 54 154 254 354 154 54 254 54 - - 24485 56 156 256 356 156 56 - - - - 24486 58 158 258 358 158 58 - - - - 24487 60 160 260 360 160 60 260 60 360 60 24488 62 162 262 362 162 62 - - - - 24489 64 164 264 364 164 64 - - - - 24490 66 166 266 366 166 66 266 66 - - 24491 68 168 268 368 168 68 - - - - 24492 70 170 270 370 170 70 - - 370 70 24493 72 172 272 372 172 72 272 72 - - 24494 74 174 274 374 174 74 - - - - 24495 76 176 276 376 176 76 - - - - 24496 78 178 278 378 178 78 278 78 - - 24497 80 180 280 380 180 80 - - 380 80 24498 82 182 282 382 182 82 - - - - 24499 84 184 284 384 184 84 284 84 - - 24500 86 186 286 386 186 86 - - - - 24501 88 188 288 388 188 88 - - - - 24502 90 190 290 390 190 90 290 90 390 90 24503 92 192 292 392 192 92 - - - - 24504 94 194 294 394 194 94 - - - - 24505} 24506do_execsql_test joinD-850 { 24507 SELECT t1.*, t2.*, t3.*, t4.* 24508 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24509 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24510 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 24511 WHERE (t2.x>0 OR t2.x IS NULL) 24512 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24513} { 24514 2 102 202 302 102 2 - - - - 24515 4 104 204 304 104 4 - - - - 24516 6 106 206 306 106 6 206 6 - - 24517 8 108 208 308 108 8 - - - - 24518 10 110 210 310 110 10 - - 310 10 24519 12 112 212 312 112 12 212 12 - - 24520 14 114 214 314 114 14 - - - - 24521 16 116 216 316 116 16 - - - - 24522 18 118 218 318 118 18 218 18 - - 24523 20 120 220 320 120 20 - - 320 20 24524 22 122 222 322 122 22 - - - - 24525 24 124 224 324 124 24 224 24 - - 24526 26 126 226 326 126 26 - - - - 24527 28 128 228 328 128 28 - - - - 24528 30 130 230 330 130 30 230 30 330 30 24529 32 132 232 332 132 32 - - - - 24530 34 134 234 334 134 34 - - - - 24531 36 136 236 336 136 36 236 36 - - 24532 38 138 238 338 138 38 - - - - 24533 40 140 240 340 140 40 - - 340 40 24534 42 142 242 342 142 42 242 42 - - 24535 44 144 244 344 144 44 - - - - 24536 46 146 246 346 146 46 - - - - 24537 48 148 248 348 148 48 248 48 - - 24538 50 150 250 350 150 50 - - 350 50 24539 52 152 252 352 152 52 - - - - 24540 54 154 254 354 154 54 254 54 - - 24541 56 156 256 356 156 56 - - - - 24542 58 158 258 358 158 58 - - - - 24543 60 160 260 360 160 60 260 60 360 60 24544 62 162 262 362 162 62 - - - - 24545 64 164 264 364 164 64 - - - - 24546 66 166 266 366 166 66 266 66 - - 24547 68 168 268 368 168 68 - - - - 24548 70 170 270 370 170 70 - - 370 70 24549 72 172 272 372 172 72 272 72 - - 24550 74 174 274 374 174 74 - - - - 24551 76 176 276 376 176 76 - - - - 24552 78 178 278 378 178 78 278 78 - - 24553 80 180 280 380 180 80 - - 380 80 24554 82 182 282 382 182 82 - - - - 24555 84 184 284 384 184 84 284 84 - - 24556 86 186 286 386 186 86 - - - - 24557 88 188 288 388 188 88 - - - - 24558 90 190 290 390 190 90 290 90 390 90 24559 92 192 292 392 192 92 - - - - 24560 94 194 294 394 194 94 - - - - 24561 - - - - - - 200 0 - - 24562 - - - - - - 203 3 - - 24563 - - - - - - 209 9 - - 24564 - - - - - - 215 15 - - 24565 - - - - - - 221 21 - - 24566 - - - - - - 227 27 - - 24567 - - - - - - 233 33 - - 24568 - - - - - - 239 39 - - 24569 - - - - - - 245 45 - - 24570 - - - - - - 251 51 - - 24571 - - - - - - 257 57 - - 24572 - - - - - - 263 63 - - 24573 - - - - - - 269 69 - - 24574 - - - - - - 275 75 - - 24575 - - - - - - 281 81 - - 24576 - - - - - - 287 87 - - 24577 - - - - - - 293 93 - - 24578} 24579do_execsql_test joinD-851 { 24580 SELECT t1.*, t2.*, t3.*, t4.* 24581 FROM t1 RIGHT JOIN t2 ON true 24582 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24583 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 24584 WHERE t1.b=t2.b AND t2.x>0 24585 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24586} { 24587 2 102 202 302 102 2 - - - - 24588 4 104 204 304 104 4 - - - - 24589 6 106 206 306 106 6 206 6 - - 24590 8 108 208 308 108 8 - - - - 24591 10 110 210 310 110 10 - - 310 10 24592 12 112 212 312 112 12 212 12 - - 24593 14 114 214 314 114 14 - - - - 24594 16 116 216 316 116 16 - - - - 24595 18 118 218 318 118 18 218 18 - - 24596 20 120 220 320 120 20 - - 320 20 24597 22 122 222 322 122 22 - - - - 24598 24 124 224 324 124 24 224 24 - - 24599 26 126 226 326 126 26 - - - - 24600 28 128 228 328 128 28 - - - - 24601 30 130 230 330 130 30 230 30 330 30 24602 32 132 232 332 132 32 - - - - 24603 34 134 234 334 134 34 - - - - 24604 36 136 236 336 136 36 236 36 - - 24605 38 138 238 338 138 38 - - - - 24606 40 140 240 340 140 40 - - 340 40 24607 42 142 242 342 142 42 242 42 - - 24608 44 144 244 344 144 44 - - - - 24609 46 146 246 346 146 46 - - - - 24610 48 148 248 348 148 48 248 48 - - 24611 50 150 250 350 150 50 - - 350 50 24612 52 152 252 352 152 52 - - - - 24613 54 154 254 354 154 54 254 54 - - 24614 56 156 256 356 156 56 - - - - 24615 58 158 258 358 158 58 - - - - 24616 60 160 260 360 160 60 260 60 360 60 24617 62 162 262 362 162 62 - - - - 24618 64 164 264 364 164 64 - - - - 24619 66 166 266 366 166 66 266 66 - - 24620 68 168 268 368 168 68 - - - - 24621 70 170 270 370 170 70 - - 370 70 24622 72 172 272 372 172 72 272 72 - - 24623 74 174 274 374 174 74 - - - - 24624 76 176 276 376 176 76 - - - - 24625 78 178 278 378 178 78 278 78 - - 24626 80 180 280 380 180 80 - - 380 80 24627 82 182 282 382 182 82 - - - - 24628 84 184 284 384 184 84 284 84 - - 24629 86 186 286 386 186 86 - - - - 24630 88 188 288 388 188 88 - - - - 24631 90 190 290 390 190 90 290 90 390 90 24632 92 192 292 392 192 92 - - - - 24633 94 194 294 394 194 94 - - - - 24634} 24635do_execsql_test joinD-852 { 24636 SELECT t1.*, t2.*, t3.*, t4.* 24637 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24638 FULL JOIN t3 ON t1.c=t3.c 24639 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 24640 WHERE t3.y>0 24641 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24642} { 24643 6 106 206 306 106 6 206 6 - - 24644 12 112 212 312 112 12 212 12 - - 24645 18 118 218 318 118 18 218 18 - - 24646 24 124 224 324 124 24 224 24 - - 24647 30 130 230 330 130 30 230 30 330 30 24648 36 136 236 336 136 36 236 36 - - 24649 42 142 242 342 142 42 242 42 - - 24650 48 148 248 348 148 48 248 48 - - 24651 54 154 254 354 154 54 254 54 - - 24652 60 160 260 360 160 60 260 60 360 60 24653 66 166 266 366 166 66 266 66 - - 24654 72 172 272 372 172 72 272 72 - - 24655 78 178 278 378 178 78 278 78 - - 24656 84 184 284 384 184 84 284 84 - - 24657 90 190 290 390 190 90 290 90 390 90 24658 - - - - - - 203 3 - - 24659 - - - - - - 209 9 - - 24660 - - - - - - 215 15 - - 24661 - - - - - - 221 21 - - 24662 - - - - - - 227 27 - - 24663 - - - - - - 233 33 - - 24664 - - - - - - 239 39 - - 24665 - - - - - - 245 45 - - 24666 - - - - - - 251 51 - - 24667 - - - - - - 257 57 - - 24668 - - - - - - 263 63 - - 24669 - - - - - - 269 69 - - 24670 - - - - - - 275 75 - - 24671 - - - - - - 281 81 - - 24672 - - - - - - 287 87 - - 24673 - - - - - - 293 93 - - 24674} 24675do_execsql_test joinD-853 { 24676 SELECT t1.*, t2.*, t3.*, t4.* 24677 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24678 FULL JOIN t3 ON t1.c=t3.c 24679 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 24680 WHERE t3.y>0 OR t3.y IS NULL 24681 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24682} { 24683 2 102 202 302 102 2 - - - - 24684 4 104 204 304 104 4 - - - - 24685 6 106 206 306 106 6 206 6 - - 24686 8 108 208 308 108 8 - - - - 24687 10 110 210 310 110 10 - - 310 10 24688 12 112 212 312 112 12 212 12 - - 24689 14 114 214 314 114 14 - - - - 24690 16 116 216 316 116 16 - - - - 24691 18 118 218 318 118 18 218 18 - - 24692 20 120 220 320 120 20 - - 320 20 24693 22 122 222 322 122 22 - - - - 24694 24 124 224 324 124 24 224 24 - - 24695 26 126 226 326 126 26 - - - - 24696 28 128 228 328 128 28 - - - - 24697 30 130 230 330 130 30 230 30 330 30 24698 32 132 232 332 132 32 - - - - 24699 34 134 234 334 134 34 - - - - 24700 36 136 236 336 136 36 236 36 - - 24701 38 138 238 338 138 38 - - - - 24702 40 140 240 340 140 40 - - 340 40 24703 42 142 242 342 142 42 242 42 - - 24704 44 144 244 344 144 44 - - - - 24705 46 146 246 346 146 46 - - - - 24706 48 148 248 348 148 48 248 48 - - 24707 50 150 250 350 150 50 - - 350 50 24708 52 152 252 352 152 52 - - - - 24709 54 154 254 354 154 54 254 54 - - 24710 56 156 256 356 156 56 - - - - 24711 58 158 258 358 158 58 - - - - 24712 60 160 260 360 160 60 260 60 360 60 24713 62 162 262 362 162 62 - - - - 24714 64 164 264 364 164 64 - - - - 24715 66 166 266 366 166 66 266 66 - - 24716 68 168 268 368 168 68 - - - - 24717 70 170 270 370 170 70 - - 370 70 24718 72 172 272 372 172 72 272 72 - - 24719 74 174 274 374 174 74 - - - - 24720 76 176 276 376 176 76 - - - - 24721 78 178 278 378 178 78 278 78 - - 24722 80 180 280 380 180 80 - - 380 80 24723 82 182 282 382 182 82 - - - - 24724 84 184 284 384 184 84 284 84 - - 24725 86 186 286 386 186 86 - - - - 24726 88 188 288 388 188 88 - - - - 24727 90 190 290 390 190 90 290 90 390 90 24728 92 192 292 392 192 92 - - - - 24729 94 194 294 394 194 94 - - - - 24730 - - - - 100 0 - - - - 24731 - - - - - - 203 3 - - 24732 - - - - - - 209 9 - - 24733 - - - - - - 215 15 - - 24734 - - - - - - 221 21 - - 24735 - - - - - - 227 27 - - 24736 - - - - - - 233 33 - - 24737 - - - - - - 239 39 - - 24738 - - - - - - 245 45 - - 24739 - - - - - - 251 51 - - 24740 - - - - - - 257 57 - - 24741 - - - - - - 263 63 - - 24742 - - - - - - 269 69 - - 24743 - - - - - - 275 75 - - 24744 - - - - - - 281 81 - - 24745 - - - - - - 287 87 - - 24746 - - - - - - 293 93 - - 24747} 24748do_execsql_test joinD-854 { 24749 SELECT t1.*, t2.*, t3.*, t4.* 24750 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24751 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24752 LEFT JOIN t4 ON t1.d=t4.d 24753 WHERE t4.z>0 24754 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24755} { 24756 10 110 210 310 110 10 - - 310 10 24757 20 120 220 320 120 20 - - 320 20 24758 30 130 230 330 130 30 230 30 330 30 24759 40 140 240 340 140 40 - - 340 40 24760 50 150 250 350 150 50 - - 350 50 24761 60 160 260 360 160 60 260 60 360 60 24762 70 170 270 370 170 70 - - 370 70 24763 80 180 280 380 180 80 - - 380 80 24764 90 190 290 390 190 90 290 90 390 90 24765} 24766do_execsql_test joinD-855 { 24767 SELECT t1.*, t2.*, t3.*, t4.* 24768 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24769 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24770 LEFT JOIN t4 ON t1.d=t4.d 24771 WHERE t4.z IS NULL OR t4.z>0 24772 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24773} { 24774 2 102 202 302 102 2 - - - - 24775 4 104 204 304 104 4 - - - - 24776 6 106 206 306 106 6 206 6 - - 24777 8 108 208 308 108 8 - - - - 24778 10 110 210 310 110 10 - - 310 10 24779 12 112 212 312 112 12 212 12 - - 24780 14 114 214 314 114 14 - - - - 24781 16 116 216 316 116 16 - - - - 24782 18 118 218 318 118 18 218 18 - - 24783 20 120 220 320 120 20 - - 320 20 24784 22 122 222 322 122 22 - - - - 24785 24 124 224 324 124 24 224 24 - - 24786 26 126 226 326 126 26 - - - - 24787 28 128 228 328 128 28 - - - - 24788 30 130 230 330 130 30 230 30 330 30 24789 32 132 232 332 132 32 - - - - 24790 34 134 234 334 134 34 - - - - 24791 36 136 236 336 136 36 236 36 - - 24792 38 138 238 338 138 38 - - - - 24793 40 140 240 340 140 40 - - 340 40 24794 42 142 242 342 142 42 242 42 - - 24795 44 144 244 344 144 44 - - - - 24796 46 146 246 346 146 46 - - - - 24797 48 148 248 348 148 48 248 48 - - 24798 50 150 250 350 150 50 - - 350 50 24799 52 152 252 352 152 52 - - - - 24800 54 154 254 354 154 54 254 54 - - 24801 56 156 256 356 156 56 - - - - 24802 58 158 258 358 158 58 - - - - 24803 60 160 260 360 160 60 260 60 360 60 24804 62 162 262 362 162 62 - - - - 24805 64 164 264 364 164 64 - - - - 24806 66 166 266 366 166 66 266 66 - - 24807 68 168 268 368 168 68 - - - - 24808 70 170 270 370 170 70 - - 370 70 24809 72 172 272 372 172 72 272 72 - - 24810 74 174 274 374 174 74 - - - - 24811 76 176 276 376 176 76 - - - - 24812 78 178 278 378 178 78 278 78 - - 24813 80 180 280 380 180 80 - - 380 80 24814 82 182 282 382 182 82 - - - - 24815 84 184 284 384 184 84 284 84 - - 24816 86 186 286 386 186 86 - - - - 24817 88 188 288 388 188 88 - - - - 24818 90 190 290 390 190 90 290 90 390 90 24819 92 192 292 392 192 92 - - - - 24820 94 194 294 394 194 94 - - - - 24821 - - - - 100 0 - - - - 24822 - - - - - - 200 0 - - 24823 - - - - - - 203 3 - - 24824 - - - - - - 209 9 - - 24825 - - - - - - 215 15 - - 24826 - - - - - - 221 21 - - 24827 - - - - - - 227 27 - - 24828 - - - - - - 233 33 - - 24829 - - - - - - 239 39 - - 24830 - - - - - - 245 45 - - 24831 - - - - - - 251 51 - - 24832 - - - - - - 257 57 - - 24833 - - - - - - 263 63 - - 24834 - - - - - - 269 69 - - 24835 - - - - - - 275 75 - - 24836 - - - - - - 281 81 - - 24837 - - - - - - 287 87 - - 24838 - - - - - - 293 93 - - 24839} 24840do_execsql_test joinD-856 { 24841 SELECT t1.*, t2.*, t3.*, t4.* 24842 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24843 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 24844 LEFT JOIN t4 ON t1.d=t4.d 24845 WHERE t2.x>0 AND t4.z>0 24846 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24847} { 24848 10 110 210 310 110 10 - - 310 10 24849 20 120 220 320 120 20 - - 320 20 24850 30 130 230 330 130 30 230 30 330 30 24851 40 140 240 340 140 40 - - 340 40 24852 50 150 250 350 150 50 - - 350 50 24853 60 160 260 360 160 60 260 60 360 60 24854 70 170 270 370 170 70 - - 370 70 24855 80 180 280 380 180 80 - - 380 80 24856 90 190 290 390 190 90 290 90 390 90 24857} 24858do_execsql_test joinD-857 { 24859 SELECT t1.*, t2.*, t3.*, t4.* 24860 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 24861 FULL JOIN t3 ON t1.c=t3.c 24862 LEFT JOIN t4 ON t1.d=t4.d 24863 WHERE t4.z>0 AND t3.y>0 24864 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24865} { 24866 30 130 230 330 130 30 230 30 330 30 24867 60 160 260 360 160 60 260 60 360 60 24868 90 190 290 390 190 90 290 90 390 90 24869} 24870do_execsql_test joinD-858 { 24871 SELECT t1.*, t2.*, t3.*, t4.* 24872 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24873 FULL JOIN t3 ON t1.c=t3.c 24874 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 24875 WHERE t2.x>0 AND t3.y>0 24876 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24877} { 24878 6 106 206 306 106 6 206 6 - - 24879 12 112 212 312 112 12 212 12 - - 24880 18 118 218 318 118 18 218 18 - - 24881 24 124 224 324 124 24 224 24 - - 24882 30 130 230 330 130 30 230 30 330 30 24883 36 136 236 336 136 36 236 36 - - 24884 42 142 242 342 142 42 242 42 - - 24885 48 148 248 348 148 48 248 48 - - 24886 54 154 254 354 154 54 254 54 - - 24887 60 160 260 360 160 60 260 60 360 60 24888 66 166 266 366 166 66 266 66 - - 24889 72 172 272 372 172 72 272 72 - - 24890 78 178 278 378 178 78 278 78 - - 24891 84 184 284 384 184 84 284 84 - - 24892 90 190 290 390 190 90 290 90 390 90 24893} 24894do_execsql_test joinD-859 { 24895 SELECT t1.*, t2.*, t3.*, t4.* 24896 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 24897 FULL JOIN t3 ON t1.c=t3.c 24898 LEFT JOIN t4 ON t1.d=t4.d 24899 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 24900 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24901} { 24902 30 130 230 330 130 30 230 30 330 30 24903 60 160 260 360 160 60 260 60 360 60 24904 90 190 290 390 190 90 290 90 390 90 24905} 24906do_execsql_test joinD-860 { 24907 SELECT t1.*, t2.*, t3.*, t4.* 24908 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 24909 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 24910 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 24911 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24912} { 24913 2 102 202 302 102 2 - - - - 24914 4 104 204 304 104 4 - - - - 24915 6 106 206 306 106 6 206 6 - - 24916 8 108 208 308 108 8 - - - - 24917 10 110 210 310 110 10 - - 310 10 24918 12 112 212 312 112 12 212 12 - - 24919 14 114 214 314 114 14 - - - - 24920 16 116 216 316 116 16 - - - - 24921 18 118 218 318 118 18 218 18 - - 24922 20 120 220 320 120 20 - - 320 20 24923 22 122 222 322 122 22 - - - - 24924 24 124 224 324 124 24 224 24 - - 24925 26 126 226 326 126 26 - - - - 24926 28 128 228 328 128 28 - - - - 24927 30 130 230 330 130 30 230 30 330 30 24928 32 132 232 332 132 32 - - - - 24929 34 134 234 334 134 34 - - - - 24930 36 136 236 336 136 36 236 36 - - 24931 38 138 238 338 138 38 - - - - 24932 40 140 240 340 140 40 - - 340 40 24933 42 142 242 342 142 42 242 42 - - 24934 44 144 244 344 144 44 - - - - 24935 46 146 246 346 146 46 - - - - 24936 48 148 248 348 148 48 248 48 - - 24937 50 150 250 350 150 50 - - 350 50 24938 52 152 252 352 152 52 - - - - 24939 54 154 254 354 154 54 254 54 - - 24940 56 156 256 356 156 56 - - - - 24941 58 158 258 358 158 58 - - - - 24942 60 160 260 360 160 60 260 60 360 60 24943 62 162 262 362 162 62 - - - - 24944 64 164 264 364 164 64 - - - - 24945 66 166 266 366 166 66 266 66 - - 24946 68 168 268 368 168 68 - - - - 24947 70 170 270 370 170 70 - - 370 70 24948 72 172 272 372 172 72 272 72 - - 24949 74 174 274 374 174 74 - - - - 24950 76 176 276 376 176 76 - - - - 24951 78 178 278 378 178 78 278 78 - - 24952 80 180 280 380 180 80 - - 380 80 24953 82 182 282 382 182 82 - - - - 24954 84 184 284 384 184 84 284 84 - - 24955 86 186 286 386 186 86 - - - - 24956 88 188 288 388 188 88 - - - - 24957 90 190 290 390 190 90 290 90 390 90 24958 92 192 292 392 192 92 - - - - 24959 94 194 294 394 194 94 - - - - 24960 - - - - 100 0 - - - - 24961 - - - - - - 200 0 - - 24962 - - - - - - 203 3 - - 24963 - - - - - - 209 9 - - 24964 - - - - - - 215 15 - - 24965 - - - - - - 221 21 - - 24966 - - - - - - 227 27 - - 24967 - - - - - - 233 33 - - 24968 - - - - - - 239 39 - - 24969 - - - - - - 245 45 - - 24970 - - - - - - 251 51 - - 24971 - - - - - - 257 57 - - 24972 - - - - - - 263 63 - - 24973 - - - - - - 269 69 - - 24974 - - - - - - 275 75 - - 24975 - - - - - - 281 81 - - 24976 - - - - - - 287 87 - - 24977 - - - - - - 293 93 - - 24978} 24979do_execsql_test joinD-861 { 24980 SELECT t1.*, t2.*, t3.*, t4.* 24981 FROM t1 RIGHT JOIN t2 ON t2.x>0 24982 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 24983 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 24984 WHERE t1.b IS NOT DISTINCT FROM t2.b 24985 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 24986} { 24987 2 102 202 302 102 2 - - - - 24988 4 104 204 304 104 4 - - - - 24989 6 106 206 306 106 6 206 6 - - 24990 8 108 208 308 108 8 - - - - 24991 10 110 210 310 110 10 - - 310 10 24992 12 112 212 312 112 12 212 12 - - 24993 14 114 214 314 114 14 - - - - 24994 16 116 216 316 116 16 - - - - 24995 18 118 218 318 118 18 218 18 - - 24996 20 120 220 320 120 20 - - 320 20 24997 22 122 222 322 122 22 - - - - 24998 24 124 224 324 124 24 224 24 - - 24999 26 126 226 326 126 26 - - - - 25000 28 128 228 328 128 28 - - - - 25001 30 130 230 330 130 30 230 30 330 30 25002 32 132 232 332 132 32 - - - - 25003 34 134 234 334 134 34 - - - - 25004 36 136 236 336 136 36 236 36 - - 25005 38 138 238 338 138 38 - - - - 25006 40 140 240 340 140 40 - - 340 40 25007 42 142 242 342 142 42 242 42 - - 25008 44 144 244 344 144 44 - - - - 25009 46 146 246 346 146 46 - - - - 25010 48 148 248 348 148 48 248 48 - - 25011 50 150 250 350 150 50 - - 350 50 25012 52 152 252 352 152 52 - - - - 25013 54 154 254 354 154 54 254 54 - - 25014 56 156 256 356 156 56 - - - - 25015 58 158 258 358 158 58 - - - - 25016 60 160 260 360 160 60 260 60 360 60 25017 62 162 262 362 162 62 - - - - 25018 64 164 264 364 164 64 - - - - 25019 66 166 266 366 166 66 266 66 - - 25020 68 168 268 368 168 68 - - - - 25021 70 170 270 370 170 70 - - 370 70 25022 72 172 272 372 172 72 272 72 - - 25023 74 174 274 374 174 74 - - - - 25024 76 176 276 376 176 76 - - - - 25025 78 178 278 378 178 78 278 78 - - 25026 80 180 280 380 180 80 - - 380 80 25027 82 182 282 382 182 82 - - - - 25028 84 184 284 384 184 84 284 84 - - 25029 86 186 286 386 186 86 - - - - 25030 88 188 288 388 188 88 - - - - 25031 90 190 290 390 190 90 290 90 390 90 25032 92 192 292 392 192 92 - - - - 25033 94 194 294 394 194 94 - - - - 25034 - - - - - - 200 0 - - 25035} 25036do_execsql_test joinD-862 { 25037 SELECT t1.*, t2.*, t3.*, t4.* 25038 FROM t1 RIGHT JOIN t2 ON t2.x>0 25039 FULL JOIN t3 ON t3.y>0 25040 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 25041 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 25042 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25043} { 25044 6 106 206 306 106 6 206 6 - - 25045 12 112 212 312 112 12 212 12 - - 25046 18 118 218 318 118 18 218 18 - - 25047 24 124 224 324 124 24 224 24 - - 25048 30 130 230 330 130 30 230 30 330 30 25049 36 136 236 336 136 36 236 36 - - 25050 42 142 242 342 142 42 242 42 - - 25051 48 148 248 348 148 48 248 48 - - 25052 54 154 254 354 154 54 254 54 - - 25053 60 160 260 360 160 60 260 60 360 60 25054 66 166 266 366 166 66 266 66 - - 25055 72 172 272 372 172 72 272 72 - - 25056 78 178 278 378 178 78 278 78 - - 25057 84 184 284 384 184 84 284 84 - - 25058 90 190 290 390 190 90 290 90 390 90 25059} 25060do_execsql_test joinD-863 { 25061 SELECT t1.*, t2.*, t3.*, t4.* 25062 FROM t1 RIGHT JOIN t2 ON t2.x>0 25063 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 25064 LEFT JOIN t4 ON t4.z>0 25065 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 25066 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25067} { 25068 10 110 210 310 110 10 - - 310 10 25069 20 120 220 320 120 20 - - 320 20 25070 30 130 230 330 130 30 230 30 330 30 25071 40 140 240 340 140 40 - - 340 40 25072 50 150 250 350 150 50 - - 350 50 25073 60 160 260 360 160 60 260 60 360 60 25074 70 170 270 370 170 70 - - 370 70 25075 80 180 280 380 180 80 - - 380 80 25076 90 190 290 390 190 90 290 90 390 90 25077} 25078do_execsql_test joinD-864 { 25079 SELECT t1.*, t2.*, t3.*, t4.* 25080 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 25081 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25082 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 25083 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25084} { 25085 2 102 202 302 102 2 - - - - 25086 4 104 204 304 104 4 - - - - 25087 6 106 206 306 106 6 206 6 - - 25088 8 108 208 308 108 8 - - - - 25089 10 110 210 310 110 10 - - 310 10 25090 12 112 212 312 112 12 212 12 - - 25091 14 114 214 314 114 14 - - - - 25092 16 116 216 316 116 16 - - - - 25093 18 118 218 318 118 18 218 18 - - 25094 20 120 220 320 120 20 - - 320 20 25095 22 122 222 322 122 22 - - - - 25096 24 124 224 324 124 24 224 24 - - 25097 26 126 226 326 126 26 - - - - 25098 28 128 228 328 128 28 - - - - 25099 30 130 230 330 130 30 230 30 330 30 25100 32 132 232 332 132 32 - - - - 25101 34 134 234 334 134 34 - - - - 25102 36 136 236 336 136 36 236 36 - - 25103 38 138 238 338 138 38 - - - - 25104 40 140 240 340 140 40 - - 340 40 25105 42 142 242 342 142 42 242 42 - - 25106 44 144 244 344 144 44 - - - - 25107 46 146 246 346 146 46 - - - - 25108 48 148 248 348 148 48 248 48 - - 25109 50 150 250 350 150 50 - - 350 50 25110 52 152 252 352 152 52 - - - - 25111 54 154 254 354 154 54 254 54 - - 25112 56 156 256 356 156 56 - - - - 25113 58 158 258 358 158 58 - - - - 25114 60 160 260 360 160 60 260 60 360 60 25115 62 162 262 362 162 62 - - - - 25116 64 164 264 364 164 64 - - - - 25117 66 166 266 366 166 66 266 66 - - 25118 68 168 268 368 168 68 - - - - 25119 70 170 270 370 170 70 - - 370 70 25120 72 172 272 372 172 72 272 72 - - 25121 74 174 274 374 174 74 - - - - 25122 76 176 276 376 176 76 - - - - 25123 78 178 278 378 178 78 278 78 - - 25124 80 180 280 380 180 80 - - 380 80 25125 82 182 282 382 182 82 - - - - 25126 84 184 284 384 184 84 284 84 - - 25127 86 186 286 386 186 86 - - - - 25128 88 188 288 388 188 88 - - - - 25129 90 190 290 390 190 90 290 90 390 90 25130 92 192 292 392 192 92 - - - - 25131 94 194 294 394 194 94 - - - - 25132 - - - - 100 0 - - - - 25133 - - - - - - 200 0 - - 25134 - - - - - - 203 3 - - 25135 - - - - - - 209 9 - - 25136 - - - - - - 215 15 - - 25137 - - - - - - 221 21 - - 25138 - - - - - - 227 27 - - 25139 - - - - - - 233 33 - - 25140 - - - - - - 239 39 - - 25141 - - - - - - 245 45 - - 25142 - - - - - - 251 51 - - 25143 - - - - - - 257 57 - - 25144 - - - - - - 263 63 - - 25145 - - - - - - 269 69 - - 25146 - - - - - - 275 75 - - 25147 - - - - - - 281 81 - - 25148 - - - - - - 287 87 - - 25149 - - - - - - 293 93 - - 25150} 25151do_execsql_test joinD-865 { 25152 SELECT t1.*, t2.*, t3.*, t4.* 25153 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 25154 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25155 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 25156 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25157} { 25158 10 110 210 310 110 10 - - 310 10 25159 20 120 220 320 120 20 - - 320 20 25160 30 130 230 330 130 30 230 30 330 30 25161 40 140 240 340 140 40 - - 340 40 25162 50 150 250 350 150 50 - - 350 50 25163 60 160 260 360 160 60 260 60 360 60 25164 70 170 270 370 170 70 - - 370 70 25165 80 180 280 380 180 80 - - 380 80 25166 90 190 290 390 190 90 290 90 390 90 25167 - - - - - - - - 300 0 25168 - - - - - - - - 305 5 25169 - - - - - - - - 315 15 25170 - - - - - - - - 325 25 25171 - - - - - - - - 335 35 25172 - - - - - - - - 345 45 25173 - - - - - - - - 355 55 25174 - - - - - - - - 365 65 25175 - - - - - - - - 375 75 25176 - - - - - - - - 385 85 25177 - - - - - - - - 395 95 25178} 25179do_execsql_test joinD-866 { 25180 SELECT t1.*, t2.*, t3.*, t4.* 25181 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 25182 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25183 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 25184 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25185} { 25186 10 110 210 310 110 10 - - 310 10 25187 20 120 220 320 120 20 - - 320 20 25188 30 130 230 330 130 30 230 30 330 30 25189 40 140 240 340 140 40 - - 340 40 25190 50 150 250 350 150 50 - - 350 50 25191 60 160 260 360 160 60 260 60 360 60 25192 70 170 270 370 170 70 - - 370 70 25193 80 180 280 380 180 80 - - 380 80 25194 90 190 290 390 190 90 290 90 390 90 25195 - - - - - - - - 300 0 25196 - - - - - - - - 305 5 25197 - - - - - - - - 315 15 25198 - - - - - - - - 325 25 25199 - - - - - - - - 335 35 25200 - - - - - - - - 345 45 25201 - - - - - - - - 355 55 25202 - - - - - - - - 365 65 25203 - - - - - - - - 375 75 25204 - - - - - - - - 385 85 25205 - - - - - - - - 395 95 25206} 25207do_execsql_test joinD-867 { 25208 SELECT t1.*, t2.*, t3.*, t4.* 25209 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 25210 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25211 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 25212 WHERE t2.x>0 25213 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25214} { 25215 10 110 210 310 110 10 - - 310 10 25216 20 120 220 320 120 20 - - 320 20 25217 30 130 230 330 130 30 230 30 330 30 25218 40 140 240 340 140 40 - - 340 40 25219 50 150 250 350 150 50 - - 350 50 25220 60 160 260 360 160 60 260 60 360 60 25221 70 170 270 370 170 70 - - 370 70 25222 80 180 280 380 180 80 - - 380 80 25223 90 190 290 390 190 90 290 90 390 90 25224} 25225do_execsql_test joinD-868 { 25226 SELECT t1.*, t2.*, t3.*, t4.* 25227 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 25228 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25229 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 25230 WHERE (t2.x>0 OR t2.x IS NULL) 25231 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25232} { 25233 10 110 210 310 110 10 - - 310 10 25234 20 120 220 320 120 20 - - 320 20 25235 30 130 230 330 130 30 230 30 330 30 25236 40 140 240 340 140 40 - - 340 40 25237 50 150 250 350 150 50 - - 350 50 25238 60 160 260 360 160 60 260 60 360 60 25239 70 170 270 370 170 70 - - 370 70 25240 80 180 280 380 180 80 - - 380 80 25241 90 190 290 390 190 90 290 90 390 90 25242 - - - - - - - - 300 0 25243 - - - - - - - - 305 5 25244 - - - - - - - - 315 15 25245 - - - - - - - - 325 25 25246 - - - - - - - - 335 35 25247 - - - - - - - - 345 45 25248 - - - - - - - - 355 55 25249 - - - - - - - - 365 65 25250 - - - - - - - - 375 75 25251 - - - - - - - - 385 85 25252 - - - - - - - - 395 95 25253} 25254do_execsql_test joinD-869 { 25255 SELECT t1.*, t2.*, t3.*, t4.* 25256 FROM t1 RIGHT JOIN t2 ON true 25257 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25258 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 25259 WHERE t1.b=t2.b AND t2.x>0 25260 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25261} { 25262 10 110 210 310 110 10 - - 310 10 25263 20 120 220 320 120 20 - - 320 20 25264 30 130 230 330 130 30 230 30 330 30 25265 40 140 240 340 140 40 - - 340 40 25266 50 150 250 350 150 50 - - 350 50 25267 60 160 260 360 160 60 260 60 360 60 25268 70 170 270 370 170 70 - - 370 70 25269 80 180 280 380 180 80 - - 380 80 25270 90 190 290 390 190 90 290 90 390 90 25271} 25272do_execsql_test joinD-870 { 25273 SELECT t1.*, t2.*, t3.*, t4.* 25274 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 25275 FULL JOIN t3 ON t1.c=t3.c 25276 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 25277 WHERE t3.y>0 25278 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25279} { 25280 30 130 230 330 130 30 230 30 330 30 25281 60 160 260 360 160 60 260 60 360 60 25282 90 190 290 390 190 90 290 90 390 90 25283} 25284do_execsql_test joinD-871 { 25285 SELECT t1.*, t2.*, t3.*, t4.* 25286 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 25287 FULL JOIN t3 ON t1.c=t3.c 25288 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 25289 WHERE t3.y>0 OR t3.y IS NULL 25290 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25291} { 25292 10 110 210 310 110 10 - - 310 10 25293 20 120 220 320 120 20 - - 320 20 25294 30 130 230 330 130 30 230 30 330 30 25295 40 140 240 340 140 40 - - 340 40 25296 50 150 250 350 150 50 - - 350 50 25297 60 160 260 360 160 60 260 60 360 60 25298 70 170 270 370 170 70 - - 370 70 25299 80 180 280 380 180 80 - - 380 80 25300 90 190 290 390 190 90 290 90 390 90 25301 - - - - - - - - 300 0 25302 - - - - - - - - 305 5 25303 - - - - - - - - 315 15 25304 - - - - - - - - 325 25 25305 - - - - - - - - 335 35 25306 - - - - - - - - 345 45 25307 - - - - - - - - 355 55 25308 - - - - - - - - 365 65 25309 - - - - - - - - 375 75 25310 - - - - - - - - 385 85 25311 - - - - - - - - 395 95 25312} 25313do_execsql_test joinD-872 { 25314 SELECT t1.*, t2.*, t3.*, t4.* 25315 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 25316 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25317 RIGHT JOIN t4 ON t1.d=t4.d 25318 WHERE t4.z>0 25319 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25320} { 25321 10 110 210 310 110 10 - - 310 10 25322 20 120 220 320 120 20 - - 320 20 25323 30 130 230 330 130 30 230 30 330 30 25324 40 140 240 340 140 40 - - 340 40 25325 50 150 250 350 150 50 - - 350 50 25326 60 160 260 360 160 60 260 60 360 60 25327 70 170 270 370 170 70 - - 370 70 25328 80 180 280 380 180 80 - - 380 80 25329 90 190 290 390 190 90 290 90 390 90 25330 - - - - - - - - 305 5 25331 - - - - - - - - 315 15 25332 - - - - - - - - 325 25 25333 - - - - - - - - 335 35 25334 - - - - - - - - 345 45 25335 - - - - - - - - 355 55 25336 - - - - - - - - 365 65 25337 - - - - - - - - 375 75 25338 - - - - - - - - 385 85 25339 - - - - - - - - 395 95 25340} 25341do_execsql_test joinD-873 { 25342 SELECT t1.*, t2.*, t3.*, t4.* 25343 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 25344 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25345 RIGHT JOIN t4 ON t1.d=t4.d 25346 WHERE t4.z IS NULL OR t4.z>0 25347 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25348} { 25349 10 110 210 310 110 10 - - 310 10 25350 20 120 220 320 120 20 - - 320 20 25351 30 130 230 330 130 30 230 30 330 30 25352 40 140 240 340 140 40 - - 340 40 25353 50 150 250 350 150 50 - - 350 50 25354 60 160 260 360 160 60 260 60 360 60 25355 70 170 270 370 170 70 - - 370 70 25356 80 180 280 380 180 80 - - 380 80 25357 90 190 290 390 190 90 290 90 390 90 25358 - - - - - - - - 305 5 25359 - - - - - - - - 315 15 25360 - - - - - - - - 325 25 25361 - - - - - - - - 335 35 25362 - - - - - - - - 345 45 25363 - - - - - - - - 355 55 25364 - - - - - - - - 365 65 25365 - - - - - - - - 375 75 25366 - - - - - - - - 385 85 25367 - - - - - - - - 395 95 25368} 25369do_execsql_test joinD-874 { 25370 SELECT t1.*, t2.*, t3.*, t4.* 25371 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 25372 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25373 RIGHT JOIN t4 ON t1.d=t4.d 25374 WHERE t2.x>0 AND t4.z>0 25375 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25376} { 25377 10 110 210 310 110 10 - - 310 10 25378 20 120 220 320 120 20 - - 320 20 25379 30 130 230 330 130 30 230 30 330 30 25380 40 140 240 340 140 40 - - 340 40 25381 50 150 250 350 150 50 - - 350 50 25382 60 160 260 360 160 60 260 60 360 60 25383 70 170 270 370 170 70 - - 370 70 25384 80 180 280 380 180 80 - - 380 80 25385 90 190 290 390 190 90 290 90 390 90 25386} 25387do_execsql_test joinD-875 { 25388 SELECT t1.*, t2.*, t3.*, t4.* 25389 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 25390 FULL JOIN t3 ON t1.c=t3.c 25391 RIGHT JOIN t4 ON t1.d=t4.d 25392 WHERE t4.z>0 AND t3.y>0 25393 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25394} { 25395 30 130 230 330 130 30 230 30 330 30 25396 60 160 260 360 160 60 260 60 360 60 25397 90 190 290 390 190 90 290 90 390 90 25398} 25399do_execsql_test joinD-876 { 25400 SELECT t1.*, t2.*, t3.*, t4.* 25401 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 25402 FULL JOIN t3 ON t1.c=t3.c 25403 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 25404 WHERE t2.x>0 AND t3.y>0 25405 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25406} { 25407 30 130 230 330 130 30 230 30 330 30 25408 60 160 260 360 160 60 260 60 360 60 25409 90 190 290 390 190 90 290 90 390 90 25410} 25411do_execsql_test joinD-877 { 25412 SELECT t1.*, t2.*, t3.*, t4.* 25413 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 25414 FULL JOIN t3 ON t1.c=t3.c 25415 RIGHT JOIN t4 ON t1.d=t4.d 25416 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 25417 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25418} { 25419 30 130 230 330 130 30 230 30 330 30 25420 60 160 260 360 160 60 260 60 360 60 25421 90 190 290 390 190 90 290 90 390 90 25422} 25423do_execsql_test joinD-878 { 25424 SELECT t1.*, t2.*, t3.*, t4.* 25425 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 25426 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 25427 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 25428 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25429} { 25430 10 110 210 310 110 10 - - 310 10 25431 20 120 220 320 120 20 - - 320 20 25432 30 130 230 330 130 30 230 30 330 30 25433 40 140 240 340 140 40 - - 340 40 25434 50 150 250 350 150 50 - - 350 50 25435 60 160 260 360 160 60 260 60 360 60 25436 70 170 270 370 170 70 - - 370 70 25437 80 180 280 380 180 80 - - 380 80 25438 90 190 290 390 190 90 290 90 390 90 25439 - - - - - - - - 300 0 25440 - - - - - - - - 305 5 25441 - - - - - - - - 315 15 25442 - - - - - - - - 325 25 25443 - - - - - - - - 335 35 25444 - - - - - - - - 345 45 25445 - - - - - - - - 355 55 25446 - - - - - - - - 365 65 25447 - - - - - - - - 375 75 25448 - - - - - - - - 385 85 25449 - - - - - - - - 395 95 25450} 25451do_execsql_test joinD-879 { 25452 SELECT t1.*, t2.*, t3.*, t4.* 25453 FROM t1 RIGHT JOIN t2 ON t2.x>0 25454 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 25455 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 25456 WHERE t1.b IS NOT DISTINCT FROM t2.b 25457 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25458} { 25459 10 110 210 310 110 10 - - 310 10 25460 20 120 220 320 120 20 - - 320 20 25461 30 130 230 330 130 30 230 30 330 30 25462 40 140 240 340 140 40 - - 340 40 25463 50 150 250 350 150 50 - - 350 50 25464 60 160 260 360 160 60 260 60 360 60 25465 70 170 270 370 170 70 - - 370 70 25466 80 180 280 380 180 80 - - 380 80 25467 90 190 290 390 190 90 290 90 390 90 25468 - - - - - - - - 300 0 25469} 25470do_execsql_test joinD-880 { 25471 SELECT t1.*, t2.*, t3.*, t4.* 25472 FROM t1 RIGHT JOIN t2 ON t2.x>0 25473 FULL JOIN t3 ON t3.y>0 25474 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 25475 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 25476 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25477} { 25478 30 130 230 330 130 30 230 30 330 30 25479 60 160 260 360 160 60 260 60 360 60 25480 90 190 290 390 190 90 290 90 390 90 25481} 25482do_execsql_test joinD-881 { 25483 SELECT t1.*, t2.*, t3.*, t4.* 25484 FROM t1 RIGHT JOIN t2 ON t2.x>0 25485 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 25486 RIGHT JOIN t4 ON t4.z>0 25487 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d 25488 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25489} { 25490 10 110 210 310 110 10 - - 310 10 25491 20 120 220 320 120 20 - - 320 20 25492 30 130 230 330 130 30 230 30 330 30 25493 40 140 240 340 140 40 - - 340 40 25494 50 150 250 350 150 50 - - 350 50 25495 60 160 260 360 160 60 260 60 360 60 25496 70 170 270 370 170 70 - - 370 70 25497 80 180 280 380 180 80 - - 380 80 25498 90 190 290 390 190 90 290 90 390 90 25499} 25500do_execsql_test joinD-882 { 25501 SELECT t1.*, t2.*, t3.*, t4.* 25502 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 25503 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25504 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 25505 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25506} { 25507 10 110 210 310 110 10 - - 310 10 25508 20 120 220 320 120 20 - - 320 20 25509 30 130 230 330 130 30 230 30 330 30 25510 40 140 240 340 140 40 - - 340 40 25511 50 150 250 350 150 50 - - 350 50 25512 60 160 260 360 160 60 260 60 360 60 25513 70 170 270 370 170 70 - - 370 70 25514 80 180 280 380 180 80 - - 380 80 25515 90 190 290 390 190 90 290 90 390 90 25516 - - - - - - - - 300 0 25517 - - - - - - - - 305 5 25518 - - - - - - - - 315 15 25519 - - - - - - - - 325 25 25520 - - - - - - - - 335 35 25521 - - - - - - - - 345 45 25522 - - - - - - - - 355 55 25523 - - - - - - - - 365 65 25524 - - - - - - - - 375 75 25525 - - - - - - - - 385 85 25526 - - - - - - - - 395 95 25527} 25528do_execsql_test joinD-883 { 25529 SELECT t1.*, t2.*, t3.*, t4.* 25530 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 25531 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25532 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 25533 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25534} { 25535 2 102 202 302 102 2 - - - - 25536 4 104 204 304 104 4 - - - - 25537 6 106 206 306 106 6 206 6 - - 25538 8 108 208 308 108 8 - - - - 25539 10 110 210 310 110 10 - - 310 10 25540 12 112 212 312 112 12 212 12 - - 25541 14 114 214 314 114 14 - - - - 25542 16 116 216 316 116 16 - - - - 25543 18 118 218 318 118 18 218 18 - - 25544 20 120 220 320 120 20 - - 320 20 25545 22 122 222 322 122 22 - - - - 25546 24 124 224 324 124 24 224 24 - - 25547 26 126 226 326 126 26 - - - - 25548 28 128 228 328 128 28 - - - - 25549 30 130 230 330 130 30 230 30 330 30 25550 32 132 232 332 132 32 - - - - 25551 34 134 234 334 134 34 - - - - 25552 36 136 236 336 136 36 236 36 - - 25553 38 138 238 338 138 38 - - - - 25554 40 140 240 340 140 40 - - 340 40 25555 42 142 242 342 142 42 242 42 - - 25556 44 144 244 344 144 44 - - - - 25557 46 146 246 346 146 46 - - - - 25558 48 148 248 348 148 48 248 48 - - 25559 50 150 250 350 150 50 - - 350 50 25560 52 152 252 352 152 52 - - - - 25561 54 154 254 354 154 54 254 54 - - 25562 56 156 256 356 156 56 - - - - 25563 58 158 258 358 158 58 - - - - 25564 60 160 260 360 160 60 260 60 360 60 25565 62 162 262 362 162 62 - - - - 25566 64 164 264 364 164 64 - - - - 25567 66 166 266 366 166 66 266 66 - - 25568 68 168 268 368 168 68 - - - - 25569 70 170 270 370 170 70 - - 370 70 25570 72 172 272 372 172 72 272 72 - - 25571 74 174 274 374 174 74 - - - - 25572 76 176 276 376 176 76 - - - - 25573 78 178 278 378 178 78 278 78 - - 25574 80 180 280 380 180 80 - - 380 80 25575 82 182 282 382 182 82 - - - - 25576 84 184 284 384 184 84 284 84 - - 25577 86 186 286 386 186 86 - - - - 25578 88 188 288 388 188 88 - - - - 25579 90 190 290 390 190 90 290 90 390 90 25580 92 192 292 392 192 92 - - - - 25581 94 194 294 394 194 94 - - - - 25582 - - - - 100 0 - - - - 25583 - - - - - - 200 0 - - 25584 - - - - - - 203 3 - - 25585 - - - - - - 209 9 - - 25586 - - - - - - 215 15 - - 25587 - - - - - - 221 21 - - 25588 - - - - - - 227 27 - - 25589 - - - - - - 233 33 - - 25590 - - - - - - 239 39 - - 25591 - - - - - - 245 45 - - 25592 - - - - - - 251 51 - - 25593 - - - - - - 257 57 - - 25594 - - - - - - 263 63 - - 25595 - - - - - - 269 69 - - 25596 - - - - - - 275 75 - - 25597 - - - - - - 281 81 - - 25598 - - - - - - 287 87 - - 25599 - - - - - - 293 93 - - 25600 - - - - - - - - 300 0 25601 - - - - - - - - 305 5 25602 - - - - - - - - 315 15 25603 - - - - - - - - 325 25 25604 - - - - - - - - 335 35 25605 - - - - - - - - 345 45 25606 - - - - - - - - 355 55 25607 - - - - - - - - 365 65 25608 - - - - - - - - 375 75 25609 - - - - - - - - 385 85 25610 - - - - - - - - 395 95 25611} 25612do_execsql_test joinD-884 { 25613 SELECT t1.*, t2.*, t3.*, t4.* 25614 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 25615 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25616 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 25617 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25618} { 25619 2 102 202 302 102 2 - - - - 25620 4 104 204 304 104 4 - - - - 25621 6 106 206 306 106 6 206 6 - - 25622 8 108 208 308 108 8 - - - - 25623 10 110 210 310 110 10 - - 310 10 25624 12 112 212 312 112 12 212 12 - - 25625 14 114 214 314 114 14 - - - - 25626 16 116 216 316 116 16 - - - - 25627 18 118 218 318 118 18 218 18 - - 25628 20 120 220 320 120 20 - - 320 20 25629 22 122 222 322 122 22 - - - - 25630 24 124 224 324 124 24 224 24 - - 25631 26 126 226 326 126 26 - - - - 25632 28 128 228 328 128 28 - - - - 25633 30 130 230 330 130 30 230 30 330 30 25634 32 132 232 332 132 32 - - - - 25635 34 134 234 334 134 34 - - - - 25636 36 136 236 336 136 36 236 36 - - 25637 38 138 238 338 138 38 - - - - 25638 40 140 240 340 140 40 - - 340 40 25639 42 142 242 342 142 42 242 42 - - 25640 44 144 244 344 144 44 - - - - 25641 46 146 246 346 146 46 - - - - 25642 48 148 248 348 148 48 248 48 - - 25643 50 150 250 350 150 50 - - 350 50 25644 52 152 252 352 152 52 - - - - 25645 54 154 254 354 154 54 254 54 - - 25646 56 156 256 356 156 56 - - - - 25647 58 158 258 358 158 58 - - - - 25648 60 160 260 360 160 60 260 60 360 60 25649 62 162 262 362 162 62 - - - - 25650 64 164 264 364 164 64 - - - - 25651 66 166 266 366 166 66 266 66 - - 25652 68 168 268 368 168 68 - - - - 25653 70 170 270 370 170 70 - - 370 70 25654 72 172 272 372 172 72 272 72 - - 25655 74 174 274 374 174 74 - - - - 25656 76 176 276 376 176 76 - - - - 25657 78 178 278 378 178 78 278 78 - - 25658 80 180 280 380 180 80 - - 380 80 25659 82 182 282 382 182 82 - - - - 25660 84 184 284 384 184 84 284 84 - - 25661 86 186 286 386 186 86 - - - - 25662 88 188 288 388 188 88 - - - - 25663 90 190 290 390 190 90 290 90 390 90 25664 92 192 292 392 192 92 - - - - 25665 94 194 294 394 194 94 - - - - 25666 - - - - 100 0 - - - - 25667 - - - - - - 200 0 - - 25668 - - - - - - 203 3 - - 25669 - - - - - - 209 9 - - 25670 - - - - - - 215 15 - - 25671 - - - - - - 221 21 - - 25672 - - - - - - 227 27 - - 25673 - - - - - - 233 33 - - 25674 - - - - - - 239 39 - - 25675 - - - - - - 245 45 - - 25676 - - - - - - 251 51 - - 25677 - - - - - - 257 57 - - 25678 - - - - - - 263 63 - - 25679 - - - - - - 269 69 - - 25680 - - - - - - 275 75 - - 25681 - - - - - - 281 81 - - 25682 - - - - - - 287 87 - - 25683 - - - - - - 293 93 - - 25684 - - - - - - - - 300 0 25685 - - - - - - - - 305 5 25686 - - - - - - - - 315 15 25687 - - - - - - - - 325 25 25688 - - - - - - - - 335 35 25689 - - - - - - - - 345 45 25690 - - - - - - - - 355 55 25691 - - - - - - - - 365 65 25692 - - - - - - - - 375 75 25693 - - - - - - - - 385 85 25694 - - - - - - - - 395 95 25695} 25696do_execsql_test joinD-885 { 25697 SELECT t1.*, t2.*, t3.*, t4.* 25698 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 25699 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25700 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 25701 WHERE t2.x>0 25702 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25703} { 25704 2 102 202 302 102 2 - - - - 25705 4 104 204 304 104 4 - - - - 25706 6 106 206 306 106 6 206 6 - - 25707 8 108 208 308 108 8 - - - - 25708 10 110 210 310 110 10 - - 310 10 25709 12 112 212 312 112 12 212 12 - - 25710 14 114 214 314 114 14 - - - - 25711 16 116 216 316 116 16 - - - - 25712 18 118 218 318 118 18 218 18 - - 25713 20 120 220 320 120 20 - - 320 20 25714 22 122 222 322 122 22 - - - - 25715 24 124 224 324 124 24 224 24 - - 25716 26 126 226 326 126 26 - - - - 25717 28 128 228 328 128 28 - - - - 25718 30 130 230 330 130 30 230 30 330 30 25719 32 132 232 332 132 32 - - - - 25720 34 134 234 334 134 34 - - - - 25721 36 136 236 336 136 36 236 36 - - 25722 38 138 238 338 138 38 - - - - 25723 40 140 240 340 140 40 - - 340 40 25724 42 142 242 342 142 42 242 42 - - 25725 44 144 244 344 144 44 - - - - 25726 46 146 246 346 146 46 - - - - 25727 48 148 248 348 148 48 248 48 - - 25728 50 150 250 350 150 50 - - 350 50 25729 52 152 252 352 152 52 - - - - 25730 54 154 254 354 154 54 254 54 - - 25731 56 156 256 356 156 56 - - - - 25732 58 158 258 358 158 58 - - - - 25733 60 160 260 360 160 60 260 60 360 60 25734 62 162 262 362 162 62 - - - - 25735 64 164 264 364 164 64 - - - - 25736 66 166 266 366 166 66 266 66 - - 25737 68 168 268 368 168 68 - - - - 25738 70 170 270 370 170 70 - - 370 70 25739 72 172 272 372 172 72 272 72 - - 25740 74 174 274 374 174 74 - - - - 25741 76 176 276 376 176 76 - - - - 25742 78 178 278 378 178 78 278 78 - - 25743 80 180 280 380 180 80 - - 380 80 25744 82 182 282 382 182 82 - - - - 25745 84 184 284 384 184 84 284 84 - - 25746 86 186 286 386 186 86 - - - - 25747 88 188 288 388 188 88 - - - - 25748 90 190 290 390 190 90 290 90 390 90 25749 92 192 292 392 192 92 - - - - 25750 94 194 294 394 194 94 - - - - 25751} 25752do_execsql_test joinD-886 { 25753 SELECT t1.*, t2.*, t3.*, t4.* 25754 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 25755 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25756 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 25757 WHERE (t2.x>0 OR t2.x IS NULL) 25758 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25759} { 25760 2 102 202 302 102 2 - - - - 25761 4 104 204 304 104 4 - - - - 25762 6 106 206 306 106 6 206 6 - - 25763 8 108 208 308 108 8 - - - - 25764 10 110 210 310 110 10 - - 310 10 25765 12 112 212 312 112 12 212 12 - - 25766 14 114 214 314 114 14 - - - - 25767 16 116 216 316 116 16 - - - - 25768 18 118 218 318 118 18 218 18 - - 25769 20 120 220 320 120 20 - - 320 20 25770 22 122 222 322 122 22 - - - - 25771 24 124 224 324 124 24 224 24 - - 25772 26 126 226 326 126 26 - - - - 25773 28 128 228 328 128 28 - - - - 25774 30 130 230 330 130 30 230 30 330 30 25775 32 132 232 332 132 32 - - - - 25776 34 134 234 334 134 34 - - - - 25777 36 136 236 336 136 36 236 36 - - 25778 38 138 238 338 138 38 - - - - 25779 40 140 240 340 140 40 - - 340 40 25780 42 142 242 342 142 42 242 42 - - 25781 44 144 244 344 144 44 - - - - 25782 46 146 246 346 146 46 - - - - 25783 48 148 248 348 148 48 248 48 - - 25784 50 150 250 350 150 50 - - 350 50 25785 52 152 252 352 152 52 - - - - 25786 54 154 254 354 154 54 254 54 - - 25787 56 156 256 356 156 56 - - - - 25788 58 158 258 358 158 58 - - - - 25789 60 160 260 360 160 60 260 60 360 60 25790 62 162 262 362 162 62 - - - - 25791 64 164 264 364 164 64 - - - - 25792 66 166 266 366 166 66 266 66 - - 25793 68 168 268 368 168 68 - - - - 25794 70 170 270 370 170 70 - - 370 70 25795 72 172 272 372 172 72 272 72 - - 25796 74 174 274 374 174 74 - - - - 25797 76 176 276 376 176 76 - - - - 25798 78 178 278 378 178 78 278 78 - - 25799 80 180 280 380 180 80 - - 380 80 25800 82 182 282 382 182 82 - - - - 25801 84 184 284 384 184 84 284 84 - - 25802 86 186 286 386 186 86 - - - - 25803 88 188 288 388 188 88 - - - - 25804 90 190 290 390 190 90 290 90 390 90 25805 92 192 292 392 192 92 - - - - 25806 94 194 294 394 194 94 - - - - 25807 - - - - - - 200 0 - - 25808 - - - - - - 203 3 - - 25809 - - - - - - 209 9 - - 25810 - - - - - - 215 15 - - 25811 - - - - - - 221 21 - - 25812 - - - - - - 227 27 - - 25813 - - - - - - 233 33 - - 25814 - - - - - - 239 39 - - 25815 - - - - - - 245 45 - - 25816 - - - - - - 251 51 - - 25817 - - - - - - 257 57 - - 25818 - - - - - - 263 63 - - 25819 - - - - - - 269 69 - - 25820 - - - - - - 275 75 - - 25821 - - - - - - 281 81 - - 25822 - - - - - - 287 87 - - 25823 - - - - - - 293 93 - - 25824 - - - - - - - - 300 0 25825 - - - - - - - - 305 5 25826 - - - - - - - - 315 15 25827 - - - - - - - - 325 25 25828 - - - - - - - - 335 35 25829 - - - - - - - - 345 45 25830 - - - - - - - - 355 55 25831 - - - - - - - - 365 65 25832 - - - - - - - - 375 75 25833 - - - - - - - - 385 85 25834 - - - - - - - - 395 95 25835} 25836do_execsql_test joinD-887 { 25837 SELECT t1.*, t2.*, t3.*, t4.* 25838 FROM t1 RIGHT JOIN t2 ON true 25839 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 25840 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 25841 WHERE t1.b=t2.b AND t2.x>0 25842 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25843} { 25844 2 102 202 302 102 2 - - - - 25845 4 104 204 304 104 4 - - - - 25846 6 106 206 306 106 6 206 6 - - 25847 8 108 208 308 108 8 - - - - 25848 10 110 210 310 110 10 - - 310 10 25849 12 112 212 312 112 12 212 12 - - 25850 14 114 214 314 114 14 - - - - 25851 16 116 216 316 116 16 - - - - 25852 18 118 218 318 118 18 218 18 - - 25853 20 120 220 320 120 20 - - 320 20 25854 22 122 222 322 122 22 - - - - 25855 24 124 224 324 124 24 224 24 - - 25856 26 126 226 326 126 26 - - - - 25857 28 128 228 328 128 28 - - - - 25858 30 130 230 330 130 30 230 30 330 30 25859 32 132 232 332 132 32 - - - - 25860 34 134 234 334 134 34 - - - - 25861 36 136 236 336 136 36 236 36 - - 25862 38 138 238 338 138 38 - - - - 25863 40 140 240 340 140 40 - - 340 40 25864 42 142 242 342 142 42 242 42 - - 25865 44 144 244 344 144 44 - - - - 25866 46 146 246 346 146 46 - - - - 25867 48 148 248 348 148 48 248 48 - - 25868 50 150 250 350 150 50 - - 350 50 25869 52 152 252 352 152 52 - - - - 25870 54 154 254 354 154 54 254 54 - - 25871 56 156 256 356 156 56 - - - - 25872 58 158 258 358 158 58 - - - - 25873 60 160 260 360 160 60 260 60 360 60 25874 62 162 262 362 162 62 - - - - 25875 64 164 264 364 164 64 - - - - 25876 66 166 266 366 166 66 266 66 - - 25877 68 168 268 368 168 68 - - - - 25878 70 170 270 370 170 70 - - 370 70 25879 72 172 272 372 172 72 272 72 - - 25880 74 174 274 374 174 74 - - - - 25881 76 176 276 376 176 76 - - - - 25882 78 178 278 378 178 78 278 78 - - 25883 80 180 280 380 180 80 - - 380 80 25884 82 182 282 382 182 82 - - - - 25885 84 184 284 384 184 84 284 84 - - 25886 86 186 286 386 186 86 - - - - 25887 88 188 288 388 188 88 - - - - 25888 90 190 290 390 190 90 290 90 390 90 25889 92 192 292 392 192 92 - - - - 25890 94 194 294 394 194 94 - - - - 25891} 25892do_execsql_test joinD-888 { 25893 SELECT t1.*, t2.*, t3.*, t4.* 25894 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 25895 FULL JOIN t3 ON t1.c=t3.c 25896 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 25897 WHERE t3.y>0 25898 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25899} { 25900 6 106 206 306 106 6 206 6 - - 25901 12 112 212 312 112 12 212 12 - - 25902 18 118 218 318 118 18 218 18 - - 25903 24 124 224 324 124 24 224 24 - - 25904 30 130 230 330 130 30 230 30 330 30 25905 36 136 236 336 136 36 236 36 - - 25906 42 142 242 342 142 42 242 42 - - 25907 48 148 248 348 148 48 248 48 - - 25908 54 154 254 354 154 54 254 54 - - 25909 60 160 260 360 160 60 260 60 360 60 25910 66 166 266 366 166 66 266 66 - - 25911 72 172 272 372 172 72 272 72 - - 25912 78 178 278 378 178 78 278 78 - - 25913 84 184 284 384 184 84 284 84 - - 25914 90 190 290 390 190 90 290 90 390 90 25915 - - - - - - 203 3 - - 25916 - - - - - - 209 9 - - 25917 - - - - - - 215 15 - - 25918 - - - - - - 221 21 - - 25919 - - - - - - 227 27 - - 25920 - - - - - - 233 33 - - 25921 - - - - - - 239 39 - - 25922 - - - - - - 245 45 - - 25923 - - - - - - 251 51 - - 25924 - - - - - - 257 57 - - 25925 - - - - - - 263 63 - - 25926 - - - - - - 269 69 - - 25927 - - - - - - 275 75 - - 25928 - - - - - - 281 81 - - 25929 - - - - - - 287 87 - - 25930 - - - - - - 293 93 - - 25931} 25932do_execsql_test joinD-889 { 25933 SELECT t1.*, t2.*, t3.*, t4.* 25934 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 25935 FULL JOIN t3 ON t1.c=t3.c 25936 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 25937 WHERE t3.y>0 OR t3.y IS NULL 25938 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 25939} { 25940 2 102 202 302 102 2 - - - - 25941 4 104 204 304 104 4 - - - - 25942 6 106 206 306 106 6 206 6 - - 25943 8 108 208 308 108 8 - - - - 25944 10 110 210 310 110 10 - - 310 10 25945 12 112 212 312 112 12 212 12 - - 25946 14 114 214 314 114 14 - - - - 25947 16 116 216 316 116 16 - - - - 25948 18 118 218 318 118 18 218 18 - - 25949 20 120 220 320 120 20 - - 320 20 25950 22 122 222 322 122 22 - - - - 25951 24 124 224 324 124 24 224 24 - - 25952 26 126 226 326 126 26 - - - - 25953 28 128 228 328 128 28 - - - - 25954 30 130 230 330 130 30 230 30 330 30 25955 32 132 232 332 132 32 - - - - 25956 34 134 234 334 134 34 - - - - 25957 36 136 236 336 136 36 236 36 - - 25958 38 138 238 338 138 38 - - - - 25959 40 140 240 340 140 40 - - 340 40 25960 42 142 242 342 142 42 242 42 - - 25961 44 144 244 344 144 44 - - - - 25962 46 146 246 346 146 46 - - - - 25963 48 148 248 348 148 48 248 48 - - 25964 50 150 250 350 150 50 - - 350 50 25965 52 152 252 352 152 52 - - - - 25966 54 154 254 354 154 54 254 54 - - 25967 56 156 256 356 156 56 - - - - 25968 58 158 258 358 158 58 - - - - 25969 60 160 260 360 160 60 260 60 360 60 25970 62 162 262 362 162 62 - - - - 25971 64 164 264 364 164 64 - - - - 25972 66 166 266 366 166 66 266 66 - - 25973 68 168 268 368 168 68 - - - - 25974 70 170 270 370 170 70 - - 370 70 25975 72 172 272 372 172 72 272 72 - - 25976 74 174 274 374 174 74 - - - - 25977 76 176 276 376 176 76 - - - - 25978 78 178 278 378 178 78 278 78 - - 25979 80 180 280 380 180 80 - - 380 80 25980 82 182 282 382 182 82 - - - - 25981 84 184 284 384 184 84 284 84 - - 25982 86 186 286 386 186 86 - - - - 25983 88 188 288 388 188 88 - - - - 25984 90 190 290 390 190 90 290 90 390 90 25985 92 192 292 392 192 92 - - - - 25986 94 194 294 394 194 94 - - - - 25987 - - - - 100 0 - - - - 25988 - - - - - - 203 3 - - 25989 - - - - - - 209 9 - - 25990 - - - - - - 215 15 - - 25991 - - - - - - 221 21 - - 25992 - - - - - - 227 27 - - 25993 - - - - - - 233 33 - - 25994 - - - - - - 239 39 - - 25995 - - - - - - 245 45 - - 25996 - - - - - - 251 51 - - 25997 - - - - - - 257 57 - - 25998 - - - - - - 263 63 - - 25999 - - - - - - 269 69 - - 26000 - - - - - - 275 75 - - 26001 - - - - - - 281 81 - - 26002 - - - - - - 287 87 - - 26003 - - - - - - 293 93 - - 26004 - - - - - - - - 300 0 26005 - - - - - - - - 305 5 26006 - - - - - - - - 315 15 26007 - - - - - - - - 325 25 26008 - - - - - - - - 335 35 26009 - - - - - - - - 345 45 26010 - - - - - - - - 355 55 26011 - - - - - - - - 365 65 26012 - - - - - - - - 375 75 26013 - - - - - - - - 385 85 26014 - - - - - - - - 395 95 26015} 26016do_execsql_test joinD-890 { 26017 SELECT t1.*, t2.*, t3.*, t4.* 26018 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 26019 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 26020 FULL JOIN t4 ON t1.d=t4.d 26021 WHERE t4.z>0 26022 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26023} { 26024 10 110 210 310 110 10 - - 310 10 26025 20 120 220 320 120 20 - - 320 20 26026 30 130 230 330 130 30 230 30 330 30 26027 40 140 240 340 140 40 - - 340 40 26028 50 150 250 350 150 50 - - 350 50 26029 60 160 260 360 160 60 260 60 360 60 26030 70 170 270 370 170 70 - - 370 70 26031 80 180 280 380 180 80 - - 380 80 26032 90 190 290 390 190 90 290 90 390 90 26033 - - - - - - - - 305 5 26034 - - - - - - - - 315 15 26035 - - - - - - - - 325 25 26036 - - - - - - - - 335 35 26037 - - - - - - - - 345 45 26038 - - - - - - - - 355 55 26039 - - - - - - - - 365 65 26040 - - - - - - - - 375 75 26041 - - - - - - - - 385 85 26042 - - - - - - - - 395 95 26043} 26044do_execsql_test joinD-891 { 26045 SELECT t1.*, t2.*, t3.*, t4.* 26046 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 26047 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 26048 FULL JOIN t4 ON t1.d=t4.d 26049 WHERE t4.z IS NULL OR t4.z>0 26050 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26051} { 26052 2 102 202 302 102 2 - - - - 26053 4 104 204 304 104 4 - - - - 26054 6 106 206 306 106 6 206 6 - - 26055 8 108 208 308 108 8 - - - - 26056 10 110 210 310 110 10 - - 310 10 26057 12 112 212 312 112 12 212 12 - - 26058 14 114 214 314 114 14 - - - - 26059 16 116 216 316 116 16 - - - - 26060 18 118 218 318 118 18 218 18 - - 26061 20 120 220 320 120 20 - - 320 20 26062 22 122 222 322 122 22 - - - - 26063 24 124 224 324 124 24 224 24 - - 26064 26 126 226 326 126 26 - - - - 26065 28 128 228 328 128 28 - - - - 26066 30 130 230 330 130 30 230 30 330 30 26067 32 132 232 332 132 32 - - - - 26068 34 134 234 334 134 34 - - - - 26069 36 136 236 336 136 36 236 36 - - 26070 38 138 238 338 138 38 - - - - 26071 40 140 240 340 140 40 - - 340 40 26072 42 142 242 342 142 42 242 42 - - 26073 44 144 244 344 144 44 - - - - 26074 46 146 246 346 146 46 - - - - 26075 48 148 248 348 148 48 248 48 - - 26076 50 150 250 350 150 50 - - 350 50 26077 52 152 252 352 152 52 - - - - 26078 54 154 254 354 154 54 254 54 - - 26079 56 156 256 356 156 56 - - - - 26080 58 158 258 358 158 58 - - - - 26081 60 160 260 360 160 60 260 60 360 60 26082 62 162 262 362 162 62 - - - - 26083 64 164 264 364 164 64 - - - - 26084 66 166 266 366 166 66 266 66 - - 26085 68 168 268 368 168 68 - - - - 26086 70 170 270 370 170 70 - - 370 70 26087 72 172 272 372 172 72 272 72 - - 26088 74 174 274 374 174 74 - - - - 26089 76 176 276 376 176 76 - - - - 26090 78 178 278 378 178 78 278 78 - - 26091 80 180 280 380 180 80 - - 380 80 26092 82 182 282 382 182 82 - - - - 26093 84 184 284 384 184 84 284 84 - - 26094 86 186 286 386 186 86 - - - - 26095 88 188 288 388 188 88 - - - - 26096 90 190 290 390 190 90 290 90 390 90 26097 92 192 292 392 192 92 - - - - 26098 94 194 294 394 194 94 - - - - 26099 - - - - 100 0 - - - - 26100 - - - - - - 200 0 - - 26101 - - - - - - 203 3 - - 26102 - - - - - - 209 9 - - 26103 - - - - - - 215 15 - - 26104 - - - - - - 221 21 - - 26105 - - - - - - 227 27 - - 26106 - - - - - - 233 33 - - 26107 - - - - - - 239 39 - - 26108 - - - - - - 245 45 - - 26109 - - - - - - 251 51 - - 26110 - - - - - - 257 57 - - 26111 - - - - - - 263 63 - - 26112 - - - - - - 269 69 - - 26113 - - - - - - 275 75 - - 26114 - - - - - - 281 81 - - 26115 - - - - - - 287 87 - - 26116 - - - - - - 293 93 - - 26117 - - - - - - - - 305 5 26118 - - - - - - - - 315 15 26119 - - - - - - - - 325 25 26120 - - - - - - - - 335 35 26121 - - - - - - - - 345 45 26122 - - - - - - - - 355 55 26123 - - - - - - - - 365 65 26124 - - - - - - - - 375 75 26125 - - - - - - - - 385 85 26126 - - - - - - - - 395 95 26127} 26128do_execsql_test joinD-892 { 26129 SELECT t1.*, t2.*, t3.*, t4.* 26130 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 26131 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 26132 FULL JOIN t4 ON t1.d=t4.d 26133 WHERE t2.x>0 AND t4.z>0 26134 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26135} { 26136 10 110 210 310 110 10 - - 310 10 26137 20 120 220 320 120 20 - - 320 20 26138 30 130 230 330 130 30 230 30 330 30 26139 40 140 240 340 140 40 - - 340 40 26140 50 150 250 350 150 50 - - 350 50 26141 60 160 260 360 160 60 260 60 360 60 26142 70 170 270 370 170 70 - - 370 70 26143 80 180 280 380 180 80 - - 380 80 26144 90 190 290 390 190 90 290 90 390 90 26145} 26146do_execsql_test joinD-893 { 26147 SELECT t1.*, t2.*, t3.*, t4.* 26148 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0 26149 FULL JOIN t3 ON t1.c=t3.c 26150 FULL JOIN t4 ON t1.d=t4.d 26151 WHERE t4.z>0 AND t3.y>0 26152 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26153} { 26154 30 130 230 330 130 30 230 30 330 30 26155 60 160 260 360 160 60 260 60 360 60 26156 90 190 290 390 190 90 290 90 390 90 26157} 26158do_execsql_test joinD-894 { 26159 SELECT t1.*, t2.*, t3.*, t4.* 26160 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 26161 FULL JOIN t3 ON t1.c=t3.c 26162 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 26163 WHERE t2.x>0 AND t3.y>0 26164 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26165} { 26166 6 106 206 306 106 6 206 6 - - 26167 12 112 212 312 112 12 212 12 - - 26168 18 118 218 318 118 18 218 18 - - 26169 24 124 224 324 124 24 224 24 - - 26170 30 130 230 330 130 30 230 30 330 30 26171 36 136 236 336 136 36 236 36 - - 26172 42 142 242 342 142 42 242 42 - - 26173 48 148 248 348 148 48 248 48 - - 26174 54 154 254 354 154 54 254 54 - - 26175 60 160 260 360 160 60 260 60 360 60 26176 66 166 266 366 166 66 266 66 - - 26177 72 172 272 372 172 72 272 72 - - 26178 78 178 278 378 178 78 278 78 - - 26179 84 184 284 384 184 84 284 84 - - 26180 90 190 290 390 190 90 290 90 390 90 26181} 26182do_execsql_test joinD-895 { 26183 SELECT t1.*, t2.*, t3.*, t4.* 26184 FROM t1 RIGHT JOIN t2 ON t1.b=t2.b 26185 FULL JOIN t3 ON t1.c=t3.c 26186 FULL JOIN t4 ON t1.d=t4.d 26187 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 26188 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26189} { 26190 30 130 230 330 130 30 230 30 330 30 26191 60 160 260 360 160 60 260 60 360 60 26192 90 190 290 390 190 90 290 90 390 90 26193} 26194do_execsql_test joinD-896 { 26195 SELECT t1.*, t2.*, t3.*, t4.* 26196 FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0 26197 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 26198 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 26199 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26200} { 26201 2 102 202 302 102 2 - - - - 26202 4 104 204 304 104 4 - - - - 26203 6 106 206 306 106 6 206 6 - - 26204 8 108 208 308 108 8 - - - - 26205 10 110 210 310 110 10 - - 310 10 26206 12 112 212 312 112 12 212 12 - - 26207 14 114 214 314 114 14 - - - - 26208 16 116 216 316 116 16 - - - - 26209 18 118 218 318 118 18 218 18 - - 26210 20 120 220 320 120 20 - - 320 20 26211 22 122 222 322 122 22 - - - - 26212 24 124 224 324 124 24 224 24 - - 26213 26 126 226 326 126 26 - - - - 26214 28 128 228 328 128 28 - - - - 26215 30 130 230 330 130 30 230 30 330 30 26216 32 132 232 332 132 32 - - - - 26217 34 134 234 334 134 34 - - - - 26218 36 136 236 336 136 36 236 36 - - 26219 38 138 238 338 138 38 - - - - 26220 40 140 240 340 140 40 - - 340 40 26221 42 142 242 342 142 42 242 42 - - 26222 44 144 244 344 144 44 - - - - 26223 46 146 246 346 146 46 - - - - 26224 48 148 248 348 148 48 248 48 - - 26225 50 150 250 350 150 50 - - 350 50 26226 52 152 252 352 152 52 - - - - 26227 54 154 254 354 154 54 254 54 - - 26228 56 156 256 356 156 56 - - - - 26229 58 158 258 358 158 58 - - - - 26230 60 160 260 360 160 60 260 60 360 60 26231 62 162 262 362 162 62 - - - - 26232 64 164 264 364 164 64 - - - - 26233 66 166 266 366 166 66 266 66 - - 26234 68 168 268 368 168 68 - - - - 26235 70 170 270 370 170 70 - - 370 70 26236 72 172 272 372 172 72 272 72 - - 26237 74 174 274 374 174 74 - - - - 26238 76 176 276 376 176 76 - - - - 26239 78 178 278 378 178 78 278 78 - - 26240 80 180 280 380 180 80 - - 380 80 26241 82 182 282 382 182 82 - - - - 26242 84 184 284 384 184 84 284 84 - - 26243 86 186 286 386 186 86 - - - - 26244 88 188 288 388 188 88 - - - - 26245 90 190 290 390 190 90 290 90 390 90 26246 92 192 292 392 192 92 - - - - 26247 94 194 294 394 194 94 - - - - 26248 - - - - 100 0 - - - - 26249 - - - - - - 200 0 - - 26250 - - - - - - 203 3 - - 26251 - - - - - - 209 9 - - 26252 - - - - - - 215 15 - - 26253 - - - - - - 221 21 - - 26254 - - - - - - 227 27 - - 26255 - - - - - - 233 33 - - 26256 - - - - - - 239 39 - - 26257 - - - - - - 245 45 - - 26258 - - - - - - 251 51 - - 26259 - - - - - - 257 57 - - 26260 - - - - - - 263 63 - - 26261 - - - - - - 269 69 - - 26262 - - - - - - 275 75 - - 26263 - - - - - - 281 81 - - 26264 - - - - - - 287 87 - - 26265 - - - - - - 293 93 - - 26266 - - - - - - - - 300 0 26267 - - - - - - - - 305 5 26268 - - - - - - - - 315 15 26269 - - - - - - - - 325 25 26270 - - - - - - - - 335 35 26271 - - - - - - - - 345 45 26272 - - - - - - - - 355 55 26273 - - - - - - - - 365 65 26274 - - - - - - - - 375 75 26275 - - - - - - - - 385 85 26276 - - - - - - - - 395 95 26277} 26278do_execsql_test joinD-897 { 26279 SELECT t1.*, t2.*, t3.*, t4.* 26280 FROM t1 RIGHT JOIN t2 ON t2.x>0 26281 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 26282 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 26283 WHERE t1.b IS NOT DISTINCT FROM t2.b 26284 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26285} { 26286 2 102 202 302 102 2 - - - - 26287 4 104 204 304 104 4 - - - - 26288 6 106 206 306 106 6 206 6 - - 26289 8 108 208 308 108 8 - - - - 26290 10 110 210 310 110 10 - - 310 10 26291 12 112 212 312 112 12 212 12 - - 26292 14 114 214 314 114 14 - - - - 26293 16 116 216 316 116 16 - - - - 26294 18 118 218 318 118 18 218 18 - - 26295 20 120 220 320 120 20 - - 320 20 26296 22 122 222 322 122 22 - - - - 26297 24 124 224 324 124 24 224 24 - - 26298 26 126 226 326 126 26 - - - - 26299 28 128 228 328 128 28 - - - - 26300 30 130 230 330 130 30 230 30 330 30 26301 32 132 232 332 132 32 - - - - 26302 34 134 234 334 134 34 - - - - 26303 36 136 236 336 136 36 236 36 - - 26304 38 138 238 338 138 38 - - - - 26305 40 140 240 340 140 40 - - 340 40 26306 42 142 242 342 142 42 242 42 - - 26307 44 144 244 344 144 44 - - - - 26308 46 146 246 346 146 46 - - - - 26309 48 148 248 348 148 48 248 48 - - 26310 50 150 250 350 150 50 - - 350 50 26311 52 152 252 352 152 52 - - - - 26312 54 154 254 354 154 54 254 54 - - 26313 56 156 256 356 156 56 - - - - 26314 58 158 258 358 158 58 - - - - 26315 60 160 260 360 160 60 260 60 360 60 26316 62 162 262 362 162 62 - - - - 26317 64 164 264 364 164 64 - - - - 26318 66 166 266 366 166 66 266 66 - - 26319 68 168 268 368 168 68 - - - - 26320 70 170 270 370 170 70 - - 370 70 26321 72 172 272 372 172 72 272 72 - - 26322 74 174 274 374 174 74 - - - - 26323 76 176 276 376 176 76 - - - - 26324 78 178 278 378 178 78 278 78 - - 26325 80 180 280 380 180 80 - - 380 80 26326 82 182 282 382 182 82 - - - - 26327 84 184 284 384 184 84 284 84 - - 26328 86 186 286 386 186 86 - - - - 26329 88 188 288 388 188 88 - - - - 26330 90 190 290 390 190 90 290 90 390 90 26331 92 192 292 392 192 92 - - - - 26332 94 194 294 394 194 94 - - - - 26333 - - - - - - 200 0 - - 26334 - - - - - - - - 300 0 26335} 26336do_execsql_test joinD-898 { 26337 SELECT t1.*, t2.*, t3.*, t4.* 26338 FROM t1 RIGHT JOIN t2 ON t2.x>0 26339 FULL JOIN t3 ON t3.y>0 26340 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 26341 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c 26342 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26343} { 26344 6 106 206 306 106 6 206 6 - - 26345 12 112 212 312 112 12 212 12 - - 26346 18 118 218 318 118 18 218 18 - - 26347 24 124 224 324 124 24 224 24 - - 26348 30 130 230 330 130 30 230 30 330 30 26349 36 136 236 336 136 36 236 36 - - 26350 42 142 242 342 142 42 242 42 - - 26351 48 148 248 348 148 48 248 48 - - 26352 54 154 254 354 154 54 254 54 - - 26353 60 160 260 360 160 60 260 60 360 60 26354 66 166 266 366 166 66 266 66 - - 26355 72 172 272 372 172 72 272 72 - - 26356 78 178 278 378 178 78 278 78 - - 26357 84 184 284 384 184 84 284 84 - - 26358 90 190 290 390 190 90 290 90 390 90 26359} 26360do_execsql_test joinD-899 { 26361 SELECT t1.*, t2.*, t3.*, t4.* 26362 FROM t1 RIGHT JOIN t2 ON t2.x>0 26363 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 26364 FULL JOIN t4 ON t4.z>0 26365 WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d 26366 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26367} { 26368 10 110 210 310 110 10 - - 310 10 26369 20 120 220 320 120 20 - - 320 20 26370 30 130 230 330 130 30 230 30 330 30 26371 40 140 240 340 140 40 - - 340 40 26372 50 150 250 350 150 50 - - 350 50 26373 60 160 260 360 160 60 260 60 360 60 26374 70 170 270 370 170 70 - - 370 70 26375 80 180 280 380 180 80 - - 380 80 26376 90 190 290 390 190 90 290 90 390 90 26377} 26378do_execsql_test joinD-900 { 26379 SELECT t1.*, t2.*, t3.*, t4.* 26380 FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0 26381 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 26382 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 26383 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26384} { 26385 2 102 202 302 102 2 - - - - 26386 4 104 204 304 104 4 - - - - 26387 6 106 206 306 106 6 206 6 - - 26388 8 108 208 308 108 8 - - - - 26389 10 110 210 310 110 10 - - 310 10 26390 12 112 212 312 112 12 212 12 - - 26391 14 114 214 314 114 14 - - - - 26392 16 116 216 316 116 16 - - - - 26393 18 118 218 318 118 18 218 18 - - 26394 20 120 220 320 120 20 - - 320 20 26395 22 122 222 322 122 22 - - - - 26396 24 124 224 324 124 24 224 24 - - 26397 26 126 226 326 126 26 - - - - 26398 28 128 228 328 128 28 - - - - 26399 30 130 230 330 130 30 230 30 330 30 26400 32 132 232 332 132 32 - - - - 26401 34 134 234 334 134 34 - - - - 26402 36 136 236 336 136 36 236 36 - - 26403 38 138 238 338 138 38 - - - - 26404 40 140 240 340 140 40 - - 340 40 26405 42 142 242 342 142 42 242 42 - - 26406 44 144 244 344 144 44 - - - - 26407 46 146 246 346 146 46 - - - - 26408 48 148 248 348 148 48 248 48 - - 26409 50 150 250 350 150 50 - - 350 50 26410 52 152 252 352 152 52 - - - - 26411 54 154 254 354 154 54 254 54 - - 26412 56 156 256 356 156 56 - - - - 26413 58 158 258 358 158 58 - - - - 26414 60 160 260 360 160 60 260 60 360 60 26415 62 162 262 362 162 62 - - - - 26416 64 164 264 364 164 64 - - - - 26417 66 166 266 366 166 66 266 66 - - 26418 68 168 268 368 168 68 - - - - 26419 70 170 270 370 170 70 - - 370 70 26420 72 172 272 372 172 72 272 72 - - 26421 74 174 274 374 174 74 - - - - 26422 76 176 276 376 176 76 - - - - 26423 78 178 278 378 178 78 278 78 - - 26424 80 180 280 380 180 80 - - 380 80 26425 82 182 282 382 182 82 - - - - 26426 84 184 284 384 184 84 284 84 - - 26427 86 186 286 386 186 86 - - - - 26428 88 188 288 388 188 88 - - - - 26429 90 190 290 390 190 90 290 90 390 90 26430 92 192 292 392 192 92 - - - - 26431 94 194 294 394 194 94 - - - - 26432 - - - - 100 0 - - - - 26433 - - - - - - 200 0 - - 26434 - - - - - - 203 3 - - 26435 - - - - - - 209 9 - - 26436 - - - - - - 215 15 - - 26437 - - - - - - 221 21 - - 26438 - - - - - - 227 27 - - 26439 - - - - - - 233 33 - - 26440 - - - - - - 239 39 - - 26441 - - - - - - 245 45 - - 26442 - - - - - - 251 51 - - 26443 - - - - - - 257 57 - - 26444 - - - - - - 263 63 - - 26445 - - - - - - 269 69 - - 26446 - - - - - - 275 75 - - 26447 - - - - - - 281 81 - - 26448 - - - - - - 287 87 - - 26449 - - - - - - 293 93 - - 26450 - - - - - - - - 300 0 26451 - - - - - - - - 305 5 26452 - - - - - - - - 315 15 26453 - - - - - - - - 325 25 26454 - - - - - - - - 335 35 26455 - - - - - - - - 345 45 26456 - - - - - - - - 355 55 26457 - - - - - - - - 365 65 26458 - - - - - - - - 375 75 26459 - - - - - - - - 385 85 26460 - - - - - - - - 395 95 26461} 26462do_execsql_test joinD-901 { 26463 SELECT t1.*, t2.*, t3.*, t4.* 26464 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26465 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26466 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 26467 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26468} { 26469 15 115 215 315 - - 215 15 315 15 26470 30 130 230 330 130 30 230 30 330 30 26471 45 145 245 345 - - 245 45 345 45 26472 60 160 260 360 160 60 260 60 360 60 26473 75 175 275 375 - - 275 75 375 75 26474 90 190 290 390 190 90 290 90 390 90 26475} 26476do_execsql_test joinD-902 { 26477 SELECT t1.*, t2.*, t3.*, t4.* 26478 FROM t1 FULL JOIN t2 ON t1.b=t2.b 26479 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26480 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 26481 WHERE t2.x>0 26482 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26483} { 26484 30 130 230 330 130 30 230 30 330 30 26485 60 160 260 360 160 60 260 60 360 60 26486 90 190 290 390 190 90 290 90 390 90 26487} 26488do_execsql_test joinD-903 { 26489 SELECT t1.*, t2.*, t3.*, t4.* 26490 FROM t1 FULL JOIN t2 ON t1.b=t2.b 26491 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26492 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 26493 WHERE (t2.x>0 OR t2.x IS NULL) 26494 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26495} { 26496 15 115 215 315 - - 215 15 315 15 26497 30 130 230 330 130 30 230 30 330 30 26498 45 145 245 345 - - 245 45 345 45 26499 60 160 260 360 160 60 260 60 360 60 26500 75 175 275 375 - - 275 75 375 75 26501 90 190 290 390 190 90 290 90 390 90 26502} 26503do_execsql_test joinD-904 { 26504 SELECT t1.*, t2.*, t3.*, t4.* 26505 FROM t1 FULL JOIN t2 ON true 26506 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26507 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 26508 WHERE t1.b=t2.b AND t2.x>0 26509 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26510} { 26511 30 130 230 330 130 30 230 30 330 30 26512 60 160 260 360 160 60 260 60 360 60 26513 90 190 290 390 190 90 290 90 390 90 26514} 26515do_execsql_test joinD-905 { 26516 SELECT t1.*, t2.*, t3.*, t4.* 26517 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26518 INNER JOIN t3 ON t1.c=t3.c 26519 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 26520 WHERE t3.y>0 26521 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26522} { 26523 15 115 215 315 - - 215 15 315 15 26524 30 130 230 330 130 30 230 30 330 30 26525 45 145 245 345 - - 245 45 345 45 26526 60 160 260 360 160 60 260 60 360 60 26527 75 175 275 375 - - 275 75 375 75 26528 90 190 290 390 190 90 290 90 390 90 26529} 26530do_execsql_test joinD-906 { 26531 SELECT t1.*, t2.*, t3.*, t4.* 26532 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26533 INNER JOIN t3 ON t1.c=t3.c 26534 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 26535 WHERE t3.y>0 OR t3.y IS NULL 26536 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26537} { 26538 15 115 215 315 - - 215 15 315 15 26539 30 130 230 330 130 30 230 30 330 30 26540 45 145 245 345 - - 245 45 345 45 26541 60 160 260 360 160 60 260 60 360 60 26542 75 175 275 375 - - 275 75 375 75 26543 90 190 290 390 190 90 290 90 390 90 26544} 26545do_execsql_test joinD-907 { 26546 SELECT t1.*, t2.*, t3.*, t4.* 26547 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26548 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26549 INNER JOIN t4 ON t1.d=t4.d 26550 WHERE t4.z>0 26551 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26552} { 26553 15 115 215 315 - - 215 15 315 15 26554 30 130 230 330 130 30 230 30 330 30 26555 45 145 245 345 - - 245 45 345 45 26556 60 160 260 360 160 60 260 60 360 60 26557 75 175 275 375 - - 275 75 375 75 26558 90 190 290 390 190 90 290 90 390 90 26559} 26560do_execsql_test joinD-908 { 26561 SELECT t1.*, t2.*, t3.*, t4.* 26562 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26563 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26564 INNER JOIN t4 ON t1.d=t4.d 26565 WHERE t4.z IS NULL OR t4.z>0 26566 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26567} { 26568 15 115 215 315 - - 215 15 315 15 26569 30 130 230 330 130 30 230 30 330 30 26570 45 145 245 345 - - 245 45 345 45 26571 60 160 260 360 160 60 260 60 360 60 26572 75 175 275 375 - - 275 75 375 75 26573 90 190 290 390 190 90 290 90 390 90 26574} 26575do_execsql_test joinD-909 { 26576 SELECT t1.*, t2.*, t3.*, t4.* 26577 FROM t1 FULL JOIN t2 ON t1.b=t2.b 26578 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26579 INNER JOIN t4 ON t1.d=t4.d 26580 WHERE t2.x>0 AND t4.z>0 26581 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26582} { 26583 30 130 230 330 130 30 230 30 330 30 26584 60 160 260 360 160 60 260 60 360 60 26585 90 190 290 390 190 90 290 90 390 90 26586} 26587do_execsql_test joinD-910 { 26588 SELECT t1.*, t2.*, t3.*, t4.* 26589 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26590 INNER JOIN t3 ON t1.c=t3.c 26591 INNER JOIN t4 ON t1.d=t4.d 26592 WHERE t4.z>0 AND t3.y>0 26593 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26594} { 26595 15 115 215 315 - - 215 15 315 15 26596 30 130 230 330 130 30 230 30 330 30 26597 45 145 245 345 - - 245 45 345 45 26598 60 160 260 360 160 60 260 60 360 60 26599 75 175 275 375 - - 275 75 375 75 26600 90 190 290 390 190 90 290 90 390 90 26601} 26602do_execsql_test joinD-911 { 26603 SELECT t1.*, t2.*, t3.*, t4.* 26604 FROM t1 FULL JOIN t2 ON t1.b=t2.b 26605 INNER JOIN t3 ON t1.c=t3.c 26606 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 26607 WHERE t2.x>0 AND t3.y>0 26608 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26609} { 26610 30 130 230 330 130 30 230 30 330 30 26611 60 160 260 360 160 60 260 60 360 60 26612 90 190 290 390 190 90 290 90 390 90 26613} 26614do_execsql_test joinD-912 { 26615 SELECT t1.*, t2.*, t3.*, t4.* 26616 FROM t1 FULL JOIN t2 ON t1.b=t2.b 26617 INNER JOIN t3 ON t1.c=t3.c 26618 INNER JOIN t4 ON t1.d=t4.d 26619 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 26620 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26621} { 26622 30 130 230 330 130 30 230 30 330 30 26623 60 160 260 360 160 60 260 60 360 60 26624 90 190 290 390 190 90 290 90 390 90 26625} 26626do_execsql_test joinD-913 { 26627 SELECT t1.*, t2.*, t3.*, t4.* 26628 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 26629 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 26630 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 26631 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26632} { 26633 15 115 215 315 - - 215 15 315 15 26634 30 130 230 330 130 30 230 30 330 30 26635 45 145 245 345 - - 245 45 345 45 26636 60 160 260 360 160 60 260 60 360 60 26637 75 175 275 375 - - 275 75 375 75 26638 90 190 290 390 190 90 290 90 390 90 26639} 26640do_execsql_test joinD-914 { 26641 SELECT t1.*, t2.*, t3.*, t4.* 26642 FROM t1 FULL JOIN t2 ON t2.x>0 26643 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 26644 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 26645 WHERE t1.b = t2.b 26646 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26647} { 26648 30 130 230 330 130 30 230 30 330 30 26649 60 160 260 360 160 60 260 60 360 60 26650 90 190 290 390 190 90 290 90 390 90 26651} 26652do_execsql_test joinD-915 { 26653 SELECT t1.*, t2.*, t3.*, t4.* 26654 FROM t1 FULL JOIN t2 ON t2.x>0 26655 INNER JOIN t3 ON t3.y>0 26656 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 26657 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 26658 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26659} { 26660 30 130 230 330 130 30 230 30 330 30 26661 60 160 260 360 160 60 260 60 360 60 26662 90 190 290 390 190 90 290 90 390 90 26663} 26664do_execsql_test joinD-916 { 26665 SELECT t1.*, t2.*, t3.*, t4.* 26666 FROM t1 FULL JOIN t2 ON t2.x>0 26667 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 26668 INNER JOIN t4 ON t4.z>0 26669 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 26670 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26671} { 26672 30 130 230 330 130 30 230 30 330 30 26673 60 160 260 360 160 60 260 60 360 60 26674 90 190 290 390 190 90 290 90 390 90 26675} 26676do_execsql_test joinD-917 { 26677 SELECT t1.*, t2.*, t3.*, t4.* 26678 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26679 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 26680 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 26681 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26682} { 26683 15 115 215 315 - - 215 15 315 15 26684 30 130 230 330 130 30 230 30 330 30 26685 45 145 245 345 - - 245 45 345 45 26686 60 160 260 360 160 60 260 60 360 60 26687 75 175 275 375 - - 275 75 375 75 26688 90 190 290 390 190 90 290 90 390 90 26689} 26690do_execsql_test joinD-918 { 26691 SELECT t1.*, t2.*, t3.*, t4.* 26692 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26693 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26694 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 26695 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26696} { 26697 3 103 203 303 - - 203 3 - - 26698 6 106 206 306 106 6 206 6 - - 26699 9 109 209 309 - - 209 9 - - 26700 12 112 212 312 112 12 212 12 - - 26701 15 115 215 315 - - 215 15 315 15 26702 18 118 218 318 118 18 218 18 - - 26703 21 121 221 321 - - 221 21 - - 26704 24 124 224 324 124 24 224 24 - - 26705 27 127 227 327 - - 227 27 - - 26706 30 130 230 330 130 30 230 30 330 30 26707 33 133 233 333 - - 233 33 - - 26708 36 136 236 336 136 36 236 36 - - 26709 39 139 239 339 - - 239 39 - - 26710 42 142 242 342 142 42 242 42 - - 26711 45 145 245 345 - - 245 45 345 45 26712 48 148 248 348 148 48 248 48 - - 26713 51 151 251 351 - - 251 51 - - 26714 54 154 254 354 154 54 254 54 - - 26715 57 157 257 357 - - 257 57 - - 26716 60 160 260 360 160 60 260 60 360 60 26717 63 163 263 363 - - 263 63 - - 26718 66 166 266 366 166 66 266 66 - - 26719 69 169 269 369 - - 269 69 - - 26720 72 172 272 372 172 72 272 72 - - 26721 75 175 275 375 - - 275 75 375 75 26722 78 178 278 378 178 78 278 78 - - 26723 81 181 281 381 - - 281 81 - - 26724 84 184 284 384 184 84 284 84 - - 26725 87 187 287 387 - - 287 87 - - 26726 90 190 290 390 190 90 290 90 390 90 26727 93 193 293 393 - - 293 93 - - 26728} 26729do_execsql_test joinD-919 { 26730 SELECT t1.*, t2.*, t3.*, t4.* 26731 FROM t1 FULL JOIN t2 ON t1.b=t2.b 26732 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26733 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 26734 WHERE t2.x>0 26735 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26736} { 26737 6 106 206 306 106 6 206 6 - - 26738 12 112 212 312 112 12 212 12 - - 26739 18 118 218 318 118 18 218 18 - - 26740 24 124 224 324 124 24 224 24 - - 26741 30 130 230 330 130 30 230 30 330 30 26742 36 136 236 336 136 36 236 36 - - 26743 42 142 242 342 142 42 242 42 - - 26744 48 148 248 348 148 48 248 48 - - 26745 54 154 254 354 154 54 254 54 - - 26746 60 160 260 360 160 60 260 60 360 60 26747 66 166 266 366 166 66 266 66 - - 26748 72 172 272 372 172 72 272 72 - - 26749 78 178 278 378 178 78 278 78 - - 26750 84 184 284 384 184 84 284 84 - - 26751 90 190 290 390 190 90 290 90 390 90 26752} 26753do_execsql_test joinD-920 { 26754 SELECT t1.*, t2.*, t3.*, t4.* 26755 FROM t1 FULL JOIN t2 ON t1.b=t2.b 26756 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26757 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 26758 WHERE (t2.x>0 OR t2.x IS NULL) 26759 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26760} { 26761 3 103 203 303 - - 203 3 - - 26762 6 106 206 306 106 6 206 6 - - 26763 9 109 209 309 - - 209 9 - - 26764 12 112 212 312 112 12 212 12 - - 26765 15 115 215 315 - - 215 15 315 15 26766 18 118 218 318 118 18 218 18 - - 26767 21 121 221 321 - - 221 21 - - 26768 24 124 224 324 124 24 224 24 - - 26769 27 127 227 327 - - 227 27 - - 26770 30 130 230 330 130 30 230 30 330 30 26771 33 133 233 333 - - 233 33 - - 26772 36 136 236 336 136 36 236 36 - - 26773 39 139 239 339 - - 239 39 - - 26774 42 142 242 342 142 42 242 42 - - 26775 45 145 245 345 - - 245 45 345 45 26776 48 148 248 348 148 48 248 48 - - 26777 51 151 251 351 - - 251 51 - - 26778 54 154 254 354 154 54 254 54 - - 26779 57 157 257 357 - - 257 57 - - 26780 60 160 260 360 160 60 260 60 360 60 26781 63 163 263 363 - - 263 63 - - 26782 66 166 266 366 166 66 266 66 - - 26783 69 169 269 369 - - 269 69 - - 26784 72 172 272 372 172 72 272 72 - - 26785 75 175 275 375 - - 275 75 375 75 26786 78 178 278 378 178 78 278 78 - - 26787 81 181 281 381 - - 281 81 - - 26788 84 184 284 384 184 84 284 84 - - 26789 87 187 287 387 - - 287 87 - - 26790 90 190 290 390 190 90 290 90 390 90 26791 93 193 293 393 - - 293 93 - - 26792} 26793do_execsql_test joinD-921 { 26794 SELECT t1.*, t2.*, t3.*, t4.* 26795 FROM t1 FULL JOIN t2 ON true 26796 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26797 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 26798 WHERE t1.b=t2.b AND t2.x>0 26799 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26800} { 26801 6 106 206 306 106 6 206 6 - - 26802 12 112 212 312 112 12 212 12 - - 26803 18 118 218 318 118 18 218 18 - - 26804 24 124 224 324 124 24 224 24 - - 26805 30 130 230 330 130 30 230 30 330 30 26806 36 136 236 336 136 36 236 36 - - 26807 42 142 242 342 142 42 242 42 - - 26808 48 148 248 348 148 48 248 48 - - 26809 54 154 254 354 154 54 254 54 - - 26810 60 160 260 360 160 60 260 60 360 60 26811 66 166 266 366 166 66 266 66 - - 26812 72 172 272 372 172 72 272 72 - - 26813 78 178 278 378 178 78 278 78 - - 26814 84 184 284 384 184 84 284 84 - - 26815 90 190 290 390 190 90 290 90 390 90 26816} 26817do_execsql_test joinD-922 { 26818 SELECT t1.*, t2.*, t3.*, t4.* 26819 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26820 INNER JOIN t3 ON t1.c=t3.c 26821 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 26822 WHERE t3.y>0 26823 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26824} { 26825 3 103 203 303 - - 203 3 - - 26826 6 106 206 306 106 6 206 6 - - 26827 9 109 209 309 - - 209 9 - - 26828 12 112 212 312 112 12 212 12 - - 26829 15 115 215 315 - - 215 15 315 15 26830 18 118 218 318 118 18 218 18 - - 26831 21 121 221 321 - - 221 21 - - 26832 24 124 224 324 124 24 224 24 - - 26833 27 127 227 327 - - 227 27 - - 26834 30 130 230 330 130 30 230 30 330 30 26835 33 133 233 333 - - 233 33 - - 26836 36 136 236 336 136 36 236 36 - - 26837 39 139 239 339 - - 239 39 - - 26838 42 142 242 342 142 42 242 42 - - 26839 45 145 245 345 - - 245 45 345 45 26840 48 148 248 348 148 48 248 48 - - 26841 51 151 251 351 - - 251 51 - - 26842 54 154 254 354 154 54 254 54 - - 26843 57 157 257 357 - - 257 57 - - 26844 60 160 260 360 160 60 260 60 360 60 26845 63 163 263 363 - - 263 63 - - 26846 66 166 266 366 166 66 266 66 - - 26847 69 169 269 369 - - 269 69 - - 26848 72 172 272 372 172 72 272 72 - - 26849 75 175 275 375 - - 275 75 375 75 26850 78 178 278 378 178 78 278 78 - - 26851 81 181 281 381 - - 281 81 - - 26852 84 184 284 384 184 84 284 84 - - 26853 87 187 287 387 - - 287 87 - - 26854 90 190 290 390 190 90 290 90 390 90 26855 93 193 293 393 - - 293 93 - - 26856} 26857do_execsql_test joinD-923 { 26858 SELECT t1.*, t2.*, t3.*, t4.* 26859 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26860 INNER JOIN t3 ON t1.c=t3.c 26861 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 26862 WHERE t3.y>0 OR t3.y IS NULL 26863 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26864} { 26865 3 103 203 303 - - 203 3 - - 26866 6 106 206 306 106 6 206 6 - - 26867 9 109 209 309 - - 209 9 - - 26868 12 112 212 312 112 12 212 12 - - 26869 15 115 215 315 - - 215 15 315 15 26870 18 118 218 318 118 18 218 18 - - 26871 21 121 221 321 - - 221 21 - - 26872 24 124 224 324 124 24 224 24 - - 26873 27 127 227 327 - - 227 27 - - 26874 30 130 230 330 130 30 230 30 330 30 26875 33 133 233 333 - - 233 33 - - 26876 36 136 236 336 136 36 236 36 - - 26877 39 139 239 339 - - 239 39 - - 26878 42 142 242 342 142 42 242 42 - - 26879 45 145 245 345 - - 245 45 345 45 26880 48 148 248 348 148 48 248 48 - - 26881 51 151 251 351 - - 251 51 - - 26882 54 154 254 354 154 54 254 54 - - 26883 57 157 257 357 - - 257 57 - - 26884 60 160 260 360 160 60 260 60 360 60 26885 63 163 263 363 - - 263 63 - - 26886 66 166 266 366 166 66 266 66 - - 26887 69 169 269 369 - - 269 69 - - 26888 72 172 272 372 172 72 272 72 - - 26889 75 175 275 375 - - 275 75 375 75 26890 78 178 278 378 178 78 278 78 - - 26891 81 181 281 381 - - 281 81 - - 26892 84 184 284 384 184 84 284 84 - - 26893 87 187 287 387 - - 287 87 - - 26894 90 190 290 390 190 90 290 90 390 90 26895 93 193 293 393 - - 293 93 - - 26896} 26897do_execsql_test joinD-924 { 26898 SELECT t1.*, t2.*, t3.*, t4.* 26899 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26900 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26901 LEFT JOIN t4 ON t1.d=t4.d 26902 WHERE t4.z>0 26903 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26904} { 26905 15 115 215 315 - - 215 15 315 15 26906 30 130 230 330 130 30 230 30 330 30 26907 45 145 245 345 - - 245 45 345 45 26908 60 160 260 360 160 60 260 60 360 60 26909 75 175 275 375 - - 275 75 375 75 26910 90 190 290 390 190 90 290 90 390 90 26911} 26912do_execsql_test joinD-925 { 26913 SELECT t1.*, t2.*, t3.*, t4.* 26914 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26915 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26916 LEFT JOIN t4 ON t1.d=t4.d 26917 WHERE t4.z IS NULL OR t4.z>0 26918 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26919} { 26920 3 103 203 303 - - 203 3 - - 26921 6 106 206 306 106 6 206 6 - - 26922 9 109 209 309 - - 209 9 - - 26923 12 112 212 312 112 12 212 12 - - 26924 15 115 215 315 - - 215 15 315 15 26925 18 118 218 318 118 18 218 18 - - 26926 21 121 221 321 - - 221 21 - - 26927 24 124 224 324 124 24 224 24 - - 26928 27 127 227 327 - - 227 27 - - 26929 30 130 230 330 130 30 230 30 330 30 26930 33 133 233 333 - - 233 33 - - 26931 36 136 236 336 136 36 236 36 - - 26932 39 139 239 339 - - 239 39 - - 26933 42 142 242 342 142 42 242 42 - - 26934 45 145 245 345 - - 245 45 345 45 26935 48 148 248 348 148 48 248 48 - - 26936 51 151 251 351 - - 251 51 - - 26937 54 154 254 354 154 54 254 54 - - 26938 57 157 257 357 - - 257 57 - - 26939 60 160 260 360 160 60 260 60 360 60 26940 63 163 263 363 - - 263 63 - - 26941 66 166 266 366 166 66 266 66 - - 26942 69 169 269 369 - - 269 69 - - 26943 72 172 272 372 172 72 272 72 - - 26944 75 175 275 375 - - 275 75 375 75 26945 78 178 278 378 178 78 278 78 - - 26946 81 181 281 381 - - 281 81 - - 26947 84 184 284 384 184 84 284 84 - - 26948 87 187 287 387 - - 287 87 - - 26949 90 190 290 390 190 90 290 90 390 90 26950 93 193 293 393 - - 293 93 - - 26951} 26952do_execsql_test joinD-926 { 26953 SELECT t1.*, t2.*, t3.*, t4.* 26954 FROM t1 FULL JOIN t2 ON t1.b=t2.b 26955 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 26956 LEFT JOIN t4 ON t1.d=t4.d 26957 WHERE t2.x>0 AND t4.z>0 26958 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26959} { 26960 30 130 230 330 130 30 230 30 330 30 26961 60 160 260 360 160 60 260 60 360 60 26962 90 190 290 390 190 90 290 90 390 90 26963} 26964do_execsql_test joinD-927 { 26965 SELECT t1.*, t2.*, t3.*, t4.* 26966 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 26967 INNER JOIN t3 ON t1.c=t3.c 26968 LEFT JOIN t4 ON t1.d=t4.d 26969 WHERE t4.z>0 AND t3.y>0 26970 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26971} { 26972 15 115 215 315 - - 215 15 315 15 26973 30 130 230 330 130 30 230 30 330 30 26974 45 145 245 345 - - 245 45 345 45 26975 60 160 260 360 160 60 260 60 360 60 26976 75 175 275 375 - - 275 75 375 75 26977 90 190 290 390 190 90 290 90 390 90 26978} 26979do_execsql_test joinD-928 { 26980 SELECT t1.*, t2.*, t3.*, t4.* 26981 FROM t1 FULL JOIN t2 ON t1.b=t2.b 26982 INNER JOIN t3 ON t1.c=t3.c 26983 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 26984 WHERE t2.x>0 AND t3.y>0 26985 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 26986} { 26987 6 106 206 306 106 6 206 6 - - 26988 12 112 212 312 112 12 212 12 - - 26989 18 118 218 318 118 18 218 18 - - 26990 24 124 224 324 124 24 224 24 - - 26991 30 130 230 330 130 30 230 30 330 30 26992 36 136 236 336 136 36 236 36 - - 26993 42 142 242 342 142 42 242 42 - - 26994 48 148 248 348 148 48 248 48 - - 26995 54 154 254 354 154 54 254 54 - - 26996 60 160 260 360 160 60 260 60 360 60 26997 66 166 266 366 166 66 266 66 - - 26998 72 172 272 372 172 72 272 72 - - 26999 78 178 278 378 178 78 278 78 - - 27000 84 184 284 384 184 84 284 84 - - 27001 90 190 290 390 190 90 290 90 390 90 27002} 27003do_execsql_test joinD-929 { 27004 SELECT t1.*, t2.*, t3.*, t4.* 27005 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27006 INNER JOIN t3 ON t1.c=t3.c 27007 LEFT JOIN t4 ON t1.d=t4.d 27008 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 27009 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27010} { 27011 30 130 230 330 130 30 230 30 330 30 27012 60 160 260 360 160 60 260 60 360 60 27013 90 190 290 390 190 90 290 90 390 90 27014} 27015do_execsql_test joinD-930 { 27016 SELECT t1.*, t2.*, t3.*, t4.* 27017 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 27018 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 27019 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 27020 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27021} { 27022 3 103 203 303 - - 203 3 - - 27023 6 106 206 306 106 6 206 6 - - 27024 9 109 209 309 - - 209 9 - - 27025 12 112 212 312 112 12 212 12 - - 27026 15 115 215 315 - - 215 15 315 15 27027 18 118 218 318 118 18 218 18 - - 27028 21 121 221 321 - - 221 21 - - 27029 24 124 224 324 124 24 224 24 - - 27030 27 127 227 327 - - 227 27 - - 27031 30 130 230 330 130 30 230 30 330 30 27032 33 133 233 333 - - 233 33 - - 27033 36 136 236 336 136 36 236 36 - - 27034 39 139 239 339 - - 239 39 - - 27035 42 142 242 342 142 42 242 42 - - 27036 45 145 245 345 - - 245 45 345 45 27037 48 148 248 348 148 48 248 48 - - 27038 51 151 251 351 - - 251 51 - - 27039 54 154 254 354 154 54 254 54 - - 27040 57 157 257 357 - - 257 57 - - 27041 60 160 260 360 160 60 260 60 360 60 27042 63 163 263 363 - - 263 63 - - 27043 66 166 266 366 166 66 266 66 - - 27044 69 169 269 369 - - 269 69 - - 27045 72 172 272 372 172 72 272 72 - - 27046 75 175 275 375 - - 275 75 375 75 27047 78 178 278 378 178 78 278 78 - - 27048 81 181 281 381 - - 281 81 - - 27049 84 184 284 384 184 84 284 84 - - 27050 87 187 287 387 - - 287 87 - - 27051 90 190 290 390 190 90 290 90 390 90 27052 93 193 293 393 - - 293 93 - - 27053} 27054do_execsql_test joinD-931 { 27055 SELECT t1.*, t2.*, t3.*, t4.* 27056 FROM t1 FULL JOIN t2 ON t2.x>0 27057 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 27058 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 27059 WHERE t1.b = t2.b 27060 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27061} { 27062 6 106 206 306 106 6 206 6 - - 27063 12 112 212 312 112 12 212 12 - - 27064 18 118 218 318 118 18 218 18 - - 27065 24 124 224 324 124 24 224 24 - - 27066 30 130 230 330 130 30 230 30 330 30 27067 36 136 236 336 136 36 236 36 - - 27068 42 142 242 342 142 42 242 42 - - 27069 48 148 248 348 148 48 248 48 - - 27070 54 154 254 354 154 54 254 54 - - 27071 60 160 260 360 160 60 260 60 360 60 27072 66 166 266 366 166 66 266 66 - - 27073 72 172 272 372 172 72 272 72 - - 27074 78 178 278 378 178 78 278 78 - - 27075 84 184 284 384 184 84 284 84 - - 27076 90 190 290 390 190 90 290 90 390 90 27077} 27078do_execsql_test joinD-932 { 27079 SELECT t1.*, t2.*, t3.*, t4.* 27080 FROM t1 FULL JOIN t2 ON t2.x>0 27081 INNER JOIN t3 ON t3.y>0 27082 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 27083 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 27084 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27085} { 27086 6 106 206 306 106 6 206 6 - - 27087 12 112 212 312 112 12 212 12 - - 27088 18 118 218 318 118 18 218 18 - - 27089 24 124 224 324 124 24 224 24 - - 27090 30 130 230 330 130 30 230 30 330 30 27091 36 136 236 336 136 36 236 36 - - 27092 42 142 242 342 142 42 242 42 - - 27093 48 148 248 348 148 48 248 48 - - 27094 54 154 254 354 154 54 254 54 - - 27095 60 160 260 360 160 60 260 60 360 60 27096 66 166 266 366 166 66 266 66 - - 27097 72 172 272 372 172 72 272 72 - - 27098 78 178 278 378 178 78 278 78 - - 27099 84 184 284 384 184 84 284 84 - - 27100 90 190 290 390 190 90 290 90 390 90 27101} 27102do_execsql_test joinD-933 { 27103 SELECT t1.*, t2.*, t3.*, t4.* 27104 FROM t1 FULL JOIN t2 ON t2.x>0 27105 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 27106 LEFT JOIN t4 ON t4.z>0 27107 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 27108 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27109} { 27110 30 130 230 330 130 30 230 30 330 30 27111 60 160 260 360 160 60 260 60 360 60 27112 90 190 290 390 190 90 290 90 390 90 27113} 27114do_execsql_test joinD-934 { 27115 SELECT t1.*, t2.*, t3.*, t4.* 27116 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27117 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 27118 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 27119 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27120} { 27121 3 103 203 303 - - 203 3 - - 27122 6 106 206 306 106 6 206 6 - - 27123 9 109 209 309 - - 209 9 - - 27124 12 112 212 312 112 12 212 12 - - 27125 15 115 215 315 - - 215 15 315 15 27126 18 118 218 318 118 18 218 18 - - 27127 21 121 221 321 - - 221 21 - - 27128 24 124 224 324 124 24 224 24 - - 27129 27 127 227 327 - - 227 27 - - 27130 30 130 230 330 130 30 230 30 330 30 27131 33 133 233 333 - - 233 33 - - 27132 36 136 236 336 136 36 236 36 - - 27133 39 139 239 339 - - 239 39 - - 27134 42 142 242 342 142 42 242 42 - - 27135 45 145 245 345 - - 245 45 345 45 27136 48 148 248 348 148 48 248 48 - - 27137 51 151 251 351 - - 251 51 - - 27138 54 154 254 354 154 54 254 54 - - 27139 57 157 257 357 - - 257 57 - - 27140 60 160 260 360 160 60 260 60 360 60 27141 63 163 263 363 - - 263 63 - - 27142 66 166 266 366 166 66 266 66 - - 27143 69 169 269 369 - - 269 69 - - 27144 72 172 272 372 172 72 272 72 - - 27145 75 175 275 375 - - 275 75 375 75 27146 78 178 278 378 178 78 278 78 - - 27147 81 181 281 381 - - 281 81 - - 27148 84 184 284 384 184 84 284 84 - - 27149 87 187 287 387 - - 287 87 - - 27150 90 190 290 390 190 90 290 90 390 90 27151 93 193 293 393 - - 293 93 - - 27152} 27153do_execsql_test joinD-935 { 27154 SELECT t1.*, t2.*, t3.*, t4.* 27155 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27156 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27157 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 27158 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27159} { 27160 15 115 215 315 - - 215 15 315 15 27161 30 130 230 330 130 30 230 30 330 30 27162 45 145 245 345 - - 245 45 345 45 27163 60 160 260 360 160 60 260 60 360 60 27164 75 175 275 375 - - 275 75 375 75 27165 90 190 290 390 190 90 290 90 390 90 27166 - - - - - - - - 300 0 27167 - - - - - - - - 305 5 27168 - - - - - - - - 310 10 27169 - - - - - - - - 320 20 27170 - - - - - - - - 325 25 27171 - - - - - - - - 335 35 27172 - - - - - - - - 340 40 27173 - - - - - - - - 350 50 27174 - - - - - - - - 355 55 27175 - - - - - - - - 365 65 27176 - - - - - - - - 370 70 27177 - - - - - - - - 380 80 27178 - - - - - - - - 385 85 27179 - - - - - - - - 395 95 27180} 27181do_execsql_test joinD-936 { 27182 SELECT t1.*, t2.*, t3.*, t4.* 27183 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27184 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27185 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 27186 WHERE t2.x>0 27187 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27188} { 27189 30 130 230 330 130 30 230 30 330 30 27190 60 160 260 360 160 60 260 60 360 60 27191 90 190 290 390 190 90 290 90 390 90 27192} 27193do_execsql_test joinD-937 { 27194 SELECT t1.*, t2.*, t3.*, t4.* 27195 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27196 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27197 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 27198 WHERE (t2.x>0 OR t2.x IS NULL) 27199 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27200} { 27201 15 115 215 315 - - 215 15 315 15 27202 30 130 230 330 130 30 230 30 330 30 27203 45 145 245 345 - - 245 45 345 45 27204 60 160 260 360 160 60 260 60 360 60 27205 75 175 275 375 - - 275 75 375 75 27206 90 190 290 390 190 90 290 90 390 90 27207 - - - - - - - - 300 0 27208 - - - - - - - - 305 5 27209 - - - - - - - - 310 10 27210 - - - - - - - - 320 20 27211 - - - - - - - - 325 25 27212 - - - - - - - - 335 35 27213 - - - - - - - - 340 40 27214 - - - - - - - - 350 50 27215 - - - - - - - - 355 55 27216 - - - - - - - - 365 65 27217 - - - - - - - - 370 70 27218 - - - - - - - - 380 80 27219 - - - - - - - - 385 85 27220 - - - - - - - - 395 95 27221} 27222do_execsql_test joinD-938 { 27223 SELECT t1.*, t2.*, t3.*, t4.* 27224 FROM t1 FULL JOIN t2 ON true 27225 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27226 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 27227 WHERE t1.b=t2.b AND t2.x>0 27228 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27229} { 27230 30 130 230 330 130 30 230 30 330 30 27231 60 160 260 360 160 60 260 60 360 60 27232 90 190 290 390 190 90 290 90 390 90 27233} 27234do_execsql_test joinD-939 { 27235 SELECT t1.*, t2.*, t3.*, t4.* 27236 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27237 INNER JOIN t3 ON t1.c=t3.c 27238 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 27239 WHERE t3.y>0 27240 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27241} { 27242 15 115 215 315 - - 215 15 315 15 27243 30 130 230 330 130 30 230 30 330 30 27244 45 145 245 345 - - 245 45 345 45 27245 60 160 260 360 160 60 260 60 360 60 27246 75 175 275 375 - - 275 75 375 75 27247 90 190 290 390 190 90 290 90 390 90 27248} 27249do_execsql_test joinD-940 { 27250 SELECT t1.*, t2.*, t3.*, t4.* 27251 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27252 INNER JOIN t3 ON t1.c=t3.c 27253 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 27254 WHERE t3.y>0 OR t3.y IS NULL 27255 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27256} { 27257 15 115 215 315 - - 215 15 315 15 27258 30 130 230 330 130 30 230 30 330 30 27259 45 145 245 345 - - 245 45 345 45 27260 60 160 260 360 160 60 260 60 360 60 27261 75 175 275 375 - - 275 75 375 75 27262 90 190 290 390 190 90 290 90 390 90 27263 - - - - - - - - 300 0 27264 - - - - - - - - 305 5 27265 - - - - - - - - 310 10 27266 - - - - - - - - 320 20 27267 - - - - - - - - 325 25 27268 - - - - - - - - 335 35 27269 - - - - - - - - 340 40 27270 - - - - - - - - 350 50 27271 - - - - - - - - 355 55 27272 - - - - - - - - 365 65 27273 - - - - - - - - 370 70 27274 - - - - - - - - 380 80 27275 - - - - - - - - 385 85 27276 - - - - - - - - 395 95 27277} 27278do_execsql_test joinD-941 { 27279 SELECT t1.*, t2.*, t3.*, t4.* 27280 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27281 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27282 RIGHT JOIN t4 ON t1.d=t4.d 27283 WHERE t4.z>0 27284 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27285} { 27286 15 115 215 315 - - 215 15 315 15 27287 30 130 230 330 130 30 230 30 330 30 27288 45 145 245 345 - - 245 45 345 45 27289 60 160 260 360 160 60 260 60 360 60 27290 75 175 275 375 - - 275 75 375 75 27291 90 190 290 390 190 90 290 90 390 90 27292 - - - - - - - - 305 5 27293 - - - - - - - - 310 10 27294 - - - - - - - - 320 20 27295 - - - - - - - - 325 25 27296 - - - - - - - - 335 35 27297 - - - - - - - - 340 40 27298 - - - - - - - - 350 50 27299 - - - - - - - - 355 55 27300 - - - - - - - - 365 65 27301 - - - - - - - - 370 70 27302 - - - - - - - - 380 80 27303 - - - - - - - - 385 85 27304 - - - - - - - - 395 95 27305} 27306do_execsql_test joinD-942 { 27307 SELECT t1.*, t2.*, t3.*, t4.* 27308 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27309 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27310 RIGHT JOIN t4 ON t1.d=t4.d 27311 WHERE t4.z IS NULL OR t4.z>0 27312 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27313} { 27314 15 115 215 315 - - 215 15 315 15 27315 30 130 230 330 130 30 230 30 330 30 27316 45 145 245 345 - - 245 45 345 45 27317 60 160 260 360 160 60 260 60 360 60 27318 75 175 275 375 - - 275 75 375 75 27319 90 190 290 390 190 90 290 90 390 90 27320 - - - - - - - - 305 5 27321 - - - - - - - - 310 10 27322 - - - - - - - - 320 20 27323 - - - - - - - - 325 25 27324 - - - - - - - - 335 35 27325 - - - - - - - - 340 40 27326 - - - - - - - - 350 50 27327 - - - - - - - - 355 55 27328 - - - - - - - - 365 65 27329 - - - - - - - - 370 70 27330 - - - - - - - - 380 80 27331 - - - - - - - - 385 85 27332 - - - - - - - - 395 95 27333} 27334do_execsql_test joinD-943 { 27335 SELECT t1.*, t2.*, t3.*, t4.* 27336 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27337 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27338 RIGHT JOIN t4 ON t1.d=t4.d 27339 WHERE t2.x>0 AND t4.z>0 27340 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27341} { 27342 30 130 230 330 130 30 230 30 330 30 27343 60 160 260 360 160 60 260 60 360 60 27344 90 190 290 390 190 90 290 90 390 90 27345} 27346do_execsql_test joinD-944 { 27347 SELECT t1.*, t2.*, t3.*, t4.* 27348 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27349 INNER JOIN t3 ON t1.c=t3.c 27350 RIGHT JOIN t4 ON t1.d=t4.d 27351 WHERE t4.z>0 AND t3.y>0 27352 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27353} { 27354 15 115 215 315 - - 215 15 315 15 27355 30 130 230 330 130 30 230 30 330 30 27356 45 145 245 345 - - 245 45 345 45 27357 60 160 260 360 160 60 260 60 360 60 27358 75 175 275 375 - - 275 75 375 75 27359 90 190 290 390 190 90 290 90 390 90 27360} 27361do_execsql_test joinD-945 { 27362 SELECT t1.*, t2.*, t3.*, t4.* 27363 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27364 INNER JOIN t3 ON t1.c=t3.c 27365 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 27366 WHERE t2.x>0 AND t3.y>0 27367 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27368} { 27369 30 130 230 330 130 30 230 30 330 30 27370 60 160 260 360 160 60 260 60 360 60 27371 90 190 290 390 190 90 290 90 390 90 27372} 27373do_execsql_test joinD-946 { 27374 SELECT t1.*, t2.*, t3.*, t4.* 27375 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27376 INNER JOIN t3 ON t1.c=t3.c 27377 RIGHT JOIN t4 ON t1.d=t4.d 27378 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 27379 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27380} { 27381 30 130 230 330 130 30 230 30 330 30 27382 60 160 260 360 160 60 260 60 360 60 27383 90 190 290 390 190 90 290 90 390 90 27384} 27385do_execsql_test joinD-947 { 27386 SELECT t1.*, t2.*, t3.*, t4.* 27387 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 27388 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 27389 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 27390 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27391} { 27392 15 115 215 315 - - 215 15 315 15 27393 30 130 230 330 130 30 230 30 330 30 27394 45 145 245 345 - - 245 45 345 45 27395 60 160 260 360 160 60 260 60 360 60 27396 75 175 275 375 - - 275 75 375 75 27397 90 190 290 390 190 90 290 90 390 90 27398 - - - - - - - - 300 0 27399 - - - - - - - - 305 5 27400 - - - - - - - - 310 10 27401 - - - - - - - - 320 20 27402 - - - - - - - - 325 25 27403 - - - - - - - - 335 35 27404 - - - - - - - - 340 40 27405 - - - - - - - - 350 50 27406 - - - - - - - - 355 55 27407 - - - - - - - - 365 65 27408 - - - - - - - - 370 70 27409 - - - - - - - - 380 80 27410 - - - - - - - - 385 85 27411 - - - - - - - - 395 95 27412} 27413do_execsql_test joinD-948 { 27414 SELECT t1.*, t2.*, t3.*, t4.* 27415 FROM t1 FULL JOIN t2 ON t2.x>0 27416 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 27417 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 27418 WHERE t1.b = t2.b 27419 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27420} { 27421 30 130 230 330 130 30 230 30 330 30 27422 60 160 260 360 160 60 260 60 360 60 27423 90 190 290 390 190 90 290 90 390 90 27424} 27425do_execsql_test joinD-949 { 27426 SELECT t1.*, t2.*, t3.*, t4.* 27427 FROM t1 FULL JOIN t2 ON t2.x>0 27428 INNER JOIN t3 ON t3.y>0 27429 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 27430 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 27431 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27432} { 27433 30 130 230 330 130 30 230 30 330 30 27434 60 160 260 360 160 60 260 60 360 60 27435 90 190 290 390 190 90 290 90 390 90 27436} 27437do_execsql_test joinD-950 { 27438 SELECT t1.*, t2.*, t3.*, t4.* 27439 FROM t1 FULL JOIN t2 ON t2.x>0 27440 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 27441 RIGHT JOIN t4 ON t4.z>0 27442 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 27443 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27444} { 27445 30 130 230 330 130 30 230 30 330 30 27446 60 160 260 360 160 60 260 60 360 60 27447 90 190 290 390 190 90 290 90 390 90 27448} 27449do_execsql_test joinD-951 { 27450 SELECT t1.*, t2.*, t3.*, t4.* 27451 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27452 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 27453 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 27454 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27455} { 27456 15 115 215 315 - - 215 15 315 15 27457 30 130 230 330 130 30 230 30 330 30 27458 45 145 245 345 - - 245 45 345 45 27459 60 160 260 360 160 60 260 60 360 60 27460 75 175 275 375 - - 275 75 375 75 27461 90 190 290 390 190 90 290 90 390 90 27462 - - - - - - - - 300 0 27463 - - - - - - - - 305 5 27464 - - - - - - - - 310 10 27465 - - - - - - - - 320 20 27466 - - - - - - - - 325 25 27467 - - - - - - - - 335 35 27468 - - - - - - - - 340 40 27469 - - - - - - - - 350 50 27470 - - - - - - - - 355 55 27471 - - - - - - - - 365 65 27472 - - - - - - - - 370 70 27473 - - - - - - - - 380 80 27474 - - - - - - - - 385 85 27475 - - - - - - - - 395 95 27476} 27477do_execsql_test joinD-952 { 27478 SELECT t1.*, t2.*, t3.*, t4.* 27479 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27480 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27481 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 27482 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27483} { 27484 3 103 203 303 - - 203 3 - - 27485 6 106 206 306 106 6 206 6 - - 27486 9 109 209 309 - - 209 9 - - 27487 12 112 212 312 112 12 212 12 - - 27488 15 115 215 315 - - 215 15 315 15 27489 18 118 218 318 118 18 218 18 - - 27490 21 121 221 321 - - 221 21 - - 27491 24 124 224 324 124 24 224 24 - - 27492 27 127 227 327 - - 227 27 - - 27493 30 130 230 330 130 30 230 30 330 30 27494 33 133 233 333 - - 233 33 - - 27495 36 136 236 336 136 36 236 36 - - 27496 39 139 239 339 - - 239 39 - - 27497 42 142 242 342 142 42 242 42 - - 27498 45 145 245 345 - - 245 45 345 45 27499 48 148 248 348 148 48 248 48 - - 27500 51 151 251 351 - - 251 51 - - 27501 54 154 254 354 154 54 254 54 - - 27502 57 157 257 357 - - 257 57 - - 27503 60 160 260 360 160 60 260 60 360 60 27504 63 163 263 363 - - 263 63 - - 27505 66 166 266 366 166 66 266 66 - - 27506 69 169 269 369 - - 269 69 - - 27507 72 172 272 372 172 72 272 72 - - 27508 75 175 275 375 - - 275 75 375 75 27509 78 178 278 378 178 78 278 78 - - 27510 81 181 281 381 - - 281 81 - - 27511 84 184 284 384 184 84 284 84 - - 27512 87 187 287 387 - - 287 87 - - 27513 90 190 290 390 190 90 290 90 390 90 27514 93 193 293 393 - - 293 93 - - 27515 - - - - - - - - 300 0 27516 - - - - - - - - 305 5 27517 - - - - - - - - 310 10 27518 - - - - - - - - 320 20 27519 - - - - - - - - 325 25 27520 - - - - - - - - 335 35 27521 - - - - - - - - 340 40 27522 - - - - - - - - 350 50 27523 - - - - - - - - 355 55 27524 - - - - - - - - 365 65 27525 - - - - - - - - 370 70 27526 - - - - - - - - 380 80 27527 - - - - - - - - 385 85 27528 - - - - - - - - 395 95 27529} 27530do_execsql_test joinD-953 { 27531 SELECT t1.*, t2.*, t3.*, t4.* 27532 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27533 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27534 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 27535 WHERE t2.x>0 27536 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27537} { 27538 6 106 206 306 106 6 206 6 - - 27539 12 112 212 312 112 12 212 12 - - 27540 18 118 218 318 118 18 218 18 - - 27541 24 124 224 324 124 24 224 24 - - 27542 30 130 230 330 130 30 230 30 330 30 27543 36 136 236 336 136 36 236 36 - - 27544 42 142 242 342 142 42 242 42 - - 27545 48 148 248 348 148 48 248 48 - - 27546 54 154 254 354 154 54 254 54 - - 27547 60 160 260 360 160 60 260 60 360 60 27548 66 166 266 366 166 66 266 66 - - 27549 72 172 272 372 172 72 272 72 - - 27550 78 178 278 378 178 78 278 78 - - 27551 84 184 284 384 184 84 284 84 - - 27552 90 190 290 390 190 90 290 90 390 90 27553} 27554do_execsql_test joinD-954 { 27555 SELECT t1.*, t2.*, t3.*, t4.* 27556 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27557 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27558 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 27559 WHERE (t2.x>0 OR t2.x IS NULL) 27560 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27561} { 27562 3 103 203 303 - - 203 3 - - 27563 6 106 206 306 106 6 206 6 - - 27564 9 109 209 309 - - 209 9 - - 27565 12 112 212 312 112 12 212 12 - - 27566 15 115 215 315 - - 215 15 315 15 27567 18 118 218 318 118 18 218 18 - - 27568 21 121 221 321 - - 221 21 - - 27569 24 124 224 324 124 24 224 24 - - 27570 27 127 227 327 - - 227 27 - - 27571 30 130 230 330 130 30 230 30 330 30 27572 33 133 233 333 - - 233 33 - - 27573 36 136 236 336 136 36 236 36 - - 27574 39 139 239 339 - - 239 39 - - 27575 42 142 242 342 142 42 242 42 - - 27576 45 145 245 345 - - 245 45 345 45 27577 48 148 248 348 148 48 248 48 - - 27578 51 151 251 351 - - 251 51 - - 27579 54 154 254 354 154 54 254 54 - - 27580 57 157 257 357 - - 257 57 - - 27581 60 160 260 360 160 60 260 60 360 60 27582 63 163 263 363 - - 263 63 - - 27583 66 166 266 366 166 66 266 66 - - 27584 69 169 269 369 - - 269 69 - - 27585 72 172 272 372 172 72 272 72 - - 27586 75 175 275 375 - - 275 75 375 75 27587 78 178 278 378 178 78 278 78 - - 27588 81 181 281 381 - - 281 81 - - 27589 84 184 284 384 184 84 284 84 - - 27590 87 187 287 387 - - 287 87 - - 27591 90 190 290 390 190 90 290 90 390 90 27592 93 193 293 393 - - 293 93 - - 27593 - - - - - - - - 300 0 27594 - - - - - - - - 305 5 27595 - - - - - - - - 310 10 27596 - - - - - - - - 320 20 27597 - - - - - - - - 325 25 27598 - - - - - - - - 335 35 27599 - - - - - - - - 340 40 27600 - - - - - - - - 350 50 27601 - - - - - - - - 355 55 27602 - - - - - - - - 365 65 27603 - - - - - - - - 370 70 27604 - - - - - - - - 380 80 27605 - - - - - - - - 385 85 27606 - - - - - - - - 395 95 27607} 27608do_execsql_test joinD-955 { 27609 SELECT t1.*, t2.*, t3.*, t4.* 27610 FROM t1 FULL JOIN t2 ON true 27611 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27612 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 27613 WHERE t1.b=t2.b AND t2.x>0 27614 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27615} { 27616 6 106 206 306 106 6 206 6 - - 27617 12 112 212 312 112 12 212 12 - - 27618 18 118 218 318 118 18 218 18 - - 27619 24 124 224 324 124 24 224 24 - - 27620 30 130 230 330 130 30 230 30 330 30 27621 36 136 236 336 136 36 236 36 - - 27622 42 142 242 342 142 42 242 42 - - 27623 48 148 248 348 148 48 248 48 - - 27624 54 154 254 354 154 54 254 54 - - 27625 60 160 260 360 160 60 260 60 360 60 27626 66 166 266 366 166 66 266 66 - - 27627 72 172 272 372 172 72 272 72 - - 27628 78 178 278 378 178 78 278 78 - - 27629 84 184 284 384 184 84 284 84 - - 27630 90 190 290 390 190 90 290 90 390 90 27631} 27632do_execsql_test joinD-956 { 27633 SELECT t1.*, t2.*, t3.*, t4.* 27634 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27635 INNER JOIN t3 ON t1.c=t3.c 27636 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 27637 WHERE t3.y>0 27638 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27639} { 27640 3 103 203 303 - - 203 3 - - 27641 6 106 206 306 106 6 206 6 - - 27642 9 109 209 309 - - 209 9 - - 27643 12 112 212 312 112 12 212 12 - - 27644 15 115 215 315 - - 215 15 315 15 27645 18 118 218 318 118 18 218 18 - - 27646 21 121 221 321 - - 221 21 - - 27647 24 124 224 324 124 24 224 24 - - 27648 27 127 227 327 - - 227 27 - - 27649 30 130 230 330 130 30 230 30 330 30 27650 33 133 233 333 - - 233 33 - - 27651 36 136 236 336 136 36 236 36 - - 27652 39 139 239 339 - - 239 39 - - 27653 42 142 242 342 142 42 242 42 - - 27654 45 145 245 345 - - 245 45 345 45 27655 48 148 248 348 148 48 248 48 - - 27656 51 151 251 351 - - 251 51 - - 27657 54 154 254 354 154 54 254 54 - - 27658 57 157 257 357 - - 257 57 - - 27659 60 160 260 360 160 60 260 60 360 60 27660 63 163 263 363 - - 263 63 - - 27661 66 166 266 366 166 66 266 66 - - 27662 69 169 269 369 - - 269 69 - - 27663 72 172 272 372 172 72 272 72 - - 27664 75 175 275 375 - - 275 75 375 75 27665 78 178 278 378 178 78 278 78 - - 27666 81 181 281 381 - - 281 81 - - 27667 84 184 284 384 184 84 284 84 - - 27668 87 187 287 387 - - 287 87 - - 27669 90 190 290 390 190 90 290 90 390 90 27670 93 193 293 393 - - 293 93 - - 27671} 27672do_execsql_test joinD-957 { 27673 SELECT t1.*, t2.*, t3.*, t4.* 27674 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27675 INNER JOIN t3 ON t1.c=t3.c 27676 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 27677 WHERE t3.y>0 OR t3.y IS NULL 27678 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27679} { 27680 3 103 203 303 - - 203 3 - - 27681 6 106 206 306 106 6 206 6 - - 27682 9 109 209 309 - - 209 9 - - 27683 12 112 212 312 112 12 212 12 - - 27684 15 115 215 315 - - 215 15 315 15 27685 18 118 218 318 118 18 218 18 - - 27686 21 121 221 321 - - 221 21 - - 27687 24 124 224 324 124 24 224 24 - - 27688 27 127 227 327 - - 227 27 - - 27689 30 130 230 330 130 30 230 30 330 30 27690 33 133 233 333 - - 233 33 - - 27691 36 136 236 336 136 36 236 36 - - 27692 39 139 239 339 - - 239 39 - - 27693 42 142 242 342 142 42 242 42 - - 27694 45 145 245 345 - - 245 45 345 45 27695 48 148 248 348 148 48 248 48 - - 27696 51 151 251 351 - - 251 51 - - 27697 54 154 254 354 154 54 254 54 - - 27698 57 157 257 357 - - 257 57 - - 27699 60 160 260 360 160 60 260 60 360 60 27700 63 163 263 363 - - 263 63 - - 27701 66 166 266 366 166 66 266 66 - - 27702 69 169 269 369 - - 269 69 - - 27703 72 172 272 372 172 72 272 72 - - 27704 75 175 275 375 - - 275 75 375 75 27705 78 178 278 378 178 78 278 78 - - 27706 81 181 281 381 - - 281 81 - - 27707 84 184 284 384 184 84 284 84 - - 27708 87 187 287 387 - - 287 87 - - 27709 90 190 290 390 190 90 290 90 390 90 27710 93 193 293 393 - - 293 93 - - 27711 - - - - - - - - 300 0 27712 - - - - - - - - 305 5 27713 - - - - - - - - 310 10 27714 - - - - - - - - 320 20 27715 - - - - - - - - 325 25 27716 - - - - - - - - 335 35 27717 - - - - - - - - 340 40 27718 - - - - - - - - 350 50 27719 - - - - - - - - 355 55 27720 - - - - - - - - 365 65 27721 - - - - - - - - 370 70 27722 - - - - - - - - 380 80 27723 - - - - - - - - 385 85 27724 - - - - - - - - 395 95 27725} 27726do_execsql_test joinD-958 { 27727 SELECT t1.*, t2.*, t3.*, t4.* 27728 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27729 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27730 FULL JOIN t4 ON t1.d=t4.d 27731 WHERE t4.z>0 27732 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27733} { 27734 15 115 215 315 - - 215 15 315 15 27735 30 130 230 330 130 30 230 30 330 30 27736 45 145 245 345 - - 245 45 345 45 27737 60 160 260 360 160 60 260 60 360 60 27738 75 175 275 375 - - 275 75 375 75 27739 90 190 290 390 190 90 290 90 390 90 27740 - - - - - - - - 305 5 27741 - - - - - - - - 310 10 27742 - - - - - - - - 320 20 27743 - - - - - - - - 325 25 27744 - - - - - - - - 335 35 27745 - - - - - - - - 340 40 27746 - - - - - - - - 350 50 27747 - - - - - - - - 355 55 27748 - - - - - - - - 365 65 27749 - - - - - - - - 370 70 27750 - - - - - - - - 380 80 27751 - - - - - - - - 385 85 27752 - - - - - - - - 395 95 27753} 27754do_execsql_test joinD-959 { 27755 SELECT t1.*, t2.*, t3.*, t4.* 27756 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27757 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27758 FULL JOIN t4 ON t1.d=t4.d 27759 WHERE t4.z IS NULL OR t4.z>0 27760 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27761} { 27762 3 103 203 303 - - 203 3 - - 27763 6 106 206 306 106 6 206 6 - - 27764 9 109 209 309 - - 209 9 - - 27765 12 112 212 312 112 12 212 12 - - 27766 15 115 215 315 - - 215 15 315 15 27767 18 118 218 318 118 18 218 18 - - 27768 21 121 221 321 - - 221 21 - - 27769 24 124 224 324 124 24 224 24 - - 27770 27 127 227 327 - - 227 27 - - 27771 30 130 230 330 130 30 230 30 330 30 27772 33 133 233 333 - - 233 33 - - 27773 36 136 236 336 136 36 236 36 - - 27774 39 139 239 339 - - 239 39 - - 27775 42 142 242 342 142 42 242 42 - - 27776 45 145 245 345 - - 245 45 345 45 27777 48 148 248 348 148 48 248 48 - - 27778 51 151 251 351 - - 251 51 - - 27779 54 154 254 354 154 54 254 54 - - 27780 57 157 257 357 - - 257 57 - - 27781 60 160 260 360 160 60 260 60 360 60 27782 63 163 263 363 - - 263 63 - - 27783 66 166 266 366 166 66 266 66 - - 27784 69 169 269 369 - - 269 69 - - 27785 72 172 272 372 172 72 272 72 - - 27786 75 175 275 375 - - 275 75 375 75 27787 78 178 278 378 178 78 278 78 - - 27788 81 181 281 381 - - 281 81 - - 27789 84 184 284 384 184 84 284 84 - - 27790 87 187 287 387 - - 287 87 - - 27791 90 190 290 390 190 90 290 90 390 90 27792 93 193 293 393 - - 293 93 - - 27793 - - - - - - - - 305 5 27794 - - - - - - - - 310 10 27795 - - - - - - - - 320 20 27796 - - - - - - - - 325 25 27797 - - - - - - - - 335 35 27798 - - - - - - - - 340 40 27799 - - - - - - - - 350 50 27800 - - - - - - - - 355 55 27801 - - - - - - - - 365 65 27802 - - - - - - - - 370 70 27803 - - - - - - - - 380 80 27804 - - - - - - - - 385 85 27805 - - - - - - - - 395 95 27806} 27807do_execsql_test joinD-960 { 27808 SELECT t1.*, t2.*, t3.*, t4.* 27809 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27810 INNER JOIN t3 ON t1.c=t3.c AND t3.y>0 27811 FULL JOIN t4 ON t1.d=t4.d 27812 WHERE t2.x>0 AND t4.z>0 27813 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27814} { 27815 30 130 230 330 130 30 230 30 330 30 27816 60 160 260 360 160 60 260 60 360 60 27817 90 190 290 390 190 90 290 90 390 90 27818} 27819do_execsql_test joinD-961 { 27820 SELECT t1.*, t2.*, t3.*, t4.* 27821 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27822 INNER JOIN t3 ON t1.c=t3.c 27823 FULL JOIN t4 ON t1.d=t4.d 27824 WHERE t4.z>0 AND t3.y>0 27825 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27826} { 27827 15 115 215 315 - - 215 15 315 15 27828 30 130 230 330 130 30 230 30 330 30 27829 45 145 245 345 - - 245 45 345 45 27830 60 160 260 360 160 60 260 60 360 60 27831 75 175 275 375 - - 275 75 375 75 27832 90 190 290 390 190 90 290 90 390 90 27833} 27834do_execsql_test joinD-962 { 27835 SELECT t1.*, t2.*, t3.*, t4.* 27836 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27837 INNER JOIN t3 ON t1.c=t3.c 27838 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 27839 WHERE t2.x>0 AND t3.y>0 27840 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27841} { 27842 6 106 206 306 106 6 206 6 - - 27843 12 112 212 312 112 12 212 12 - - 27844 18 118 218 318 118 18 218 18 - - 27845 24 124 224 324 124 24 224 24 - - 27846 30 130 230 330 130 30 230 30 330 30 27847 36 136 236 336 136 36 236 36 - - 27848 42 142 242 342 142 42 242 42 - - 27849 48 148 248 348 148 48 248 48 - - 27850 54 154 254 354 154 54 254 54 - - 27851 60 160 260 360 160 60 260 60 360 60 27852 66 166 266 366 166 66 266 66 - - 27853 72 172 272 372 172 72 272 72 - - 27854 78 178 278 378 178 78 278 78 - - 27855 84 184 284 384 184 84 284 84 - - 27856 90 190 290 390 190 90 290 90 390 90 27857} 27858do_execsql_test joinD-963 { 27859 SELECT t1.*, t2.*, t3.*, t4.* 27860 FROM t1 FULL JOIN t2 ON t1.b=t2.b 27861 INNER JOIN t3 ON t1.c=t3.c 27862 FULL JOIN t4 ON t1.d=t4.d 27863 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 27864 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27865} { 27866 30 130 230 330 130 30 230 30 330 30 27867 60 160 260 360 160 60 260 60 360 60 27868 90 190 290 390 190 90 290 90 390 90 27869} 27870do_execsql_test joinD-964 { 27871 SELECT t1.*, t2.*, t3.*, t4.* 27872 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 27873 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 27874 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 27875 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27876} { 27877 3 103 203 303 - - 203 3 - - 27878 6 106 206 306 106 6 206 6 - - 27879 9 109 209 309 - - 209 9 - - 27880 12 112 212 312 112 12 212 12 - - 27881 15 115 215 315 - - 215 15 315 15 27882 18 118 218 318 118 18 218 18 - - 27883 21 121 221 321 - - 221 21 - - 27884 24 124 224 324 124 24 224 24 - - 27885 27 127 227 327 - - 227 27 - - 27886 30 130 230 330 130 30 230 30 330 30 27887 33 133 233 333 - - 233 33 - - 27888 36 136 236 336 136 36 236 36 - - 27889 39 139 239 339 - - 239 39 - - 27890 42 142 242 342 142 42 242 42 - - 27891 45 145 245 345 - - 245 45 345 45 27892 48 148 248 348 148 48 248 48 - - 27893 51 151 251 351 - - 251 51 - - 27894 54 154 254 354 154 54 254 54 - - 27895 57 157 257 357 - - 257 57 - - 27896 60 160 260 360 160 60 260 60 360 60 27897 63 163 263 363 - - 263 63 - - 27898 66 166 266 366 166 66 266 66 - - 27899 69 169 269 369 - - 269 69 - - 27900 72 172 272 372 172 72 272 72 - - 27901 75 175 275 375 - - 275 75 375 75 27902 78 178 278 378 178 78 278 78 - - 27903 81 181 281 381 - - 281 81 - - 27904 84 184 284 384 184 84 284 84 - - 27905 87 187 287 387 - - 287 87 - - 27906 90 190 290 390 190 90 290 90 390 90 27907 93 193 293 393 - - 293 93 - - 27908 - - - - - - - - 300 0 27909 - - - - - - - - 305 5 27910 - - - - - - - - 310 10 27911 - - - - - - - - 320 20 27912 - - - - - - - - 325 25 27913 - - - - - - - - 335 35 27914 - - - - - - - - 340 40 27915 - - - - - - - - 350 50 27916 - - - - - - - - 355 55 27917 - - - - - - - - 365 65 27918 - - - - - - - - 370 70 27919 - - - - - - - - 380 80 27920 - - - - - - - - 385 85 27921 - - - - - - - - 395 95 27922} 27923do_execsql_test joinD-965 { 27924 SELECT t1.*, t2.*, t3.*, t4.* 27925 FROM t1 FULL JOIN t2 ON t2.x>0 27926 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 27927 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 27928 WHERE t1.b = t2.b 27929 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27930} { 27931 6 106 206 306 106 6 206 6 - - 27932 12 112 212 312 112 12 212 12 - - 27933 18 118 218 318 118 18 218 18 - - 27934 24 124 224 324 124 24 224 24 - - 27935 30 130 230 330 130 30 230 30 330 30 27936 36 136 236 336 136 36 236 36 - - 27937 42 142 242 342 142 42 242 42 - - 27938 48 148 248 348 148 48 248 48 - - 27939 54 154 254 354 154 54 254 54 - - 27940 60 160 260 360 160 60 260 60 360 60 27941 66 166 266 366 166 66 266 66 - - 27942 72 172 272 372 172 72 272 72 - - 27943 78 178 278 378 178 78 278 78 - - 27944 84 184 284 384 184 84 284 84 - - 27945 90 190 290 390 190 90 290 90 390 90 27946} 27947do_execsql_test joinD-966 { 27948 SELECT t1.*, t2.*, t3.*, t4.* 27949 FROM t1 FULL JOIN t2 ON t2.x>0 27950 INNER JOIN t3 ON t3.y>0 27951 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 27952 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 27953 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27954} { 27955 6 106 206 306 106 6 206 6 - - 27956 12 112 212 312 112 12 212 12 - - 27957 18 118 218 318 118 18 218 18 - - 27958 24 124 224 324 124 24 224 24 - - 27959 30 130 230 330 130 30 230 30 330 30 27960 36 136 236 336 136 36 236 36 - - 27961 42 142 242 342 142 42 242 42 - - 27962 48 148 248 348 148 48 248 48 - - 27963 54 154 254 354 154 54 254 54 - - 27964 60 160 260 360 160 60 260 60 360 60 27965 66 166 266 366 166 66 266 66 - - 27966 72 172 272 372 172 72 272 72 - - 27967 78 178 278 378 178 78 278 78 - - 27968 84 184 284 384 184 84 284 84 - - 27969 90 190 290 390 190 90 290 90 390 90 27970} 27971do_execsql_test joinD-967 { 27972 SELECT t1.*, t2.*, t3.*, t4.* 27973 FROM t1 FULL JOIN t2 ON t2.x>0 27974 INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 27975 FULL JOIN t4 ON t4.z>0 27976 WHERE t1.b = t2.b AND t1.d = t4.d 27977 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27978} { 27979 30 130 230 330 130 30 230 30 330 30 27980 60 160 260 360 160 60 260 60 360 60 27981 90 190 290 390 190 90 290 90 390 90 27982} 27983do_execsql_test joinD-968 { 27984 SELECT t1.*, t2.*, t3.*, t4.* 27985 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 27986 INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 27987 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 27988 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 27989} { 27990 3 103 203 303 - - 203 3 - - 27991 6 106 206 306 106 6 206 6 - - 27992 9 109 209 309 - - 209 9 - - 27993 12 112 212 312 112 12 212 12 - - 27994 15 115 215 315 - - 215 15 315 15 27995 18 118 218 318 118 18 218 18 - - 27996 21 121 221 321 - - 221 21 - - 27997 24 124 224 324 124 24 224 24 - - 27998 27 127 227 327 - - 227 27 - - 27999 30 130 230 330 130 30 230 30 330 30 28000 33 133 233 333 - - 233 33 - - 28001 36 136 236 336 136 36 236 36 - - 28002 39 139 239 339 - - 239 39 - - 28003 42 142 242 342 142 42 242 42 - - 28004 45 145 245 345 - - 245 45 345 45 28005 48 148 248 348 148 48 248 48 - - 28006 51 151 251 351 - - 251 51 - - 28007 54 154 254 354 154 54 254 54 - - 28008 57 157 257 357 - - 257 57 - - 28009 60 160 260 360 160 60 260 60 360 60 28010 63 163 263 363 - - 263 63 - - 28011 66 166 266 366 166 66 266 66 - - 28012 69 169 269 369 - - 269 69 - - 28013 72 172 272 372 172 72 272 72 - - 28014 75 175 275 375 - - 275 75 375 75 28015 78 178 278 378 178 78 278 78 - - 28016 81 181 281 381 - - 281 81 - - 28017 84 184 284 384 184 84 284 84 - - 28018 87 187 287 387 - - 287 87 - - 28019 90 190 290 390 190 90 290 90 390 90 28020 93 193 293 393 - - 293 93 - - 28021 - - - - - - - - 300 0 28022 - - - - - - - - 305 5 28023 - - - - - - - - 310 10 28024 - - - - - - - - 320 20 28025 - - - - - - - - 325 25 28026 - - - - - - - - 335 35 28027 - - - - - - - - 340 40 28028 - - - - - - - - 350 50 28029 - - - - - - - - 355 55 28030 - - - - - - - - 365 65 28031 - - - - - - - - 370 70 28032 - - - - - - - - 380 80 28033 - - - - - - - - 385 85 28034 - - - - - - - - 395 95 28035} 28036do_execsql_test joinD-969 { 28037 SELECT t1.*, t2.*, t3.*, t4.* 28038 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28039 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28040 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 28041 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28042} { 28043 5 105 205 305 - - - - 305 5 28044 10 110 210 310 110 10 - - 310 10 28045 15 115 215 315 - - 215 15 315 15 28046 20 120 220 320 120 20 - - 320 20 28047 25 125 225 325 - - - - 325 25 28048 30 130 230 330 130 30 230 30 330 30 28049 35 135 235 335 - - - - 335 35 28050 40 140 240 340 140 40 - - 340 40 28051 45 145 245 345 - - 245 45 345 45 28052 50 150 250 350 150 50 - - 350 50 28053 55 155 255 355 - - - - 355 55 28054 60 160 260 360 160 60 260 60 360 60 28055 65 165 265 365 - - - - 365 65 28056 70 170 270 370 170 70 - - 370 70 28057 75 175 275 375 - - 275 75 375 75 28058 80 180 280 380 180 80 - - 380 80 28059 85 185 285 385 - - - - 385 85 28060 90 190 290 390 190 90 290 90 390 90 28061 95 195 295 395 - - - - 395 95 28062} 28063do_execsql_test joinD-970 { 28064 SELECT t1.*, t2.*, t3.*, t4.* 28065 FROM t1 FULL JOIN t2 ON t1.b=t2.b 28066 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28067 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 28068 WHERE t2.x>0 28069 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28070} { 28071 10 110 210 310 110 10 - - 310 10 28072 20 120 220 320 120 20 - - 320 20 28073 30 130 230 330 130 30 230 30 330 30 28074 40 140 240 340 140 40 - - 340 40 28075 50 150 250 350 150 50 - - 350 50 28076 60 160 260 360 160 60 260 60 360 60 28077 70 170 270 370 170 70 - - 370 70 28078 80 180 280 380 180 80 - - 380 80 28079 90 190 290 390 190 90 290 90 390 90 28080} 28081do_execsql_test joinD-971 { 28082 SELECT t1.*, t2.*, t3.*, t4.* 28083 FROM t1 FULL JOIN t2 ON t1.b=t2.b 28084 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28085 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 28086 WHERE (t2.x>0 OR t2.x IS NULL) 28087 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28088} { 28089 5 105 205 305 - - - - 305 5 28090 10 110 210 310 110 10 - - 310 10 28091 15 115 215 315 - - 215 15 315 15 28092 20 120 220 320 120 20 - - 320 20 28093 25 125 225 325 - - - - 325 25 28094 30 130 230 330 130 30 230 30 330 30 28095 35 135 235 335 - - - - 335 35 28096 40 140 240 340 140 40 - - 340 40 28097 45 145 245 345 - - 245 45 345 45 28098 50 150 250 350 150 50 - - 350 50 28099 55 155 255 355 - - - - 355 55 28100 60 160 260 360 160 60 260 60 360 60 28101 65 165 265 365 - - - - 365 65 28102 70 170 270 370 170 70 - - 370 70 28103 75 175 275 375 - - 275 75 375 75 28104 80 180 280 380 180 80 - - 380 80 28105 85 185 285 385 - - - - 385 85 28106 90 190 290 390 190 90 290 90 390 90 28107 95 195 295 395 - - - - 395 95 28108} 28109do_execsql_test joinD-972 { 28110 SELECT t1.*, t2.*, t3.*, t4.* 28111 FROM t1 FULL JOIN t2 ON true 28112 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28113 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 28114 WHERE t1.b=t2.b AND t2.x>0 28115 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28116} { 28117 10 110 210 310 110 10 - - 310 10 28118 20 120 220 320 120 20 - - 320 20 28119 30 130 230 330 130 30 230 30 330 30 28120 40 140 240 340 140 40 - - 340 40 28121 50 150 250 350 150 50 - - 350 50 28122 60 160 260 360 160 60 260 60 360 60 28123 70 170 270 370 170 70 - - 370 70 28124 80 180 280 380 180 80 - - 380 80 28125 90 190 290 390 190 90 290 90 390 90 28126} 28127do_execsql_test joinD-973 { 28128 SELECT t1.*, t2.*, t3.*, t4.* 28129 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28130 LEFT JOIN t3 ON t1.c=t3.c 28131 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 28132 WHERE t3.y>0 28133 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28134} { 28135 15 115 215 315 - - 215 15 315 15 28136 30 130 230 330 130 30 230 30 330 30 28137 45 145 245 345 - - 245 45 345 45 28138 60 160 260 360 160 60 260 60 360 60 28139 75 175 275 375 - - 275 75 375 75 28140 90 190 290 390 190 90 290 90 390 90 28141} 28142do_execsql_test joinD-974 { 28143 SELECT t1.*, t2.*, t3.*, t4.* 28144 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28145 LEFT JOIN t3 ON t1.c=t3.c 28146 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 28147 WHERE t3.y>0 OR t3.y IS NULL 28148 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28149} { 28150 5 105 205 305 - - - - 305 5 28151 10 110 210 310 110 10 - - 310 10 28152 15 115 215 315 - - 215 15 315 15 28153 20 120 220 320 120 20 - - 320 20 28154 25 125 225 325 - - - - 325 25 28155 30 130 230 330 130 30 230 30 330 30 28156 35 135 235 335 - - - - 335 35 28157 40 140 240 340 140 40 - - 340 40 28158 45 145 245 345 - - 245 45 345 45 28159 50 150 250 350 150 50 - - 350 50 28160 55 155 255 355 - - - - 355 55 28161 60 160 260 360 160 60 260 60 360 60 28162 65 165 265 365 - - - - 365 65 28163 70 170 270 370 170 70 - - 370 70 28164 75 175 275 375 - - 275 75 375 75 28165 80 180 280 380 180 80 - - 380 80 28166 85 185 285 385 - - - - 385 85 28167 90 190 290 390 190 90 290 90 390 90 28168 95 195 295 395 - - - - 395 95 28169} 28170do_execsql_test joinD-975 { 28171 SELECT t1.*, t2.*, t3.*, t4.* 28172 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28173 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28174 INNER JOIN t4 ON t1.d=t4.d 28175 WHERE t4.z>0 28176 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28177} { 28178 5 105 205 305 - - - - 305 5 28179 10 110 210 310 110 10 - - 310 10 28180 15 115 215 315 - - 215 15 315 15 28181 20 120 220 320 120 20 - - 320 20 28182 25 125 225 325 - - - - 325 25 28183 30 130 230 330 130 30 230 30 330 30 28184 35 135 235 335 - - - - 335 35 28185 40 140 240 340 140 40 - - 340 40 28186 45 145 245 345 - - 245 45 345 45 28187 50 150 250 350 150 50 - - 350 50 28188 55 155 255 355 - - - - 355 55 28189 60 160 260 360 160 60 260 60 360 60 28190 65 165 265 365 - - - - 365 65 28191 70 170 270 370 170 70 - - 370 70 28192 75 175 275 375 - - 275 75 375 75 28193 80 180 280 380 180 80 - - 380 80 28194 85 185 285 385 - - - - 385 85 28195 90 190 290 390 190 90 290 90 390 90 28196 95 195 295 395 - - - - 395 95 28197} 28198do_execsql_test joinD-976 { 28199 SELECT t1.*, t2.*, t3.*, t4.* 28200 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28201 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28202 INNER JOIN t4 ON t1.d=t4.d 28203 WHERE t4.z IS NULL OR t4.z>0 28204 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28205} { 28206 5 105 205 305 - - - - 305 5 28207 10 110 210 310 110 10 - - 310 10 28208 15 115 215 315 - - 215 15 315 15 28209 20 120 220 320 120 20 - - 320 20 28210 25 125 225 325 - - - - 325 25 28211 30 130 230 330 130 30 230 30 330 30 28212 35 135 235 335 - - - - 335 35 28213 40 140 240 340 140 40 - - 340 40 28214 45 145 245 345 - - 245 45 345 45 28215 50 150 250 350 150 50 - - 350 50 28216 55 155 255 355 - - - - 355 55 28217 60 160 260 360 160 60 260 60 360 60 28218 65 165 265 365 - - - - 365 65 28219 70 170 270 370 170 70 - - 370 70 28220 75 175 275 375 - - 275 75 375 75 28221 80 180 280 380 180 80 - - 380 80 28222 85 185 285 385 - - - - 385 85 28223 90 190 290 390 190 90 290 90 390 90 28224 95 195 295 395 - - - - 395 95 28225} 28226do_execsql_test joinD-977 { 28227 SELECT t1.*, t2.*, t3.*, t4.* 28228 FROM t1 FULL JOIN t2 ON t1.b=t2.b 28229 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28230 INNER JOIN t4 ON t1.d=t4.d 28231 WHERE t2.x>0 AND t4.z>0 28232 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28233} { 28234 10 110 210 310 110 10 - - 310 10 28235 20 120 220 320 120 20 - - 320 20 28236 30 130 230 330 130 30 230 30 330 30 28237 40 140 240 340 140 40 - - 340 40 28238 50 150 250 350 150 50 - - 350 50 28239 60 160 260 360 160 60 260 60 360 60 28240 70 170 270 370 170 70 - - 370 70 28241 80 180 280 380 180 80 - - 380 80 28242 90 190 290 390 190 90 290 90 390 90 28243} 28244do_execsql_test joinD-978 { 28245 SELECT t1.*, t2.*, t3.*, t4.* 28246 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28247 LEFT JOIN t3 ON t1.c=t3.c 28248 INNER JOIN t4 ON t1.d=t4.d 28249 WHERE t4.z>0 AND t3.y>0 28250 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28251} { 28252 15 115 215 315 - - 215 15 315 15 28253 30 130 230 330 130 30 230 30 330 30 28254 45 145 245 345 - - 245 45 345 45 28255 60 160 260 360 160 60 260 60 360 60 28256 75 175 275 375 - - 275 75 375 75 28257 90 190 290 390 190 90 290 90 390 90 28258} 28259do_execsql_test joinD-979 { 28260 SELECT t1.*, t2.*, t3.*, t4.* 28261 FROM t1 FULL JOIN t2 ON t1.b=t2.b 28262 LEFT JOIN t3 ON t1.c=t3.c 28263 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 28264 WHERE t2.x>0 AND t3.y>0 28265 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28266} { 28267 30 130 230 330 130 30 230 30 330 30 28268 60 160 260 360 160 60 260 60 360 60 28269 90 190 290 390 190 90 290 90 390 90 28270} 28271do_execsql_test joinD-980 { 28272 SELECT t1.*, t2.*, t3.*, t4.* 28273 FROM t1 FULL JOIN t2 ON t1.b=t2.b 28274 LEFT JOIN t3 ON t1.c=t3.c 28275 INNER JOIN t4 ON t1.d=t4.d 28276 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 28277 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28278} { 28279 30 130 230 330 130 30 230 30 330 30 28280 60 160 260 360 160 60 260 60 360 60 28281 90 190 290 390 190 90 290 90 390 90 28282} 28283do_execsql_test joinD-981 { 28284 SELECT t1.*, t2.*, t3.*, t4.* 28285 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 28286 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 28287 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 28288 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28289} { 28290 5 105 205 305 - - - - 305 5 28291 10 110 210 310 110 10 - - 310 10 28292 15 115 215 315 - - 215 15 315 15 28293 20 120 220 320 120 20 - - 320 20 28294 25 125 225 325 - - - - 325 25 28295 30 130 230 330 130 30 230 30 330 30 28296 35 135 235 335 - - - - 335 35 28297 40 140 240 340 140 40 - - 340 40 28298 45 145 245 345 - - 245 45 345 45 28299 50 150 250 350 150 50 - - 350 50 28300 55 155 255 355 - - - - 355 55 28301 60 160 260 360 160 60 260 60 360 60 28302 65 165 265 365 - - - - 365 65 28303 70 170 270 370 170 70 - - 370 70 28304 75 175 275 375 - - 275 75 375 75 28305 80 180 280 380 180 80 - - 380 80 28306 85 185 285 385 - - - - 385 85 28307 90 190 290 390 190 90 290 90 390 90 28308 95 195 295 395 - - - - 395 95 28309} 28310do_execsql_test joinD-982 { 28311 SELECT t1.*, t2.*, t3.*, t4.* 28312 FROM t1 FULL JOIN t2 ON t2.x>0 28313 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 28314 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 28315 WHERE t1.b = t2.b 28316 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28317} { 28318 10 110 210 310 110 10 - - 310 10 28319 20 120 220 320 120 20 - - 320 20 28320 30 130 230 330 130 30 230 30 330 30 28321 40 140 240 340 140 40 - - 340 40 28322 50 150 250 350 150 50 - - 350 50 28323 60 160 260 360 160 60 260 60 360 60 28324 70 170 270 370 170 70 - - 370 70 28325 80 180 280 380 180 80 - - 380 80 28326 90 190 290 390 190 90 290 90 390 90 28327} 28328do_execsql_test joinD-983 { 28329 SELECT t1.*, t2.*, t3.*, t4.* 28330 FROM t1 FULL JOIN t2 ON t2.x>0 28331 LEFT JOIN t3 ON t3.y>0 28332 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 28333 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 28334 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28335} { 28336 30 130 230 330 130 30 230 30 330 30 28337 60 160 260 360 160 60 260 60 360 60 28338 90 190 290 390 190 90 290 90 390 90 28339} 28340do_execsql_test joinD-984 { 28341 SELECT t1.*, t2.*, t3.*, t4.* 28342 FROM t1 FULL JOIN t2 ON t2.x>0 28343 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 28344 INNER JOIN t4 ON t4.z>0 28345 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 28346 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28347} { 28348 10 110 210 310 110 10 - - 310 10 28349 20 120 220 320 120 20 - - 320 20 28350 30 130 230 330 130 30 230 30 330 30 28351 40 140 240 340 140 40 - - 340 40 28352 50 150 250 350 150 50 - - 350 50 28353 60 160 260 360 160 60 260 60 360 60 28354 70 170 270 370 170 70 - - 370 70 28355 80 180 280 380 180 80 - - 380 80 28356 90 190 290 390 190 90 290 90 390 90 28357} 28358do_execsql_test joinD-985 { 28359 SELECT t1.*, t2.*, t3.*, t4.* 28360 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28361 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 28362 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 28363 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28364} { 28365 5 105 205 305 - - - - 305 5 28366 10 110 210 310 110 10 - - 310 10 28367 15 115 215 315 - - 215 15 315 15 28368 20 120 220 320 120 20 - - 320 20 28369 25 125 225 325 - - - - 325 25 28370 30 130 230 330 130 30 230 30 330 30 28371 35 135 235 335 - - - - 335 35 28372 40 140 240 340 140 40 - - 340 40 28373 45 145 245 345 - - 245 45 345 45 28374 50 150 250 350 150 50 - - 350 50 28375 55 155 255 355 - - - - 355 55 28376 60 160 260 360 160 60 260 60 360 60 28377 65 165 265 365 - - - - 365 65 28378 70 170 270 370 170 70 - - 370 70 28379 75 175 275 375 - - 275 75 375 75 28380 80 180 280 380 180 80 - - 380 80 28381 85 185 285 385 - - - - 385 85 28382 90 190 290 390 190 90 290 90 390 90 28383 95 195 295 395 - - - - 395 95 28384} 28385do_execsql_test joinD-986 { 28386 SELECT t1.*, t2.*, t3.*, t4.* 28387 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28388 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28389 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 28390 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28391} { 28392 0 100 200 300 - - - - - - 28393 1 101 201 301 - - - - - - 28394 2 102 202 302 102 2 - - - - 28395 3 103 203 303 - - 203 3 - - 28396 4 104 204 304 104 4 - - - - 28397 5 105 205 305 - - - - 305 5 28398 6 106 206 306 106 6 206 6 - - 28399 7 107 207 307 - - - - - - 28400 8 108 208 308 108 8 - - - - 28401 9 109 209 309 - - 209 9 - - 28402 10 110 210 310 110 10 - - 310 10 28403 11 111 211 311 - - - - - - 28404 12 112 212 312 112 12 212 12 - - 28405 13 113 213 313 - - - - - - 28406 14 114 214 314 114 14 - - - - 28407 15 115 215 315 - - 215 15 315 15 28408 16 116 216 316 116 16 - - - - 28409 17 117 217 317 - - - - - - 28410 18 118 218 318 118 18 218 18 - - 28411 19 119 219 319 - - - - - - 28412 20 120 220 320 120 20 - - 320 20 28413 21 121 221 321 - - 221 21 - - 28414 22 122 222 322 122 22 - - - - 28415 23 123 223 323 - - - - - - 28416 24 124 224 324 124 24 224 24 - - 28417 25 125 225 325 - - - - 325 25 28418 26 126 226 326 126 26 - - - - 28419 27 127 227 327 - - 227 27 - - 28420 28 128 228 328 128 28 - - - - 28421 29 129 229 329 - - - - - - 28422 30 130 230 330 130 30 230 30 330 30 28423 31 131 231 331 - - - - - - 28424 32 132 232 332 132 32 - - - - 28425 33 133 233 333 - - 233 33 - - 28426 34 134 234 334 134 34 - - - - 28427 35 135 235 335 - - - - 335 35 28428 36 136 236 336 136 36 236 36 - - 28429 37 137 237 337 - - - - - - 28430 38 138 238 338 138 38 - - - - 28431 39 139 239 339 - - 239 39 - - 28432 40 140 240 340 140 40 - - 340 40 28433 41 141 241 341 - - - - - - 28434 42 142 242 342 142 42 242 42 - - 28435 43 143 243 343 - - - - - - 28436 44 144 244 344 144 44 - - - - 28437 45 145 245 345 - - 245 45 345 45 28438 46 146 246 346 146 46 - - - - 28439 47 147 247 347 - - - - - - 28440 48 148 248 348 148 48 248 48 - - 28441 49 149 249 349 - - - - - - 28442 50 150 250 350 150 50 - - 350 50 28443 51 151 251 351 - - 251 51 - - 28444 52 152 252 352 152 52 - - - - 28445 53 153 253 353 - - - - - - 28446 54 154 254 354 154 54 254 54 - - 28447 55 155 255 355 - - - - 355 55 28448 56 156 256 356 156 56 - - - - 28449 57 157 257 357 - - 257 57 - - 28450 58 158 258 358 158 58 - - - - 28451 59 159 259 359 - - - - - - 28452 60 160 260 360 160 60 260 60 360 60 28453 61 161 261 361 - - - - - - 28454 62 162 262 362 162 62 - - - - 28455 63 163 263 363 - - 263 63 - - 28456 64 164 264 364 164 64 - - - - 28457 65 165 265 365 - - - - 365 65 28458 66 166 266 366 166 66 266 66 - - 28459 67 167 267 367 - - - - - - 28460 68 168 268 368 168 68 - - - - 28461 69 169 269 369 - - 269 69 - - 28462 70 170 270 370 170 70 - - 370 70 28463 71 171 271 371 - - - - - - 28464 72 172 272 372 172 72 272 72 - - 28465 73 173 273 373 - - - - - - 28466 74 174 274 374 174 74 - - - - 28467 75 175 275 375 - - 275 75 375 75 28468 76 176 276 376 176 76 - - - - 28469 77 177 277 377 - - - - - - 28470 78 178 278 378 178 78 278 78 - - 28471 79 179 279 379 - - - - - - 28472 80 180 280 380 180 80 - - 380 80 28473 81 181 281 381 - - 281 81 - - 28474 82 182 282 382 182 82 - - - - 28475 83 183 283 383 - - - - - - 28476 84 184 284 384 184 84 284 84 - - 28477 85 185 285 385 - - - - 385 85 28478 86 186 286 386 186 86 - - - - 28479 87 187 287 387 - - 287 87 - - 28480 88 188 288 388 188 88 - - - - 28481 89 189 289 389 - - - - - - 28482 90 190 290 390 190 90 290 90 390 90 28483 91 191 291 391 - - - - - - 28484 92 192 292 392 192 92 - - - - 28485 93 193 293 393 - - 293 93 - - 28486 94 194 294 394 194 94 - - - - 28487 95 195 295 395 - - - - 395 95 28488 96 - 296 396 - - - - - - 28489 97 197 - 397 - - - - - - 28490 98 198 298 - - - - - - - 28491 99 - - - - - - - - - 28492 - - - - 100 0 - - - - 28493} 28494do_execsql_test joinD-987 { 28495 SELECT t1.*, t2.*, t3.*, t4.* 28496 FROM t1 FULL JOIN t2 ON t1.b=t2.b 28497 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28498 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 28499 WHERE t2.x>0 28500 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28501} { 28502 2 102 202 302 102 2 - - - - 28503 4 104 204 304 104 4 - - - - 28504 6 106 206 306 106 6 206 6 - - 28505 8 108 208 308 108 8 - - - - 28506 10 110 210 310 110 10 - - 310 10 28507 12 112 212 312 112 12 212 12 - - 28508 14 114 214 314 114 14 - - - - 28509 16 116 216 316 116 16 - - - - 28510 18 118 218 318 118 18 218 18 - - 28511 20 120 220 320 120 20 - - 320 20 28512 22 122 222 322 122 22 - - - - 28513 24 124 224 324 124 24 224 24 - - 28514 26 126 226 326 126 26 - - - - 28515 28 128 228 328 128 28 - - - - 28516 30 130 230 330 130 30 230 30 330 30 28517 32 132 232 332 132 32 - - - - 28518 34 134 234 334 134 34 - - - - 28519 36 136 236 336 136 36 236 36 - - 28520 38 138 238 338 138 38 - - - - 28521 40 140 240 340 140 40 - - 340 40 28522 42 142 242 342 142 42 242 42 - - 28523 44 144 244 344 144 44 - - - - 28524 46 146 246 346 146 46 - - - - 28525 48 148 248 348 148 48 248 48 - - 28526 50 150 250 350 150 50 - - 350 50 28527 52 152 252 352 152 52 - - - - 28528 54 154 254 354 154 54 254 54 - - 28529 56 156 256 356 156 56 - - - - 28530 58 158 258 358 158 58 - - - - 28531 60 160 260 360 160 60 260 60 360 60 28532 62 162 262 362 162 62 - - - - 28533 64 164 264 364 164 64 - - - - 28534 66 166 266 366 166 66 266 66 - - 28535 68 168 268 368 168 68 - - - - 28536 70 170 270 370 170 70 - - 370 70 28537 72 172 272 372 172 72 272 72 - - 28538 74 174 274 374 174 74 - - - - 28539 76 176 276 376 176 76 - - - - 28540 78 178 278 378 178 78 278 78 - - 28541 80 180 280 380 180 80 - - 380 80 28542 82 182 282 382 182 82 - - - - 28543 84 184 284 384 184 84 284 84 - - 28544 86 186 286 386 186 86 - - - - 28545 88 188 288 388 188 88 - - - - 28546 90 190 290 390 190 90 290 90 390 90 28547 92 192 292 392 192 92 - - - - 28548 94 194 294 394 194 94 - - - - 28549} 28550do_execsql_test joinD-988 { 28551 SELECT t1.*, t2.*, t3.*, t4.* 28552 FROM t1 FULL JOIN t2 ON t1.b=t2.b 28553 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28554 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 28555 WHERE (t2.x>0 OR t2.x IS NULL) 28556 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28557} { 28558 1 101 201 301 - - - - - - 28559 2 102 202 302 102 2 - - - - 28560 3 103 203 303 - - 203 3 - - 28561 4 104 204 304 104 4 - - - - 28562 5 105 205 305 - - - - 305 5 28563 6 106 206 306 106 6 206 6 - - 28564 7 107 207 307 - - - - - - 28565 8 108 208 308 108 8 - - - - 28566 9 109 209 309 - - 209 9 - - 28567 10 110 210 310 110 10 - - 310 10 28568 11 111 211 311 - - - - - - 28569 12 112 212 312 112 12 212 12 - - 28570 13 113 213 313 - - - - - - 28571 14 114 214 314 114 14 - - - - 28572 15 115 215 315 - - 215 15 315 15 28573 16 116 216 316 116 16 - - - - 28574 17 117 217 317 - - - - - - 28575 18 118 218 318 118 18 218 18 - - 28576 19 119 219 319 - - - - - - 28577 20 120 220 320 120 20 - - 320 20 28578 21 121 221 321 - - 221 21 - - 28579 22 122 222 322 122 22 - - - - 28580 23 123 223 323 - - - - - - 28581 24 124 224 324 124 24 224 24 - - 28582 25 125 225 325 - - - - 325 25 28583 26 126 226 326 126 26 - - - - 28584 27 127 227 327 - - 227 27 - - 28585 28 128 228 328 128 28 - - - - 28586 29 129 229 329 - - - - - - 28587 30 130 230 330 130 30 230 30 330 30 28588 31 131 231 331 - - - - - - 28589 32 132 232 332 132 32 - - - - 28590 33 133 233 333 - - 233 33 - - 28591 34 134 234 334 134 34 - - - - 28592 35 135 235 335 - - - - 335 35 28593 36 136 236 336 136 36 236 36 - - 28594 37 137 237 337 - - - - - - 28595 38 138 238 338 138 38 - - - - 28596 39 139 239 339 - - 239 39 - - 28597 40 140 240 340 140 40 - - 340 40 28598 41 141 241 341 - - - - - - 28599 42 142 242 342 142 42 242 42 - - 28600 43 143 243 343 - - - - - - 28601 44 144 244 344 144 44 - - - - 28602 45 145 245 345 - - 245 45 345 45 28603 46 146 246 346 146 46 - - - - 28604 47 147 247 347 - - - - - - 28605 48 148 248 348 148 48 248 48 - - 28606 49 149 249 349 - - - - - - 28607 50 150 250 350 150 50 - - 350 50 28608 51 151 251 351 - - 251 51 - - 28609 52 152 252 352 152 52 - - - - 28610 53 153 253 353 - - - - - - 28611 54 154 254 354 154 54 254 54 - - 28612 55 155 255 355 - - - - 355 55 28613 56 156 256 356 156 56 - - - - 28614 57 157 257 357 - - 257 57 - - 28615 58 158 258 358 158 58 - - - - 28616 59 159 259 359 - - - - - - 28617 60 160 260 360 160 60 260 60 360 60 28618 61 161 261 361 - - - - - - 28619 62 162 262 362 162 62 - - - - 28620 63 163 263 363 - - 263 63 - - 28621 64 164 264 364 164 64 - - - - 28622 65 165 265 365 - - - - 365 65 28623 66 166 266 366 166 66 266 66 - - 28624 67 167 267 367 - - - - - - 28625 68 168 268 368 168 68 - - - - 28626 69 169 269 369 - - 269 69 - - 28627 70 170 270 370 170 70 - - 370 70 28628 71 171 271 371 - - - - - - 28629 72 172 272 372 172 72 272 72 - - 28630 73 173 273 373 - - - - - - 28631 74 174 274 374 174 74 - - - - 28632 75 175 275 375 - - 275 75 375 75 28633 76 176 276 376 176 76 - - - - 28634 77 177 277 377 - - - - - - 28635 78 178 278 378 178 78 278 78 - - 28636 79 179 279 379 - - - - - - 28637 80 180 280 380 180 80 - - 380 80 28638 81 181 281 381 - - 281 81 - - 28639 82 182 282 382 182 82 - - - - 28640 83 183 283 383 - - - - - - 28641 84 184 284 384 184 84 284 84 - - 28642 85 185 285 385 - - - - 385 85 28643 86 186 286 386 186 86 - - - - 28644 87 187 287 387 - - 287 87 - - 28645 88 188 288 388 188 88 - - - - 28646 89 189 289 389 - - - - - - 28647 90 190 290 390 190 90 290 90 390 90 28648 91 191 291 391 - - - - - - 28649 92 192 292 392 192 92 - - - - 28650 93 193 293 393 - - 293 93 - - 28651 94 194 294 394 194 94 - - - - 28652 95 195 295 395 - - - - 395 95 28653 96 - 296 396 - - - - - - 28654 97 197 - 397 - - - - - - 28655 98 198 298 - - - - - - - 28656 99 - - - - - - - - - 28657} 28658do_execsql_test joinD-989 { 28659 SELECT t1.*, t2.*, t3.*, t4.* 28660 FROM t1 FULL JOIN t2 ON true 28661 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28662 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 28663 WHERE t1.b=t2.b AND t2.x>0 28664 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28665} { 28666 2 102 202 302 102 2 - - - - 28667 4 104 204 304 104 4 - - - - 28668 6 106 206 306 106 6 206 6 - - 28669 8 108 208 308 108 8 - - - - 28670 10 110 210 310 110 10 - - 310 10 28671 12 112 212 312 112 12 212 12 - - 28672 14 114 214 314 114 14 - - - - 28673 16 116 216 316 116 16 - - - - 28674 18 118 218 318 118 18 218 18 - - 28675 20 120 220 320 120 20 - - 320 20 28676 22 122 222 322 122 22 - - - - 28677 24 124 224 324 124 24 224 24 - - 28678 26 126 226 326 126 26 - - - - 28679 28 128 228 328 128 28 - - - - 28680 30 130 230 330 130 30 230 30 330 30 28681 32 132 232 332 132 32 - - - - 28682 34 134 234 334 134 34 - - - - 28683 36 136 236 336 136 36 236 36 - - 28684 38 138 238 338 138 38 - - - - 28685 40 140 240 340 140 40 - - 340 40 28686 42 142 242 342 142 42 242 42 - - 28687 44 144 244 344 144 44 - - - - 28688 46 146 246 346 146 46 - - - - 28689 48 148 248 348 148 48 248 48 - - 28690 50 150 250 350 150 50 - - 350 50 28691 52 152 252 352 152 52 - - - - 28692 54 154 254 354 154 54 254 54 - - 28693 56 156 256 356 156 56 - - - - 28694 58 158 258 358 158 58 - - - - 28695 60 160 260 360 160 60 260 60 360 60 28696 62 162 262 362 162 62 - - - - 28697 64 164 264 364 164 64 - - - - 28698 66 166 266 366 166 66 266 66 - - 28699 68 168 268 368 168 68 - - - - 28700 70 170 270 370 170 70 - - 370 70 28701 72 172 272 372 172 72 272 72 - - 28702 74 174 274 374 174 74 - - - - 28703 76 176 276 376 176 76 - - - - 28704 78 178 278 378 178 78 278 78 - - 28705 80 180 280 380 180 80 - - 380 80 28706 82 182 282 382 182 82 - - - - 28707 84 184 284 384 184 84 284 84 - - 28708 86 186 286 386 186 86 - - - - 28709 88 188 288 388 188 88 - - - - 28710 90 190 290 390 190 90 290 90 390 90 28711 92 192 292 392 192 92 - - - - 28712 94 194 294 394 194 94 - - - - 28713} 28714do_execsql_test joinD-990 { 28715 SELECT t1.*, t2.*, t3.*, t4.* 28716 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28717 LEFT JOIN t3 ON t1.c=t3.c 28718 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 28719 WHERE t3.y>0 28720 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28721} { 28722 3 103 203 303 - - 203 3 - - 28723 6 106 206 306 106 6 206 6 - - 28724 9 109 209 309 - - 209 9 - - 28725 12 112 212 312 112 12 212 12 - - 28726 15 115 215 315 - - 215 15 315 15 28727 18 118 218 318 118 18 218 18 - - 28728 21 121 221 321 - - 221 21 - - 28729 24 124 224 324 124 24 224 24 - - 28730 27 127 227 327 - - 227 27 - - 28731 30 130 230 330 130 30 230 30 330 30 28732 33 133 233 333 - - 233 33 - - 28733 36 136 236 336 136 36 236 36 - - 28734 39 139 239 339 - - 239 39 - - 28735 42 142 242 342 142 42 242 42 - - 28736 45 145 245 345 - - 245 45 345 45 28737 48 148 248 348 148 48 248 48 - - 28738 51 151 251 351 - - 251 51 - - 28739 54 154 254 354 154 54 254 54 - - 28740 57 157 257 357 - - 257 57 - - 28741 60 160 260 360 160 60 260 60 360 60 28742 63 163 263 363 - - 263 63 - - 28743 66 166 266 366 166 66 266 66 - - 28744 69 169 269 369 - - 269 69 - - 28745 72 172 272 372 172 72 272 72 - - 28746 75 175 275 375 - - 275 75 375 75 28747 78 178 278 378 178 78 278 78 - - 28748 81 181 281 381 - - 281 81 - - 28749 84 184 284 384 184 84 284 84 - - 28750 87 187 287 387 - - 287 87 - - 28751 90 190 290 390 190 90 290 90 390 90 28752 93 193 293 393 - - 293 93 - - 28753} 28754do_execsql_test joinD-991 { 28755 SELECT t1.*, t2.*, t3.*, t4.* 28756 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28757 LEFT JOIN t3 ON t1.c=t3.c 28758 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 28759 WHERE t3.y>0 OR t3.y IS NULL 28760 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28761} { 28762 1 101 201 301 - - - - - - 28763 2 102 202 302 102 2 - - - - 28764 3 103 203 303 - - 203 3 - - 28765 4 104 204 304 104 4 - - - - 28766 5 105 205 305 - - - - 305 5 28767 6 106 206 306 106 6 206 6 - - 28768 7 107 207 307 - - - - - - 28769 8 108 208 308 108 8 - - - - 28770 9 109 209 309 - - 209 9 - - 28771 10 110 210 310 110 10 - - 310 10 28772 11 111 211 311 - - - - - - 28773 12 112 212 312 112 12 212 12 - - 28774 13 113 213 313 - - - - - - 28775 14 114 214 314 114 14 - - - - 28776 15 115 215 315 - - 215 15 315 15 28777 16 116 216 316 116 16 - - - - 28778 17 117 217 317 - - - - - - 28779 18 118 218 318 118 18 218 18 - - 28780 19 119 219 319 - - - - - - 28781 20 120 220 320 120 20 - - 320 20 28782 21 121 221 321 - - 221 21 - - 28783 22 122 222 322 122 22 - - - - 28784 23 123 223 323 - - - - - - 28785 24 124 224 324 124 24 224 24 - - 28786 25 125 225 325 - - - - 325 25 28787 26 126 226 326 126 26 - - - - 28788 27 127 227 327 - - 227 27 - - 28789 28 128 228 328 128 28 - - - - 28790 29 129 229 329 - - - - - - 28791 30 130 230 330 130 30 230 30 330 30 28792 31 131 231 331 - - - - - - 28793 32 132 232 332 132 32 - - - - 28794 33 133 233 333 - - 233 33 - - 28795 34 134 234 334 134 34 - - - - 28796 35 135 235 335 - - - - 335 35 28797 36 136 236 336 136 36 236 36 - - 28798 37 137 237 337 - - - - - - 28799 38 138 238 338 138 38 - - - - 28800 39 139 239 339 - - 239 39 - - 28801 40 140 240 340 140 40 - - 340 40 28802 41 141 241 341 - - - - - - 28803 42 142 242 342 142 42 242 42 - - 28804 43 143 243 343 - - - - - - 28805 44 144 244 344 144 44 - - - - 28806 45 145 245 345 - - 245 45 345 45 28807 46 146 246 346 146 46 - - - - 28808 47 147 247 347 - - - - - - 28809 48 148 248 348 148 48 248 48 - - 28810 49 149 249 349 - - - - - - 28811 50 150 250 350 150 50 - - 350 50 28812 51 151 251 351 - - 251 51 - - 28813 52 152 252 352 152 52 - - - - 28814 53 153 253 353 - - - - - - 28815 54 154 254 354 154 54 254 54 - - 28816 55 155 255 355 - - - - 355 55 28817 56 156 256 356 156 56 - - - - 28818 57 157 257 357 - - 257 57 - - 28819 58 158 258 358 158 58 - - - - 28820 59 159 259 359 - - - - - - 28821 60 160 260 360 160 60 260 60 360 60 28822 61 161 261 361 - - - - - - 28823 62 162 262 362 162 62 - - - - 28824 63 163 263 363 - - 263 63 - - 28825 64 164 264 364 164 64 - - - - 28826 65 165 265 365 - - - - 365 65 28827 66 166 266 366 166 66 266 66 - - 28828 67 167 267 367 - - - - - - 28829 68 168 268 368 168 68 - - - - 28830 69 169 269 369 - - 269 69 - - 28831 70 170 270 370 170 70 - - 370 70 28832 71 171 271 371 - - - - - - 28833 72 172 272 372 172 72 272 72 - - 28834 73 173 273 373 - - - - - - 28835 74 174 274 374 174 74 - - - - 28836 75 175 275 375 - - 275 75 375 75 28837 76 176 276 376 176 76 - - - - 28838 77 177 277 377 - - - - - - 28839 78 178 278 378 178 78 278 78 - - 28840 79 179 279 379 - - - - - - 28841 80 180 280 380 180 80 - - 380 80 28842 81 181 281 381 - - 281 81 - - 28843 82 182 282 382 182 82 - - - - 28844 83 183 283 383 - - - - - - 28845 84 184 284 384 184 84 284 84 - - 28846 85 185 285 385 - - - - 385 85 28847 86 186 286 386 186 86 - - - - 28848 87 187 287 387 - - 287 87 - - 28849 88 188 288 388 188 88 - - - - 28850 89 189 289 389 - - - - - - 28851 90 190 290 390 190 90 290 90 390 90 28852 91 191 291 391 - - - - - - 28853 92 192 292 392 192 92 - - - - 28854 93 193 293 393 - - 293 93 - - 28855 94 194 294 394 194 94 - - - - 28856 95 195 295 395 - - - - 395 95 28857 96 - 296 396 - - - - - - 28858 97 197 - 397 - - - - - - 28859 98 198 298 - - - - - - - 28860 99 - - - - - - - - - 28861 - - - - 100 0 - - - - 28862} 28863do_execsql_test joinD-992 { 28864 SELECT t1.*, t2.*, t3.*, t4.* 28865 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28866 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28867 LEFT JOIN t4 ON t1.d=t4.d 28868 WHERE t4.z>0 28869 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28870} { 28871 5 105 205 305 - - - - 305 5 28872 10 110 210 310 110 10 - - 310 10 28873 15 115 215 315 - - 215 15 315 15 28874 20 120 220 320 120 20 - - 320 20 28875 25 125 225 325 - - - - 325 25 28876 30 130 230 330 130 30 230 30 330 30 28877 35 135 235 335 - - - - 335 35 28878 40 140 240 340 140 40 - - 340 40 28879 45 145 245 345 - - 245 45 345 45 28880 50 150 250 350 150 50 - - 350 50 28881 55 155 255 355 - - - - 355 55 28882 60 160 260 360 160 60 260 60 360 60 28883 65 165 265 365 - - - - 365 65 28884 70 170 270 370 170 70 - - 370 70 28885 75 175 275 375 - - 275 75 375 75 28886 80 180 280 380 180 80 - - 380 80 28887 85 185 285 385 - - - - 385 85 28888 90 190 290 390 190 90 290 90 390 90 28889 95 195 295 395 - - - - 395 95 28890} 28891do_execsql_test joinD-993 { 28892 SELECT t1.*, t2.*, t3.*, t4.* 28893 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 28894 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 28895 LEFT JOIN t4 ON t1.d=t4.d 28896 WHERE t4.z IS NULL OR t4.z>0 28897 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 28898} { 28899 1 101 201 301 - - - - - - 28900 2 102 202 302 102 2 - - - - 28901 3 103 203 303 - - 203 3 - - 28902 4 104 204 304 104 4 - - - - 28903 5 105 205 305 - - - - 305 5 28904 6 106 206 306 106 6 206 6 - - 28905 7 107 207 307 - - - - - - 28906 8 108 208 308 108 8 - - - - 28907 9 109 209 309 - - 209 9 - - 28908 10 110 210 310 110 10 - - 310 10 28909 11 111 211 311 - - - - - - 28910 12 112 212 312 112 12 212 12 - - 28911 13 113 213 313 - - - - - - 28912 14 114 214 314 114 14 - - - - 28913 15 115 215 315 - - 215 15 315 15 28914 16 116 216 316 116 16 - - - - 28915 17 117 217 317 - - - - - - 28916 18 118 218 318 118 18 218 18 - - 28917 19 119 219 319 - - - - - - 28918 20 120 220 320 120 20 - - 320 20 28919 21 121 221 321 - - 221 21 - - 28920 22 122 222 322 122 22 - - - - 28921 23 123 223 323 - - - - - - 28922 24 124 224 324 124 24 224 24 - - 28923 25 125 225 325 - - - - 325 25 28924 26 126 226 326 126 26 - - - - 28925 27 127 227 327 - - 227 27 - - 28926 28 128 228 328 128 28 - - - - 28927 29 129 229 329 - - - - - - 28928 30 130 230 330 130 30 230 30 330 30 28929 31 131 231 331 - - - - - - 28930 32 132 232 332 132 32 - - - - 28931 33 133 233 333 - - 233 33 - - 28932 34 134 234 334 134 34 - - - - 28933 35 135 235 335 - - - - 335 35 28934 36 136 236 336 136 36 236 36 - - 28935 37 137 237 337 - - - - - - 28936 38 138 238 338 138 38 - - - - 28937 39 139 239 339 - - 239 39 - - 28938 40 140 240 340 140 40 - - 340 40 28939 41 141 241 341 - - - - - - 28940 42 142 242 342 142 42 242 42 - - 28941 43 143 243 343 - - - - - - 28942 44 144 244 344 144 44 - - - - 28943 45 145 245 345 - - 245 45 345 45 28944 46 146 246 346 146 46 - - - - 28945 47 147 247 347 - - - - - - 28946 48 148 248 348 148 48 248 48 - - 28947 49 149 249 349 - - - - - - 28948 50 150 250 350 150 50 - - 350 50 28949 51 151 251 351 - - 251 51 - - 28950 52 152 252 352 152 52 - - - - 28951 53 153 253 353 - - - - - - 28952 54 154 254 354 154 54 254 54 - - 28953 55 155 255 355 - - - - 355 55 28954 56 156 256 356 156 56 - - - - 28955 57 157 257 357 - - 257 57 - - 28956 58 158 258 358 158 58 - - - - 28957 59 159 259 359 - - - - - - 28958 60 160 260 360 160 60 260 60 360 60 28959 61 161 261 361 - - - - - - 28960 62 162 262 362 162 62 - - - - 28961 63 163 263 363 - - 263 63 - - 28962 64 164 264 364 164 64 - - - - 28963 65 165 265 365 - - - - 365 65 28964 66 166 266 366 166 66 266 66 - - 28965 67 167 267 367 - - - - - - 28966 68 168 268 368 168 68 - - - - 28967 69 169 269 369 - - 269 69 - - 28968 70 170 270 370 170 70 - - 370 70 28969 71 171 271 371 - - - - - - 28970 72 172 272 372 172 72 272 72 - - 28971 73 173 273 373 - - - - - - 28972 74 174 274 374 174 74 - - - - 28973 75 175 275 375 - - 275 75 375 75 28974 76 176 276 376 176 76 - - - - 28975 77 177 277 377 - - - - - - 28976 78 178 278 378 178 78 278 78 - - 28977 79 179 279 379 - - - - - - 28978 80 180 280 380 180 80 - - 380 80 28979 81 181 281 381 - - 281 81 - - 28980 82 182 282 382 182 82 - - - - 28981 83 183 283 383 - - - - - - 28982 84 184 284 384 184 84 284 84 - - 28983 85 185 285 385 - - - - 385 85 28984 86 186 286 386 186 86 - - - - 28985 87 187 287 387 - - 287 87 - - 28986 88 188 288 388 188 88 - - - - 28987 89 189 289 389 - - - - - - 28988 90 190 290 390 190 90 290 90 390 90 28989 91 191 291 391 - - - - - - 28990 92 192 292 392 192 92 - - - - 28991 93 193 293 393 - - 293 93 - - 28992 94 194 294 394 194 94 - - - - 28993 95 195 295 395 - - - - 395 95 28994 96 - 296 396 - - - - - - 28995 97 197 - 397 - - - - - - 28996 98 198 298 - - - - - - - 28997 99 - - - - - - - - - 28998 - - - - 100 0 - - - - 28999} 29000do_execsql_test joinD-994 { 29001 SELECT t1.*, t2.*, t3.*, t4.* 29002 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29003 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29004 LEFT JOIN t4 ON t1.d=t4.d 29005 WHERE t2.x>0 AND t4.z>0 29006 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29007} { 29008 10 110 210 310 110 10 - - 310 10 29009 20 120 220 320 120 20 - - 320 20 29010 30 130 230 330 130 30 230 30 330 30 29011 40 140 240 340 140 40 - - 340 40 29012 50 150 250 350 150 50 - - 350 50 29013 60 160 260 360 160 60 260 60 360 60 29014 70 170 270 370 170 70 - - 370 70 29015 80 180 280 380 180 80 - - 380 80 29016 90 190 290 390 190 90 290 90 390 90 29017} 29018do_execsql_test joinD-995 { 29019 SELECT t1.*, t2.*, t3.*, t4.* 29020 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29021 LEFT JOIN t3 ON t1.c=t3.c 29022 LEFT JOIN t4 ON t1.d=t4.d 29023 WHERE t4.z>0 AND t3.y>0 29024 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29025} { 29026 15 115 215 315 - - 215 15 315 15 29027 30 130 230 330 130 30 230 30 330 30 29028 45 145 245 345 - - 245 45 345 45 29029 60 160 260 360 160 60 260 60 360 60 29030 75 175 275 375 - - 275 75 375 75 29031 90 190 290 390 190 90 290 90 390 90 29032} 29033do_execsql_test joinD-996 { 29034 SELECT t1.*, t2.*, t3.*, t4.* 29035 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29036 LEFT JOIN t3 ON t1.c=t3.c 29037 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 29038 WHERE t2.x>0 AND t3.y>0 29039 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29040} { 29041 6 106 206 306 106 6 206 6 - - 29042 12 112 212 312 112 12 212 12 - - 29043 18 118 218 318 118 18 218 18 - - 29044 24 124 224 324 124 24 224 24 - - 29045 30 130 230 330 130 30 230 30 330 30 29046 36 136 236 336 136 36 236 36 - - 29047 42 142 242 342 142 42 242 42 - - 29048 48 148 248 348 148 48 248 48 - - 29049 54 154 254 354 154 54 254 54 - - 29050 60 160 260 360 160 60 260 60 360 60 29051 66 166 266 366 166 66 266 66 - - 29052 72 172 272 372 172 72 272 72 - - 29053 78 178 278 378 178 78 278 78 - - 29054 84 184 284 384 184 84 284 84 - - 29055 90 190 290 390 190 90 290 90 390 90 29056} 29057do_execsql_test joinD-997 { 29058 SELECT t1.*, t2.*, t3.*, t4.* 29059 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29060 LEFT JOIN t3 ON t1.c=t3.c 29061 LEFT JOIN t4 ON t1.d=t4.d 29062 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 29063 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29064} { 29065 30 130 230 330 130 30 230 30 330 30 29066 60 160 260 360 160 60 260 60 360 60 29067 90 190 290 390 190 90 290 90 390 90 29068} 29069do_execsql_test joinD-998 { 29070 SELECT t1.*, t2.*, t3.*, t4.* 29071 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 29072 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 29073 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 29074 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29075} { 29076 0 100 200 300 - - - - - - 29077 1 101 201 301 - - - - - - 29078 2 102 202 302 102 2 - - - - 29079 3 103 203 303 - - 203 3 - - 29080 4 104 204 304 104 4 - - - - 29081 5 105 205 305 - - - - 305 5 29082 6 106 206 306 106 6 206 6 - - 29083 7 107 207 307 - - - - - - 29084 8 108 208 308 108 8 - - - - 29085 9 109 209 309 - - 209 9 - - 29086 10 110 210 310 110 10 - - 310 10 29087 11 111 211 311 - - - - - - 29088 12 112 212 312 112 12 212 12 - - 29089 13 113 213 313 - - - - - - 29090 14 114 214 314 114 14 - - - - 29091 15 115 215 315 - - 215 15 315 15 29092 16 116 216 316 116 16 - - - - 29093 17 117 217 317 - - - - - - 29094 18 118 218 318 118 18 218 18 - - 29095 19 119 219 319 - - - - - - 29096 20 120 220 320 120 20 - - 320 20 29097 21 121 221 321 - - 221 21 - - 29098 22 122 222 322 122 22 - - - - 29099 23 123 223 323 - - - - - - 29100 24 124 224 324 124 24 224 24 - - 29101 25 125 225 325 - - - - 325 25 29102 26 126 226 326 126 26 - - - - 29103 27 127 227 327 - - 227 27 - - 29104 28 128 228 328 128 28 - - - - 29105 29 129 229 329 - - - - - - 29106 30 130 230 330 130 30 230 30 330 30 29107 31 131 231 331 - - - - - - 29108 32 132 232 332 132 32 - - - - 29109 33 133 233 333 - - 233 33 - - 29110 34 134 234 334 134 34 - - - - 29111 35 135 235 335 - - - - 335 35 29112 36 136 236 336 136 36 236 36 - - 29113 37 137 237 337 - - - - - - 29114 38 138 238 338 138 38 - - - - 29115 39 139 239 339 - - 239 39 - - 29116 40 140 240 340 140 40 - - 340 40 29117 41 141 241 341 - - - - - - 29118 42 142 242 342 142 42 242 42 - - 29119 43 143 243 343 - - - - - - 29120 44 144 244 344 144 44 - - - - 29121 45 145 245 345 - - 245 45 345 45 29122 46 146 246 346 146 46 - - - - 29123 47 147 247 347 - - - - - - 29124 48 148 248 348 148 48 248 48 - - 29125 49 149 249 349 - - - - - - 29126 50 150 250 350 150 50 - - 350 50 29127 51 151 251 351 - - 251 51 - - 29128 52 152 252 352 152 52 - - - - 29129 53 153 253 353 - - - - - - 29130 54 154 254 354 154 54 254 54 - - 29131 55 155 255 355 - - - - 355 55 29132 56 156 256 356 156 56 - - - - 29133 57 157 257 357 - - 257 57 - - 29134 58 158 258 358 158 58 - - - - 29135 59 159 259 359 - - - - - - 29136 60 160 260 360 160 60 260 60 360 60 29137 61 161 261 361 - - - - - - 29138 62 162 262 362 162 62 - - - - 29139 63 163 263 363 - - 263 63 - - 29140 64 164 264 364 164 64 - - - - 29141 65 165 265 365 - - - - 365 65 29142 66 166 266 366 166 66 266 66 - - 29143 67 167 267 367 - - - - - - 29144 68 168 268 368 168 68 - - - - 29145 69 169 269 369 - - 269 69 - - 29146 70 170 270 370 170 70 - - 370 70 29147 71 171 271 371 - - - - - - 29148 72 172 272 372 172 72 272 72 - - 29149 73 173 273 373 - - - - - - 29150 74 174 274 374 174 74 - - - - 29151 75 175 275 375 - - 275 75 375 75 29152 76 176 276 376 176 76 - - - - 29153 77 177 277 377 - - - - - - 29154 78 178 278 378 178 78 278 78 - - 29155 79 179 279 379 - - - - - - 29156 80 180 280 380 180 80 - - 380 80 29157 81 181 281 381 - - 281 81 - - 29158 82 182 282 382 182 82 - - - - 29159 83 183 283 383 - - - - - - 29160 84 184 284 384 184 84 284 84 - - 29161 85 185 285 385 - - - - 385 85 29162 86 186 286 386 186 86 - - - - 29163 87 187 287 387 - - 287 87 - - 29164 88 188 288 388 188 88 - - - - 29165 89 189 289 389 - - - - - - 29166 90 190 290 390 190 90 290 90 390 90 29167 91 191 291 391 - - - - - - 29168 92 192 292 392 192 92 - - - - 29169 93 193 293 393 - - 293 93 - - 29170 94 194 294 394 194 94 - - - - 29171 95 195 295 395 - - - - 395 95 29172 96 - 296 396 - - - - - - 29173 97 197 - 397 - - - - - - 29174 98 198 298 - - - - - - - 29175 99 - - - - - - - - - 29176 - - - - 100 0 - - - - 29177} 29178do_execsql_test joinD-999 { 29179 SELECT t1.*, t2.*, t3.*, t4.* 29180 FROM t1 FULL JOIN t2 ON t2.x>0 29181 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 29182 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 29183 WHERE t1.b = t2.b 29184 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29185} { 29186 2 102 202 302 102 2 - - - - 29187 4 104 204 304 104 4 - - - - 29188 6 106 206 306 106 6 206 6 - - 29189 8 108 208 308 108 8 - - - - 29190 10 110 210 310 110 10 - - 310 10 29191 12 112 212 312 112 12 212 12 - - 29192 14 114 214 314 114 14 - - - - 29193 16 116 216 316 116 16 - - - - 29194 18 118 218 318 118 18 218 18 - - 29195 20 120 220 320 120 20 - - 320 20 29196 22 122 222 322 122 22 - - - - 29197 24 124 224 324 124 24 224 24 - - 29198 26 126 226 326 126 26 - - - - 29199 28 128 228 328 128 28 - - - - 29200 30 130 230 330 130 30 230 30 330 30 29201 32 132 232 332 132 32 - - - - 29202 34 134 234 334 134 34 - - - - 29203 36 136 236 336 136 36 236 36 - - 29204 38 138 238 338 138 38 - - - - 29205 40 140 240 340 140 40 - - 340 40 29206 42 142 242 342 142 42 242 42 - - 29207 44 144 244 344 144 44 - - - - 29208 46 146 246 346 146 46 - - - - 29209 48 148 248 348 148 48 248 48 - - 29210 50 150 250 350 150 50 - - 350 50 29211 52 152 252 352 152 52 - - - - 29212 54 154 254 354 154 54 254 54 - - 29213 56 156 256 356 156 56 - - - - 29214 58 158 258 358 158 58 - - - - 29215 60 160 260 360 160 60 260 60 360 60 29216 62 162 262 362 162 62 - - - - 29217 64 164 264 364 164 64 - - - - 29218 66 166 266 366 166 66 266 66 - - 29219 68 168 268 368 168 68 - - - - 29220 70 170 270 370 170 70 - - 370 70 29221 72 172 272 372 172 72 272 72 - - 29222 74 174 274 374 174 74 - - - - 29223 76 176 276 376 176 76 - - - - 29224 78 178 278 378 178 78 278 78 - - 29225 80 180 280 380 180 80 - - 380 80 29226 82 182 282 382 182 82 - - - - 29227 84 184 284 384 184 84 284 84 - - 29228 86 186 286 386 186 86 - - - - 29229 88 188 288 388 188 88 - - - - 29230 90 190 290 390 190 90 290 90 390 90 29231 92 192 292 392 192 92 - - - - 29232 94 194 294 394 194 94 - - - - 29233} 29234do_execsql_test joinD-1000 { 29235 SELECT t1.*, t2.*, t3.*, t4.* 29236 FROM t1 FULL JOIN t2 ON t2.x>0 29237 LEFT JOIN t3 ON t3.y>0 29238 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 29239 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 29240 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29241} { 29242 6 106 206 306 106 6 206 6 - - 29243 12 112 212 312 112 12 212 12 - - 29244 18 118 218 318 118 18 218 18 - - 29245 24 124 224 324 124 24 224 24 - - 29246 30 130 230 330 130 30 230 30 330 30 29247 36 136 236 336 136 36 236 36 - - 29248 42 142 242 342 142 42 242 42 - - 29249 48 148 248 348 148 48 248 48 - - 29250 54 154 254 354 154 54 254 54 - - 29251 60 160 260 360 160 60 260 60 360 60 29252 66 166 266 366 166 66 266 66 - - 29253 72 172 272 372 172 72 272 72 - - 29254 78 178 278 378 178 78 278 78 - - 29255 84 184 284 384 184 84 284 84 - - 29256 90 190 290 390 190 90 290 90 390 90 29257} 29258do_execsql_test joinD-1001 { 29259 SELECT t1.*, t2.*, t3.*, t4.* 29260 FROM t1 FULL JOIN t2 ON t2.x>0 29261 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 29262 LEFT JOIN t4 ON t4.z>0 29263 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 29264 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29265} { 29266 10 110 210 310 110 10 - - 310 10 29267 20 120 220 320 120 20 - - 320 20 29268 30 130 230 330 130 30 230 30 330 30 29269 40 140 240 340 140 40 - - 340 40 29270 50 150 250 350 150 50 - - 350 50 29271 60 160 260 360 160 60 260 60 360 60 29272 70 170 270 370 170 70 - - 370 70 29273 80 180 280 380 180 80 - - 380 80 29274 90 190 290 390 190 90 290 90 390 90 29275} 29276do_execsql_test joinD-1002 { 29277 SELECT t1.*, t2.*, t3.*, t4.* 29278 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29279 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 29280 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 29281 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29282} { 29283 0 100 200 300 - - - - - - 29284 1 101 201 301 - - - - - - 29285 2 102 202 302 102 2 - - - - 29286 3 103 203 303 - - 203 3 - - 29287 4 104 204 304 104 4 - - - - 29288 5 105 205 305 - - - - 305 5 29289 6 106 206 306 106 6 206 6 - - 29290 7 107 207 307 - - - - - - 29291 8 108 208 308 108 8 - - - - 29292 9 109 209 309 - - 209 9 - - 29293 10 110 210 310 110 10 - - 310 10 29294 11 111 211 311 - - - - - - 29295 12 112 212 312 112 12 212 12 - - 29296 13 113 213 313 - - - - - - 29297 14 114 214 314 114 14 - - - - 29298 15 115 215 315 - - 215 15 315 15 29299 16 116 216 316 116 16 - - - - 29300 17 117 217 317 - - - - - - 29301 18 118 218 318 118 18 218 18 - - 29302 19 119 219 319 - - - - - - 29303 20 120 220 320 120 20 - - 320 20 29304 21 121 221 321 - - 221 21 - - 29305 22 122 222 322 122 22 - - - - 29306 23 123 223 323 - - - - - - 29307 24 124 224 324 124 24 224 24 - - 29308 25 125 225 325 - - - - 325 25 29309 26 126 226 326 126 26 - - - - 29310 27 127 227 327 - - 227 27 - - 29311 28 128 228 328 128 28 - - - - 29312 29 129 229 329 - - - - - - 29313 30 130 230 330 130 30 230 30 330 30 29314 31 131 231 331 - - - - - - 29315 32 132 232 332 132 32 - - - - 29316 33 133 233 333 - - 233 33 - - 29317 34 134 234 334 134 34 - - - - 29318 35 135 235 335 - - - - 335 35 29319 36 136 236 336 136 36 236 36 - - 29320 37 137 237 337 - - - - - - 29321 38 138 238 338 138 38 - - - - 29322 39 139 239 339 - - 239 39 - - 29323 40 140 240 340 140 40 - - 340 40 29324 41 141 241 341 - - - - - - 29325 42 142 242 342 142 42 242 42 - - 29326 43 143 243 343 - - - - - - 29327 44 144 244 344 144 44 - - - - 29328 45 145 245 345 - - 245 45 345 45 29329 46 146 246 346 146 46 - - - - 29330 47 147 247 347 - - - - - - 29331 48 148 248 348 148 48 248 48 - - 29332 49 149 249 349 - - - - - - 29333 50 150 250 350 150 50 - - 350 50 29334 51 151 251 351 - - 251 51 - - 29335 52 152 252 352 152 52 - - - - 29336 53 153 253 353 - - - - - - 29337 54 154 254 354 154 54 254 54 - - 29338 55 155 255 355 - - - - 355 55 29339 56 156 256 356 156 56 - - - - 29340 57 157 257 357 - - 257 57 - - 29341 58 158 258 358 158 58 - - - - 29342 59 159 259 359 - - - - - - 29343 60 160 260 360 160 60 260 60 360 60 29344 61 161 261 361 - - - - - - 29345 62 162 262 362 162 62 - - - - 29346 63 163 263 363 - - 263 63 - - 29347 64 164 264 364 164 64 - - - - 29348 65 165 265 365 - - - - 365 65 29349 66 166 266 366 166 66 266 66 - - 29350 67 167 267 367 - - - - - - 29351 68 168 268 368 168 68 - - - - 29352 69 169 269 369 - - 269 69 - - 29353 70 170 270 370 170 70 - - 370 70 29354 71 171 271 371 - - - - - - 29355 72 172 272 372 172 72 272 72 - - 29356 73 173 273 373 - - - - - - 29357 74 174 274 374 174 74 - - - - 29358 75 175 275 375 - - 275 75 375 75 29359 76 176 276 376 176 76 - - - - 29360 77 177 277 377 - - - - - - 29361 78 178 278 378 178 78 278 78 - - 29362 79 179 279 379 - - - - - - 29363 80 180 280 380 180 80 - - 380 80 29364 81 181 281 381 - - 281 81 - - 29365 82 182 282 382 182 82 - - - - 29366 83 183 283 383 - - - - - - 29367 84 184 284 384 184 84 284 84 - - 29368 85 185 285 385 - - - - 385 85 29369 86 186 286 386 186 86 - - - - 29370 87 187 287 387 - - 287 87 - - 29371 88 188 288 388 188 88 - - - - 29372 89 189 289 389 - - - - - - 29373 90 190 290 390 190 90 290 90 390 90 29374 91 191 291 391 - - - - - - 29375 92 192 292 392 192 92 - - - - 29376 93 193 293 393 - - 293 93 - - 29377 94 194 294 394 194 94 - - - - 29378 95 195 295 395 - - - - 395 95 29379 96 - 296 396 - - - - - - 29380 97 197 - 397 - - - - - - 29381 98 198 298 - - - - - - - 29382 99 - - - - - - - - - 29383 - - - - 100 0 - - - - 29384} 29385do_execsql_test joinD-1003 { 29386 SELECT t1.*, t2.*, t3.*, t4.* 29387 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29388 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29389 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 29390 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29391} { 29392 5 105 205 305 - - - - 305 5 29393 10 110 210 310 110 10 - - 310 10 29394 15 115 215 315 - - 215 15 315 15 29395 20 120 220 320 120 20 - - 320 20 29396 25 125 225 325 - - - - 325 25 29397 30 130 230 330 130 30 230 30 330 30 29398 35 135 235 335 - - - - 335 35 29399 40 140 240 340 140 40 - - 340 40 29400 45 145 245 345 - - 245 45 345 45 29401 50 150 250 350 150 50 - - 350 50 29402 55 155 255 355 - - - - 355 55 29403 60 160 260 360 160 60 260 60 360 60 29404 65 165 265 365 - - - - 365 65 29405 70 170 270 370 170 70 - - 370 70 29406 75 175 275 375 - - 275 75 375 75 29407 80 180 280 380 180 80 - - 380 80 29408 85 185 285 385 - - - - 385 85 29409 90 190 290 390 190 90 290 90 390 90 29410 95 195 295 395 - - - - 395 95 29411 - - - - - - - - 300 0 29412} 29413do_execsql_test joinD-1004 { 29414 SELECT t1.*, t2.*, t3.*, t4.* 29415 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29416 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29417 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 29418 WHERE t2.x>0 29419 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29420} { 29421 10 110 210 310 110 10 - - 310 10 29422 20 120 220 320 120 20 - - 320 20 29423 30 130 230 330 130 30 230 30 330 30 29424 40 140 240 340 140 40 - - 340 40 29425 50 150 250 350 150 50 - - 350 50 29426 60 160 260 360 160 60 260 60 360 60 29427 70 170 270 370 170 70 - - 370 70 29428 80 180 280 380 180 80 - - 380 80 29429 90 190 290 390 190 90 290 90 390 90 29430} 29431do_execsql_test joinD-1005 { 29432 SELECT t1.*, t2.*, t3.*, t4.* 29433 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29434 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29435 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 29436 WHERE (t2.x>0 OR t2.x IS NULL) 29437 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29438} { 29439 5 105 205 305 - - - - 305 5 29440 10 110 210 310 110 10 - - 310 10 29441 15 115 215 315 - - 215 15 315 15 29442 20 120 220 320 120 20 - - 320 20 29443 25 125 225 325 - - - - 325 25 29444 30 130 230 330 130 30 230 30 330 30 29445 35 135 235 335 - - - - 335 35 29446 40 140 240 340 140 40 - - 340 40 29447 45 145 245 345 - - 245 45 345 45 29448 50 150 250 350 150 50 - - 350 50 29449 55 155 255 355 - - - - 355 55 29450 60 160 260 360 160 60 260 60 360 60 29451 65 165 265 365 - - - - 365 65 29452 70 170 270 370 170 70 - - 370 70 29453 75 175 275 375 - - 275 75 375 75 29454 80 180 280 380 180 80 - - 380 80 29455 85 185 285 385 - - - - 385 85 29456 90 190 290 390 190 90 290 90 390 90 29457 95 195 295 395 - - - - 395 95 29458 - - - - - - - - 300 0 29459} 29460do_execsql_test joinD-1006 { 29461 SELECT t1.*, t2.*, t3.*, t4.* 29462 FROM t1 FULL JOIN t2 ON true 29463 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29464 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 29465 WHERE t1.b=t2.b AND t2.x>0 29466 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29467} { 29468 10 110 210 310 110 10 - - 310 10 29469 20 120 220 320 120 20 - - 320 20 29470 30 130 230 330 130 30 230 30 330 30 29471 40 140 240 340 140 40 - - 340 40 29472 50 150 250 350 150 50 - - 350 50 29473 60 160 260 360 160 60 260 60 360 60 29474 70 170 270 370 170 70 - - 370 70 29475 80 180 280 380 180 80 - - 380 80 29476 90 190 290 390 190 90 290 90 390 90 29477} 29478do_execsql_test joinD-1007 { 29479 SELECT t1.*, t2.*, t3.*, t4.* 29480 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29481 LEFT JOIN t3 ON t1.c=t3.c 29482 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 29483 WHERE t3.y>0 29484 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29485} { 29486 15 115 215 315 - - 215 15 315 15 29487 30 130 230 330 130 30 230 30 330 30 29488 45 145 245 345 - - 245 45 345 45 29489 60 160 260 360 160 60 260 60 360 60 29490 75 175 275 375 - - 275 75 375 75 29491 90 190 290 390 190 90 290 90 390 90 29492} 29493do_execsql_test joinD-1008 { 29494 SELECT t1.*, t2.*, t3.*, t4.* 29495 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29496 LEFT JOIN t3 ON t1.c=t3.c 29497 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 29498 WHERE t3.y>0 OR t3.y IS NULL 29499 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29500} { 29501 5 105 205 305 - - - - 305 5 29502 10 110 210 310 110 10 - - 310 10 29503 15 115 215 315 - - 215 15 315 15 29504 20 120 220 320 120 20 - - 320 20 29505 25 125 225 325 - - - - 325 25 29506 30 130 230 330 130 30 230 30 330 30 29507 35 135 235 335 - - - - 335 35 29508 40 140 240 340 140 40 - - 340 40 29509 45 145 245 345 - - 245 45 345 45 29510 50 150 250 350 150 50 - - 350 50 29511 55 155 255 355 - - - - 355 55 29512 60 160 260 360 160 60 260 60 360 60 29513 65 165 265 365 - - - - 365 65 29514 70 170 270 370 170 70 - - 370 70 29515 75 175 275 375 - - 275 75 375 75 29516 80 180 280 380 180 80 - - 380 80 29517 85 185 285 385 - - - - 385 85 29518 90 190 290 390 190 90 290 90 390 90 29519 95 195 295 395 - - - - 395 95 29520 - - - - - - - - 300 0 29521} 29522do_execsql_test joinD-1009 { 29523 SELECT t1.*, t2.*, t3.*, t4.* 29524 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29525 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29526 RIGHT JOIN t4 ON t1.d=t4.d 29527 WHERE t4.z>0 29528 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29529} { 29530 5 105 205 305 - - - - 305 5 29531 10 110 210 310 110 10 - - 310 10 29532 15 115 215 315 - - 215 15 315 15 29533 20 120 220 320 120 20 - - 320 20 29534 25 125 225 325 - - - - 325 25 29535 30 130 230 330 130 30 230 30 330 30 29536 35 135 235 335 - - - - 335 35 29537 40 140 240 340 140 40 - - 340 40 29538 45 145 245 345 - - 245 45 345 45 29539 50 150 250 350 150 50 - - 350 50 29540 55 155 255 355 - - - - 355 55 29541 60 160 260 360 160 60 260 60 360 60 29542 65 165 265 365 - - - - 365 65 29543 70 170 270 370 170 70 - - 370 70 29544 75 175 275 375 - - 275 75 375 75 29545 80 180 280 380 180 80 - - 380 80 29546 85 185 285 385 - - - - 385 85 29547 90 190 290 390 190 90 290 90 390 90 29548 95 195 295 395 - - - - 395 95 29549} 29550do_execsql_test joinD-1010 { 29551 SELECT t1.*, t2.*, t3.*, t4.* 29552 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29553 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29554 RIGHT JOIN t4 ON t1.d=t4.d 29555 WHERE t4.z IS NULL OR t4.z>0 29556 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29557} { 29558 5 105 205 305 - - - - 305 5 29559 10 110 210 310 110 10 - - 310 10 29560 15 115 215 315 - - 215 15 315 15 29561 20 120 220 320 120 20 - - 320 20 29562 25 125 225 325 - - - - 325 25 29563 30 130 230 330 130 30 230 30 330 30 29564 35 135 235 335 - - - - 335 35 29565 40 140 240 340 140 40 - - 340 40 29566 45 145 245 345 - - 245 45 345 45 29567 50 150 250 350 150 50 - - 350 50 29568 55 155 255 355 - - - - 355 55 29569 60 160 260 360 160 60 260 60 360 60 29570 65 165 265 365 - - - - 365 65 29571 70 170 270 370 170 70 - - 370 70 29572 75 175 275 375 - - 275 75 375 75 29573 80 180 280 380 180 80 - - 380 80 29574 85 185 285 385 - - - - 385 85 29575 90 190 290 390 190 90 290 90 390 90 29576 95 195 295 395 - - - - 395 95 29577} 29578do_execsql_test joinD-1011 { 29579 SELECT t1.*, t2.*, t3.*, t4.* 29580 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29581 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29582 RIGHT JOIN t4 ON t1.d=t4.d 29583 WHERE t2.x>0 AND t4.z>0 29584 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29585} { 29586 10 110 210 310 110 10 - - 310 10 29587 20 120 220 320 120 20 - - 320 20 29588 30 130 230 330 130 30 230 30 330 30 29589 40 140 240 340 140 40 - - 340 40 29590 50 150 250 350 150 50 - - 350 50 29591 60 160 260 360 160 60 260 60 360 60 29592 70 170 270 370 170 70 - - 370 70 29593 80 180 280 380 180 80 - - 380 80 29594 90 190 290 390 190 90 290 90 390 90 29595} 29596do_execsql_test joinD-1012 { 29597 SELECT t1.*, t2.*, t3.*, t4.* 29598 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29599 LEFT JOIN t3 ON t1.c=t3.c 29600 RIGHT JOIN t4 ON t1.d=t4.d 29601 WHERE t4.z>0 AND t3.y>0 29602 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29603} { 29604 15 115 215 315 - - 215 15 315 15 29605 30 130 230 330 130 30 230 30 330 30 29606 45 145 245 345 - - 245 45 345 45 29607 60 160 260 360 160 60 260 60 360 60 29608 75 175 275 375 - - 275 75 375 75 29609 90 190 290 390 190 90 290 90 390 90 29610} 29611do_execsql_test joinD-1013 { 29612 SELECT t1.*, t2.*, t3.*, t4.* 29613 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29614 LEFT JOIN t3 ON t1.c=t3.c 29615 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 29616 WHERE t2.x>0 AND t3.y>0 29617 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29618} { 29619 30 130 230 330 130 30 230 30 330 30 29620 60 160 260 360 160 60 260 60 360 60 29621 90 190 290 390 190 90 290 90 390 90 29622} 29623do_execsql_test joinD-1014 { 29624 SELECT t1.*, t2.*, t3.*, t4.* 29625 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29626 LEFT JOIN t3 ON t1.c=t3.c 29627 RIGHT JOIN t4 ON t1.d=t4.d 29628 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 29629 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29630} { 29631 30 130 230 330 130 30 230 30 330 30 29632 60 160 260 360 160 60 260 60 360 60 29633 90 190 290 390 190 90 290 90 390 90 29634} 29635do_execsql_test joinD-1015 { 29636 SELECT t1.*, t2.*, t3.*, t4.* 29637 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 29638 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 29639 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 29640 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29641} { 29642 5 105 205 305 - - - - 305 5 29643 10 110 210 310 110 10 - - 310 10 29644 15 115 215 315 - - 215 15 315 15 29645 20 120 220 320 120 20 - - 320 20 29646 25 125 225 325 - - - - 325 25 29647 30 130 230 330 130 30 230 30 330 30 29648 35 135 235 335 - - - - 335 35 29649 40 140 240 340 140 40 - - 340 40 29650 45 145 245 345 - - 245 45 345 45 29651 50 150 250 350 150 50 - - 350 50 29652 55 155 255 355 - - - - 355 55 29653 60 160 260 360 160 60 260 60 360 60 29654 65 165 265 365 - - - - 365 65 29655 70 170 270 370 170 70 - - 370 70 29656 75 175 275 375 - - 275 75 375 75 29657 80 180 280 380 180 80 - - 380 80 29658 85 185 285 385 - - - - 385 85 29659 90 190 290 390 190 90 290 90 390 90 29660 95 195 295 395 - - - - 395 95 29661 - - - - - - - - 300 0 29662} 29663do_execsql_test joinD-1016 { 29664 SELECT t1.*, t2.*, t3.*, t4.* 29665 FROM t1 FULL JOIN t2 ON t2.x>0 29666 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 29667 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 29668 WHERE t1.b = t2.b 29669 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29670} { 29671 10 110 210 310 110 10 - - 310 10 29672 20 120 220 320 120 20 - - 320 20 29673 30 130 230 330 130 30 230 30 330 30 29674 40 140 240 340 140 40 - - 340 40 29675 50 150 250 350 150 50 - - 350 50 29676 60 160 260 360 160 60 260 60 360 60 29677 70 170 270 370 170 70 - - 370 70 29678 80 180 280 380 180 80 - - 380 80 29679 90 190 290 390 190 90 290 90 390 90 29680} 29681do_execsql_test joinD-1017 { 29682 SELECT t1.*, t2.*, t3.*, t4.* 29683 FROM t1 FULL JOIN t2 ON t2.x>0 29684 LEFT JOIN t3 ON t3.y>0 29685 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 29686 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 29687 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29688} { 29689 30 130 230 330 130 30 230 30 330 30 29690 60 160 260 360 160 60 260 60 360 60 29691 90 190 290 390 190 90 290 90 390 90 29692} 29693do_execsql_test joinD-1018 { 29694 SELECT t1.*, t2.*, t3.*, t4.* 29695 FROM t1 FULL JOIN t2 ON t2.x>0 29696 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 29697 RIGHT JOIN t4 ON t4.z>0 29698 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 29699 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29700} { 29701 10 110 210 310 110 10 - - 310 10 29702 20 120 220 320 120 20 - - 320 20 29703 30 130 230 330 130 30 230 30 330 30 29704 40 140 240 340 140 40 - - 340 40 29705 50 150 250 350 150 50 - - 350 50 29706 60 160 260 360 160 60 260 60 360 60 29707 70 170 270 370 170 70 - - 370 70 29708 80 180 280 380 180 80 - - 380 80 29709 90 190 290 390 190 90 290 90 390 90 29710} 29711do_execsql_test joinD-1019 { 29712 SELECT t1.*, t2.*, t3.*, t4.* 29713 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29714 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 29715 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 29716 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29717} { 29718 5 105 205 305 - - - - 305 5 29719 10 110 210 310 110 10 - - 310 10 29720 15 115 215 315 - - 215 15 315 15 29721 20 120 220 320 120 20 - - 320 20 29722 25 125 225 325 - - - - 325 25 29723 30 130 230 330 130 30 230 30 330 30 29724 35 135 235 335 - - - - 335 35 29725 40 140 240 340 140 40 - - 340 40 29726 45 145 245 345 - - 245 45 345 45 29727 50 150 250 350 150 50 - - 350 50 29728 55 155 255 355 - - - - 355 55 29729 60 160 260 360 160 60 260 60 360 60 29730 65 165 265 365 - - - - 365 65 29731 70 170 270 370 170 70 - - 370 70 29732 75 175 275 375 - - 275 75 375 75 29733 80 180 280 380 180 80 - - 380 80 29734 85 185 285 385 - - - - 385 85 29735 90 190 290 390 190 90 290 90 390 90 29736 95 195 295 395 - - - - 395 95 29737 - - - - - - - - 300 0 29738} 29739do_execsql_test joinD-1020 { 29740 SELECT t1.*, t2.*, t3.*, t4.* 29741 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 29742 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29743 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 29744 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29745} { 29746 0 100 200 300 - - - - - - 29747 1 101 201 301 - - - - - - 29748 2 102 202 302 102 2 - - - - 29749 3 103 203 303 - - 203 3 - - 29750 4 104 204 304 104 4 - - - - 29751 5 105 205 305 - - - - 305 5 29752 6 106 206 306 106 6 206 6 - - 29753 7 107 207 307 - - - - - - 29754 8 108 208 308 108 8 - - - - 29755 9 109 209 309 - - 209 9 - - 29756 10 110 210 310 110 10 - - 310 10 29757 11 111 211 311 - - - - - - 29758 12 112 212 312 112 12 212 12 - - 29759 13 113 213 313 - - - - - - 29760 14 114 214 314 114 14 - - - - 29761 15 115 215 315 - - 215 15 315 15 29762 16 116 216 316 116 16 - - - - 29763 17 117 217 317 - - - - - - 29764 18 118 218 318 118 18 218 18 - - 29765 19 119 219 319 - - - - - - 29766 20 120 220 320 120 20 - - 320 20 29767 21 121 221 321 - - 221 21 - - 29768 22 122 222 322 122 22 - - - - 29769 23 123 223 323 - - - - - - 29770 24 124 224 324 124 24 224 24 - - 29771 25 125 225 325 - - - - 325 25 29772 26 126 226 326 126 26 - - - - 29773 27 127 227 327 - - 227 27 - - 29774 28 128 228 328 128 28 - - - - 29775 29 129 229 329 - - - - - - 29776 30 130 230 330 130 30 230 30 330 30 29777 31 131 231 331 - - - - - - 29778 32 132 232 332 132 32 - - - - 29779 33 133 233 333 - - 233 33 - - 29780 34 134 234 334 134 34 - - - - 29781 35 135 235 335 - - - - 335 35 29782 36 136 236 336 136 36 236 36 - - 29783 37 137 237 337 - - - - - - 29784 38 138 238 338 138 38 - - - - 29785 39 139 239 339 - - 239 39 - - 29786 40 140 240 340 140 40 - - 340 40 29787 41 141 241 341 - - - - - - 29788 42 142 242 342 142 42 242 42 - - 29789 43 143 243 343 - - - - - - 29790 44 144 244 344 144 44 - - - - 29791 45 145 245 345 - - 245 45 345 45 29792 46 146 246 346 146 46 - - - - 29793 47 147 247 347 - - - - - - 29794 48 148 248 348 148 48 248 48 - - 29795 49 149 249 349 - - - - - - 29796 50 150 250 350 150 50 - - 350 50 29797 51 151 251 351 - - 251 51 - - 29798 52 152 252 352 152 52 - - - - 29799 53 153 253 353 - - - - - - 29800 54 154 254 354 154 54 254 54 - - 29801 55 155 255 355 - - - - 355 55 29802 56 156 256 356 156 56 - - - - 29803 57 157 257 357 - - 257 57 - - 29804 58 158 258 358 158 58 - - - - 29805 59 159 259 359 - - - - - - 29806 60 160 260 360 160 60 260 60 360 60 29807 61 161 261 361 - - - - - - 29808 62 162 262 362 162 62 - - - - 29809 63 163 263 363 - - 263 63 - - 29810 64 164 264 364 164 64 - - - - 29811 65 165 265 365 - - - - 365 65 29812 66 166 266 366 166 66 266 66 - - 29813 67 167 267 367 - - - - - - 29814 68 168 268 368 168 68 - - - - 29815 69 169 269 369 - - 269 69 - - 29816 70 170 270 370 170 70 - - 370 70 29817 71 171 271 371 - - - - - - 29818 72 172 272 372 172 72 272 72 - - 29819 73 173 273 373 - - - - - - 29820 74 174 274 374 174 74 - - - - 29821 75 175 275 375 - - 275 75 375 75 29822 76 176 276 376 176 76 - - - - 29823 77 177 277 377 - - - - - - 29824 78 178 278 378 178 78 278 78 - - 29825 79 179 279 379 - - - - - - 29826 80 180 280 380 180 80 - - 380 80 29827 81 181 281 381 - - 281 81 - - 29828 82 182 282 382 182 82 - - - - 29829 83 183 283 383 - - - - - - 29830 84 184 284 384 184 84 284 84 - - 29831 85 185 285 385 - - - - 385 85 29832 86 186 286 386 186 86 - - - - 29833 87 187 287 387 - - 287 87 - - 29834 88 188 288 388 188 88 - - - - 29835 89 189 289 389 - - - - - - 29836 90 190 290 390 190 90 290 90 390 90 29837 91 191 291 391 - - - - - - 29838 92 192 292 392 192 92 - - - - 29839 93 193 293 393 - - 293 93 - - 29840 94 194 294 394 194 94 - - - - 29841 95 195 295 395 - - - - 395 95 29842 96 - 296 396 - - - - - - 29843 97 197 - 397 - - - - - - 29844 98 198 298 - - - - - - - 29845 99 - - - - - - - - - 29846 - - - - 100 0 - - - - 29847 - - - - - - - - 300 0 29848} 29849do_execsql_test joinD-1021 { 29850 SELECT t1.*, t2.*, t3.*, t4.* 29851 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29852 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29853 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 29854 WHERE t2.x>0 29855 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29856} { 29857 2 102 202 302 102 2 - - - - 29858 4 104 204 304 104 4 - - - - 29859 6 106 206 306 106 6 206 6 - - 29860 8 108 208 308 108 8 - - - - 29861 10 110 210 310 110 10 - - 310 10 29862 12 112 212 312 112 12 212 12 - - 29863 14 114 214 314 114 14 - - - - 29864 16 116 216 316 116 16 - - - - 29865 18 118 218 318 118 18 218 18 - - 29866 20 120 220 320 120 20 - - 320 20 29867 22 122 222 322 122 22 - - - - 29868 24 124 224 324 124 24 224 24 - - 29869 26 126 226 326 126 26 - - - - 29870 28 128 228 328 128 28 - - - - 29871 30 130 230 330 130 30 230 30 330 30 29872 32 132 232 332 132 32 - - - - 29873 34 134 234 334 134 34 - - - - 29874 36 136 236 336 136 36 236 36 - - 29875 38 138 238 338 138 38 - - - - 29876 40 140 240 340 140 40 - - 340 40 29877 42 142 242 342 142 42 242 42 - - 29878 44 144 244 344 144 44 - - - - 29879 46 146 246 346 146 46 - - - - 29880 48 148 248 348 148 48 248 48 - - 29881 50 150 250 350 150 50 - - 350 50 29882 52 152 252 352 152 52 - - - - 29883 54 154 254 354 154 54 254 54 - - 29884 56 156 256 356 156 56 - - - - 29885 58 158 258 358 158 58 - - - - 29886 60 160 260 360 160 60 260 60 360 60 29887 62 162 262 362 162 62 - - - - 29888 64 164 264 364 164 64 - - - - 29889 66 166 266 366 166 66 266 66 - - 29890 68 168 268 368 168 68 - - - - 29891 70 170 270 370 170 70 - - 370 70 29892 72 172 272 372 172 72 272 72 - - 29893 74 174 274 374 174 74 - - - - 29894 76 176 276 376 176 76 - - - - 29895 78 178 278 378 178 78 278 78 - - 29896 80 180 280 380 180 80 - - 380 80 29897 82 182 282 382 182 82 - - - - 29898 84 184 284 384 184 84 284 84 - - 29899 86 186 286 386 186 86 - - - - 29900 88 188 288 388 188 88 - - - - 29901 90 190 290 390 190 90 290 90 390 90 29902 92 192 292 392 192 92 - - - - 29903 94 194 294 394 194 94 - - - - 29904} 29905do_execsql_test joinD-1022 { 29906 SELECT t1.*, t2.*, t3.*, t4.* 29907 FROM t1 FULL JOIN t2 ON t1.b=t2.b 29908 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 29909 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 29910 WHERE (t2.x>0 OR t2.x IS NULL) 29911 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 29912} { 29913 1 101 201 301 - - - - - - 29914 2 102 202 302 102 2 - - - - 29915 3 103 203 303 - - 203 3 - - 29916 4 104 204 304 104 4 - - - - 29917 5 105 205 305 - - - - 305 5 29918 6 106 206 306 106 6 206 6 - - 29919 7 107 207 307 - - - - - - 29920 8 108 208 308 108 8 - - - - 29921 9 109 209 309 - - 209 9 - - 29922 10 110 210 310 110 10 - - 310 10 29923 11 111 211 311 - - - - - - 29924 12 112 212 312 112 12 212 12 - - 29925 13 113 213 313 - - - - - - 29926 14 114 214 314 114 14 - - - - 29927 15 115 215 315 - - 215 15 315 15 29928 16 116 216 316 116 16 - - - - 29929 17 117 217 317 - - - - - - 29930 18 118 218 318 118 18 218 18 - - 29931 19 119 219 319 - - - - - - 29932 20 120 220 320 120 20 - - 320 20 29933 21 121 221 321 - - 221 21 - - 29934 22 122 222 322 122 22 - - - - 29935 23 123 223 323 - - - - - - 29936 24 124 224 324 124 24 224 24 - - 29937 25 125 225 325 - - - - 325 25 29938 26 126 226 326 126 26 - - - - 29939 27 127 227 327 - - 227 27 - - 29940 28 128 228 328 128 28 - - - - 29941 29 129 229 329 - - - - - - 29942 30 130 230 330 130 30 230 30 330 30 29943 31 131 231 331 - - - - - - 29944 32 132 232 332 132 32 - - - - 29945 33 133 233 333 - - 233 33 - - 29946 34 134 234 334 134 34 - - - - 29947 35 135 235 335 - - - - 335 35 29948 36 136 236 336 136 36 236 36 - - 29949 37 137 237 337 - - - - - - 29950 38 138 238 338 138 38 - - - - 29951 39 139 239 339 - - 239 39 - - 29952 40 140 240 340 140 40 - - 340 40 29953 41 141 241 341 - - - - - - 29954 42 142 242 342 142 42 242 42 - - 29955 43 143 243 343 - - - - - - 29956 44 144 244 344 144 44 - - - - 29957 45 145 245 345 - - 245 45 345 45 29958 46 146 246 346 146 46 - - - - 29959 47 147 247 347 - - - - - - 29960 48 148 248 348 148 48 248 48 - - 29961 49 149 249 349 - - - - - - 29962 50 150 250 350 150 50 - - 350 50 29963 51 151 251 351 - - 251 51 - - 29964 52 152 252 352 152 52 - - - - 29965 53 153 253 353 - - - - - - 29966 54 154 254 354 154 54 254 54 - - 29967 55 155 255 355 - - - - 355 55 29968 56 156 256 356 156 56 - - - - 29969 57 157 257 357 - - 257 57 - - 29970 58 158 258 358 158 58 - - - - 29971 59 159 259 359 - - - - - - 29972 60 160 260 360 160 60 260 60 360 60 29973 61 161 261 361 - - - - - - 29974 62 162 262 362 162 62 - - - - 29975 63 163 263 363 - - 263 63 - - 29976 64 164 264 364 164 64 - - - - 29977 65 165 265 365 - - - - 365 65 29978 66 166 266 366 166 66 266 66 - - 29979 67 167 267 367 - - - - - - 29980 68 168 268 368 168 68 - - - - 29981 69 169 269 369 - - 269 69 - - 29982 70 170 270 370 170 70 - - 370 70 29983 71 171 271 371 - - - - - - 29984 72 172 272 372 172 72 272 72 - - 29985 73 173 273 373 - - - - - - 29986 74 174 274 374 174 74 - - - - 29987 75 175 275 375 - - 275 75 375 75 29988 76 176 276 376 176 76 - - - - 29989 77 177 277 377 - - - - - - 29990 78 178 278 378 178 78 278 78 - - 29991 79 179 279 379 - - - - - - 29992 80 180 280 380 180 80 - - 380 80 29993 81 181 281 381 - - 281 81 - - 29994 82 182 282 382 182 82 - - - - 29995 83 183 283 383 - - - - - - 29996 84 184 284 384 184 84 284 84 - - 29997 85 185 285 385 - - - - 385 85 29998 86 186 286 386 186 86 - - - - 29999 87 187 287 387 - - 287 87 - - 30000 88 188 288 388 188 88 - - - - 30001 89 189 289 389 - - - - - - 30002 90 190 290 390 190 90 290 90 390 90 30003 91 191 291 391 - - - - - - 30004 92 192 292 392 192 92 - - - - 30005 93 193 293 393 - - 293 93 - - 30006 94 194 294 394 194 94 - - - - 30007 95 195 295 395 - - - - 395 95 30008 96 - 296 396 - - - - - - 30009 97 197 - 397 - - - - - - 30010 98 198 298 - - - - - - - 30011 99 - - - - - - - - - 30012 - - - - - - - - 300 0 30013} 30014do_execsql_test joinD-1023 { 30015 SELECT t1.*, t2.*, t3.*, t4.* 30016 FROM t1 FULL JOIN t2 ON true 30017 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 30018 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 30019 WHERE t1.b=t2.b AND t2.x>0 30020 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30021} { 30022 2 102 202 302 102 2 - - - - 30023 4 104 204 304 104 4 - - - - 30024 6 106 206 306 106 6 206 6 - - 30025 8 108 208 308 108 8 - - - - 30026 10 110 210 310 110 10 - - 310 10 30027 12 112 212 312 112 12 212 12 - - 30028 14 114 214 314 114 14 - - - - 30029 16 116 216 316 116 16 - - - - 30030 18 118 218 318 118 18 218 18 - - 30031 20 120 220 320 120 20 - - 320 20 30032 22 122 222 322 122 22 - - - - 30033 24 124 224 324 124 24 224 24 - - 30034 26 126 226 326 126 26 - - - - 30035 28 128 228 328 128 28 - - - - 30036 30 130 230 330 130 30 230 30 330 30 30037 32 132 232 332 132 32 - - - - 30038 34 134 234 334 134 34 - - - - 30039 36 136 236 336 136 36 236 36 - - 30040 38 138 238 338 138 38 - - - - 30041 40 140 240 340 140 40 - - 340 40 30042 42 142 242 342 142 42 242 42 - - 30043 44 144 244 344 144 44 - - - - 30044 46 146 246 346 146 46 - - - - 30045 48 148 248 348 148 48 248 48 - - 30046 50 150 250 350 150 50 - - 350 50 30047 52 152 252 352 152 52 - - - - 30048 54 154 254 354 154 54 254 54 - - 30049 56 156 256 356 156 56 - - - - 30050 58 158 258 358 158 58 - - - - 30051 60 160 260 360 160 60 260 60 360 60 30052 62 162 262 362 162 62 - - - - 30053 64 164 264 364 164 64 - - - - 30054 66 166 266 366 166 66 266 66 - - 30055 68 168 268 368 168 68 - - - - 30056 70 170 270 370 170 70 - - 370 70 30057 72 172 272 372 172 72 272 72 - - 30058 74 174 274 374 174 74 - - - - 30059 76 176 276 376 176 76 - - - - 30060 78 178 278 378 178 78 278 78 - - 30061 80 180 280 380 180 80 - - 380 80 30062 82 182 282 382 182 82 - - - - 30063 84 184 284 384 184 84 284 84 - - 30064 86 186 286 386 186 86 - - - - 30065 88 188 288 388 188 88 - - - - 30066 90 190 290 390 190 90 290 90 390 90 30067 92 192 292 392 192 92 - - - - 30068 94 194 294 394 194 94 - - - - 30069} 30070do_execsql_test joinD-1024 { 30071 SELECT t1.*, t2.*, t3.*, t4.* 30072 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30073 LEFT JOIN t3 ON t1.c=t3.c 30074 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 30075 WHERE t3.y>0 30076 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30077} { 30078 3 103 203 303 - - 203 3 - - 30079 6 106 206 306 106 6 206 6 - - 30080 9 109 209 309 - - 209 9 - - 30081 12 112 212 312 112 12 212 12 - - 30082 15 115 215 315 - - 215 15 315 15 30083 18 118 218 318 118 18 218 18 - - 30084 21 121 221 321 - - 221 21 - - 30085 24 124 224 324 124 24 224 24 - - 30086 27 127 227 327 - - 227 27 - - 30087 30 130 230 330 130 30 230 30 330 30 30088 33 133 233 333 - - 233 33 - - 30089 36 136 236 336 136 36 236 36 - - 30090 39 139 239 339 - - 239 39 - - 30091 42 142 242 342 142 42 242 42 - - 30092 45 145 245 345 - - 245 45 345 45 30093 48 148 248 348 148 48 248 48 - - 30094 51 151 251 351 - - 251 51 - - 30095 54 154 254 354 154 54 254 54 - - 30096 57 157 257 357 - - 257 57 - - 30097 60 160 260 360 160 60 260 60 360 60 30098 63 163 263 363 - - 263 63 - - 30099 66 166 266 366 166 66 266 66 - - 30100 69 169 269 369 - - 269 69 - - 30101 72 172 272 372 172 72 272 72 - - 30102 75 175 275 375 - - 275 75 375 75 30103 78 178 278 378 178 78 278 78 - - 30104 81 181 281 381 - - 281 81 - - 30105 84 184 284 384 184 84 284 84 - - 30106 87 187 287 387 - - 287 87 - - 30107 90 190 290 390 190 90 290 90 390 90 30108 93 193 293 393 - - 293 93 - - 30109} 30110do_execsql_test joinD-1025 { 30111 SELECT t1.*, t2.*, t3.*, t4.* 30112 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30113 LEFT JOIN t3 ON t1.c=t3.c 30114 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 30115 WHERE t3.y>0 OR t3.y IS NULL 30116 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30117} { 30118 1 101 201 301 - - - - - - 30119 2 102 202 302 102 2 - - - - 30120 3 103 203 303 - - 203 3 - - 30121 4 104 204 304 104 4 - - - - 30122 5 105 205 305 - - - - 305 5 30123 6 106 206 306 106 6 206 6 - - 30124 7 107 207 307 - - - - - - 30125 8 108 208 308 108 8 - - - - 30126 9 109 209 309 - - 209 9 - - 30127 10 110 210 310 110 10 - - 310 10 30128 11 111 211 311 - - - - - - 30129 12 112 212 312 112 12 212 12 - - 30130 13 113 213 313 - - - - - - 30131 14 114 214 314 114 14 - - - - 30132 15 115 215 315 - - 215 15 315 15 30133 16 116 216 316 116 16 - - - - 30134 17 117 217 317 - - - - - - 30135 18 118 218 318 118 18 218 18 - - 30136 19 119 219 319 - - - - - - 30137 20 120 220 320 120 20 - - 320 20 30138 21 121 221 321 - - 221 21 - - 30139 22 122 222 322 122 22 - - - - 30140 23 123 223 323 - - - - - - 30141 24 124 224 324 124 24 224 24 - - 30142 25 125 225 325 - - - - 325 25 30143 26 126 226 326 126 26 - - - - 30144 27 127 227 327 - - 227 27 - - 30145 28 128 228 328 128 28 - - - - 30146 29 129 229 329 - - - - - - 30147 30 130 230 330 130 30 230 30 330 30 30148 31 131 231 331 - - - - - - 30149 32 132 232 332 132 32 - - - - 30150 33 133 233 333 - - 233 33 - - 30151 34 134 234 334 134 34 - - - - 30152 35 135 235 335 - - - - 335 35 30153 36 136 236 336 136 36 236 36 - - 30154 37 137 237 337 - - - - - - 30155 38 138 238 338 138 38 - - - - 30156 39 139 239 339 - - 239 39 - - 30157 40 140 240 340 140 40 - - 340 40 30158 41 141 241 341 - - - - - - 30159 42 142 242 342 142 42 242 42 - - 30160 43 143 243 343 - - - - - - 30161 44 144 244 344 144 44 - - - - 30162 45 145 245 345 - - 245 45 345 45 30163 46 146 246 346 146 46 - - - - 30164 47 147 247 347 - - - - - - 30165 48 148 248 348 148 48 248 48 - - 30166 49 149 249 349 - - - - - - 30167 50 150 250 350 150 50 - - 350 50 30168 51 151 251 351 - - 251 51 - - 30169 52 152 252 352 152 52 - - - - 30170 53 153 253 353 - - - - - - 30171 54 154 254 354 154 54 254 54 - - 30172 55 155 255 355 - - - - 355 55 30173 56 156 256 356 156 56 - - - - 30174 57 157 257 357 - - 257 57 - - 30175 58 158 258 358 158 58 - - - - 30176 59 159 259 359 - - - - - - 30177 60 160 260 360 160 60 260 60 360 60 30178 61 161 261 361 - - - - - - 30179 62 162 262 362 162 62 - - - - 30180 63 163 263 363 - - 263 63 - - 30181 64 164 264 364 164 64 - - - - 30182 65 165 265 365 - - - - 365 65 30183 66 166 266 366 166 66 266 66 - - 30184 67 167 267 367 - - - - - - 30185 68 168 268 368 168 68 - - - - 30186 69 169 269 369 - - 269 69 - - 30187 70 170 270 370 170 70 - - 370 70 30188 71 171 271 371 - - - - - - 30189 72 172 272 372 172 72 272 72 - - 30190 73 173 273 373 - - - - - - 30191 74 174 274 374 174 74 - - - - 30192 75 175 275 375 - - 275 75 375 75 30193 76 176 276 376 176 76 - - - - 30194 77 177 277 377 - - - - - - 30195 78 178 278 378 178 78 278 78 - - 30196 79 179 279 379 - - - - - - 30197 80 180 280 380 180 80 - - 380 80 30198 81 181 281 381 - - 281 81 - - 30199 82 182 282 382 182 82 - - - - 30200 83 183 283 383 - - - - - - 30201 84 184 284 384 184 84 284 84 - - 30202 85 185 285 385 - - - - 385 85 30203 86 186 286 386 186 86 - - - - 30204 87 187 287 387 - - 287 87 - - 30205 88 188 288 388 188 88 - - - - 30206 89 189 289 389 - - - - - - 30207 90 190 290 390 190 90 290 90 390 90 30208 91 191 291 391 - - - - - - 30209 92 192 292 392 192 92 - - - - 30210 93 193 293 393 - - 293 93 - - 30211 94 194 294 394 194 94 - - - - 30212 95 195 295 395 - - - - 395 95 30213 96 - 296 396 - - - - - - 30214 97 197 - 397 - - - - - - 30215 98 198 298 - - - - - - - 30216 99 - - - - - - - - - 30217 - - - - 100 0 - - - - 30218 - - - - - - - - 300 0 30219} 30220do_execsql_test joinD-1026 { 30221 SELECT t1.*, t2.*, t3.*, t4.* 30222 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30223 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 30224 FULL JOIN t4 ON t1.d=t4.d 30225 WHERE t4.z>0 30226 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30227} { 30228 5 105 205 305 - - - - 305 5 30229 10 110 210 310 110 10 - - 310 10 30230 15 115 215 315 - - 215 15 315 15 30231 20 120 220 320 120 20 - - 320 20 30232 25 125 225 325 - - - - 325 25 30233 30 130 230 330 130 30 230 30 330 30 30234 35 135 235 335 - - - - 335 35 30235 40 140 240 340 140 40 - - 340 40 30236 45 145 245 345 - - 245 45 345 45 30237 50 150 250 350 150 50 - - 350 50 30238 55 155 255 355 - - - - 355 55 30239 60 160 260 360 160 60 260 60 360 60 30240 65 165 265 365 - - - - 365 65 30241 70 170 270 370 170 70 - - 370 70 30242 75 175 275 375 - - 275 75 375 75 30243 80 180 280 380 180 80 - - 380 80 30244 85 185 285 385 - - - - 385 85 30245 90 190 290 390 190 90 290 90 390 90 30246 95 195 295 395 - - - - 395 95 30247} 30248do_execsql_test joinD-1027 { 30249 SELECT t1.*, t2.*, t3.*, t4.* 30250 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30251 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 30252 FULL JOIN t4 ON t1.d=t4.d 30253 WHERE t4.z IS NULL OR t4.z>0 30254 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30255} { 30256 1 101 201 301 - - - - - - 30257 2 102 202 302 102 2 - - - - 30258 3 103 203 303 - - 203 3 - - 30259 4 104 204 304 104 4 - - - - 30260 5 105 205 305 - - - - 305 5 30261 6 106 206 306 106 6 206 6 - - 30262 7 107 207 307 - - - - - - 30263 8 108 208 308 108 8 - - - - 30264 9 109 209 309 - - 209 9 - - 30265 10 110 210 310 110 10 - - 310 10 30266 11 111 211 311 - - - - - - 30267 12 112 212 312 112 12 212 12 - - 30268 13 113 213 313 - - - - - - 30269 14 114 214 314 114 14 - - - - 30270 15 115 215 315 - - 215 15 315 15 30271 16 116 216 316 116 16 - - - - 30272 17 117 217 317 - - - - - - 30273 18 118 218 318 118 18 218 18 - - 30274 19 119 219 319 - - - - - - 30275 20 120 220 320 120 20 - - 320 20 30276 21 121 221 321 - - 221 21 - - 30277 22 122 222 322 122 22 - - - - 30278 23 123 223 323 - - - - - - 30279 24 124 224 324 124 24 224 24 - - 30280 25 125 225 325 - - - - 325 25 30281 26 126 226 326 126 26 - - - - 30282 27 127 227 327 - - 227 27 - - 30283 28 128 228 328 128 28 - - - - 30284 29 129 229 329 - - - - - - 30285 30 130 230 330 130 30 230 30 330 30 30286 31 131 231 331 - - - - - - 30287 32 132 232 332 132 32 - - - - 30288 33 133 233 333 - - 233 33 - - 30289 34 134 234 334 134 34 - - - - 30290 35 135 235 335 - - - - 335 35 30291 36 136 236 336 136 36 236 36 - - 30292 37 137 237 337 - - - - - - 30293 38 138 238 338 138 38 - - - - 30294 39 139 239 339 - - 239 39 - - 30295 40 140 240 340 140 40 - - 340 40 30296 41 141 241 341 - - - - - - 30297 42 142 242 342 142 42 242 42 - - 30298 43 143 243 343 - - - - - - 30299 44 144 244 344 144 44 - - - - 30300 45 145 245 345 - - 245 45 345 45 30301 46 146 246 346 146 46 - - - - 30302 47 147 247 347 - - - - - - 30303 48 148 248 348 148 48 248 48 - - 30304 49 149 249 349 - - - - - - 30305 50 150 250 350 150 50 - - 350 50 30306 51 151 251 351 - - 251 51 - - 30307 52 152 252 352 152 52 - - - - 30308 53 153 253 353 - - - - - - 30309 54 154 254 354 154 54 254 54 - - 30310 55 155 255 355 - - - - 355 55 30311 56 156 256 356 156 56 - - - - 30312 57 157 257 357 - - 257 57 - - 30313 58 158 258 358 158 58 - - - - 30314 59 159 259 359 - - - - - - 30315 60 160 260 360 160 60 260 60 360 60 30316 61 161 261 361 - - - - - - 30317 62 162 262 362 162 62 - - - - 30318 63 163 263 363 - - 263 63 - - 30319 64 164 264 364 164 64 - - - - 30320 65 165 265 365 - - - - 365 65 30321 66 166 266 366 166 66 266 66 - - 30322 67 167 267 367 - - - - - - 30323 68 168 268 368 168 68 - - - - 30324 69 169 269 369 - - 269 69 - - 30325 70 170 270 370 170 70 - - 370 70 30326 71 171 271 371 - - - - - - 30327 72 172 272 372 172 72 272 72 - - 30328 73 173 273 373 - - - - - - 30329 74 174 274 374 174 74 - - - - 30330 75 175 275 375 - - 275 75 375 75 30331 76 176 276 376 176 76 - - - - 30332 77 177 277 377 - - - - - - 30333 78 178 278 378 178 78 278 78 - - 30334 79 179 279 379 - - - - - - 30335 80 180 280 380 180 80 - - 380 80 30336 81 181 281 381 - - 281 81 - - 30337 82 182 282 382 182 82 - - - - 30338 83 183 283 383 - - - - - - 30339 84 184 284 384 184 84 284 84 - - 30340 85 185 285 385 - - - - 385 85 30341 86 186 286 386 186 86 - - - - 30342 87 187 287 387 - - 287 87 - - 30343 88 188 288 388 188 88 - - - - 30344 89 189 289 389 - - - - - - 30345 90 190 290 390 190 90 290 90 390 90 30346 91 191 291 391 - - - - - - 30347 92 192 292 392 192 92 - - - - 30348 93 193 293 393 - - 293 93 - - 30349 94 194 294 394 194 94 - - - - 30350 95 195 295 395 - - - - 395 95 30351 96 - 296 396 - - - - - - 30352 97 197 - 397 - - - - - - 30353 98 198 298 - - - - - - - 30354 99 - - - - - - - - - 30355 - - - - 100 0 - - - - 30356} 30357do_execsql_test joinD-1028 { 30358 SELECT t1.*, t2.*, t3.*, t4.* 30359 FROM t1 FULL JOIN t2 ON t1.b=t2.b 30360 LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0 30361 FULL JOIN t4 ON t1.d=t4.d 30362 WHERE t2.x>0 AND t4.z>0 30363 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30364} { 30365 10 110 210 310 110 10 - - 310 10 30366 20 120 220 320 120 20 - - 320 20 30367 30 130 230 330 130 30 230 30 330 30 30368 40 140 240 340 140 40 - - 340 40 30369 50 150 250 350 150 50 - - 350 50 30370 60 160 260 360 160 60 260 60 360 60 30371 70 170 270 370 170 70 - - 370 70 30372 80 180 280 380 180 80 - - 380 80 30373 90 190 290 390 190 90 290 90 390 90 30374} 30375do_execsql_test joinD-1029 { 30376 SELECT t1.*, t2.*, t3.*, t4.* 30377 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30378 LEFT JOIN t3 ON t1.c=t3.c 30379 FULL JOIN t4 ON t1.d=t4.d 30380 WHERE t4.z>0 AND t3.y>0 30381 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30382} { 30383 15 115 215 315 - - 215 15 315 15 30384 30 130 230 330 130 30 230 30 330 30 30385 45 145 245 345 - - 245 45 345 45 30386 60 160 260 360 160 60 260 60 360 60 30387 75 175 275 375 - - 275 75 375 75 30388 90 190 290 390 190 90 290 90 390 90 30389} 30390do_execsql_test joinD-1030 { 30391 SELECT t1.*, t2.*, t3.*, t4.* 30392 FROM t1 FULL JOIN t2 ON t1.b=t2.b 30393 LEFT JOIN t3 ON t1.c=t3.c 30394 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 30395 WHERE t2.x>0 AND t3.y>0 30396 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30397} { 30398 6 106 206 306 106 6 206 6 - - 30399 12 112 212 312 112 12 212 12 - - 30400 18 118 218 318 118 18 218 18 - - 30401 24 124 224 324 124 24 224 24 - - 30402 30 130 230 330 130 30 230 30 330 30 30403 36 136 236 336 136 36 236 36 - - 30404 42 142 242 342 142 42 242 42 - - 30405 48 148 248 348 148 48 248 48 - - 30406 54 154 254 354 154 54 254 54 - - 30407 60 160 260 360 160 60 260 60 360 60 30408 66 166 266 366 166 66 266 66 - - 30409 72 172 272 372 172 72 272 72 - - 30410 78 178 278 378 178 78 278 78 - - 30411 84 184 284 384 184 84 284 84 - - 30412 90 190 290 390 190 90 290 90 390 90 30413} 30414do_execsql_test joinD-1031 { 30415 SELECT t1.*, t2.*, t3.*, t4.* 30416 FROM t1 FULL JOIN t2 ON t1.b=t2.b 30417 LEFT JOIN t3 ON t1.c=t3.c 30418 FULL JOIN t4 ON t1.d=t4.d 30419 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 30420 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30421} { 30422 30 130 230 330 130 30 230 30 330 30 30423 60 160 260 360 160 60 260 60 360 60 30424 90 190 290 390 190 90 290 90 390 90 30425} 30426do_execsql_test joinD-1032 { 30427 SELECT t1.*, t2.*, t3.*, t4.* 30428 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 30429 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 30430 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 30431 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30432} { 30433 0 100 200 300 - - - - - - 30434 1 101 201 301 - - - - - - 30435 2 102 202 302 102 2 - - - - 30436 3 103 203 303 - - 203 3 - - 30437 4 104 204 304 104 4 - - - - 30438 5 105 205 305 - - - - 305 5 30439 6 106 206 306 106 6 206 6 - - 30440 7 107 207 307 - - - - - - 30441 8 108 208 308 108 8 - - - - 30442 9 109 209 309 - - 209 9 - - 30443 10 110 210 310 110 10 - - 310 10 30444 11 111 211 311 - - - - - - 30445 12 112 212 312 112 12 212 12 - - 30446 13 113 213 313 - - - - - - 30447 14 114 214 314 114 14 - - - - 30448 15 115 215 315 - - 215 15 315 15 30449 16 116 216 316 116 16 - - - - 30450 17 117 217 317 - - - - - - 30451 18 118 218 318 118 18 218 18 - - 30452 19 119 219 319 - - - - - - 30453 20 120 220 320 120 20 - - 320 20 30454 21 121 221 321 - - 221 21 - - 30455 22 122 222 322 122 22 - - - - 30456 23 123 223 323 - - - - - - 30457 24 124 224 324 124 24 224 24 - - 30458 25 125 225 325 - - - - 325 25 30459 26 126 226 326 126 26 - - - - 30460 27 127 227 327 - - 227 27 - - 30461 28 128 228 328 128 28 - - - - 30462 29 129 229 329 - - - - - - 30463 30 130 230 330 130 30 230 30 330 30 30464 31 131 231 331 - - - - - - 30465 32 132 232 332 132 32 - - - - 30466 33 133 233 333 - - 233 33 - - 30467 34 134 234 334 134 34 - - - - 30468 35 135 235 335 - - - - 335 35 30469 36 136 236 336 136 36 236 36 - - 30470 37 137 237 337 - - - - - - 30471 38 138 238 338 138 38 - - - - 30472 39 139 239 339 - - 239 39 - - 30473 40 140 240 340 140 40 - - 340 40 30474 41 141 241 341 - - - - - - 30475 42 142 242 342 142 42 242 42 - - 30476 43 143 243 343 - - - - - - 30477 44 144 244 344 144 44 - - - - 30478 45 145 245 345 - - 245 45 345 45 30479 46 146 246 346 146 46 - - - - 30480 47 147 247 347 - - - - - - 30481 48 148 248 348 148 48 248 48 - - 30482 49 149 249 349 - - - - - - 30483 50 150 250 350 150 50 - - 350 50 30484 51 151 251 351 - - 251 51 - - 30485 52 152 252 352 152 52 - - - - 30486 53 153 253 353 - - - - - - 30487 54 154 254 354 154 54 254 54 - - 30488 55 155 255 355 - - - - 355 55 30489 56 156 256 356 156 56 - - - - 30490 57 157 257 357 - - 257 57 - - 30491 58 158 258 358 158 58 - - - - 30492 59 159 259 359 - - - - - - 30493 60 160 260 360 160 60 260 60 360 60 30494 61 161 261 361 - - - - - - 30495 62 162 262 362 162 62 - - - - 30496 63 163 263 363 - - 263 63 - - 30497 64 164 264 364 164 64 - - - - 30498 65 165 265 365 - - - - 365 65 30499 66 166 266 366 166 66 266 66 - - 30500 67 167 267 367 - - - - - - 30501 68 168 268 368 168 68 - - - - 30502 69 169 269 369 - - 269 69 - - 30503 70 170 270 370 170 70 - - 370 70 30504 71 171 271 371 - - - - - - 30505 72 172 272 372 172 72 272 72 - - 30506 73 173 273 373 - - - - - - 30507 74 174 274 374 174 74 - - - - 30508 75 175 275 375 - - 275 75 375 75 30509 76 176 276 376 176 76 - - - - 30510 77 177 277 377 - - - - - - 30511 78 178 278 378 178 78 278 78 - - 30512 79 179 279 379 - - - - - - 30513 80 180 280 380 180 80 - - 380 80 30514 81 181 281 381 - - 281 81 - - 30515 82 182 282 382 182 82 - - - - 30516 83 183 283 383 - - - - - - 30517 84 184 284 384 184 84 284 84 - - 30518 85 185 285 385 - - - - 385 85 30519 86 186 286 386 186 86 - - - - 30520 87 187 287 387 - - 287 87 - - 30521 88 188 288 388 188 88 - - - - 30522 89 189 289 389 - - - - - - 30523 90 190 290 390 190 90 290 90 390 90 30524 91 191 291 391 - - - - - - 30525 92 192 292 392 192 92 - - - - 30526 93 193 293 393 - - 293 93 - - 30527 94 194 294 394 194 94 - - - - 30528 95 195 295 395 - - - - 395 95 30529 96 - 296 396 - - - - - - 30530 97 197 - 397 - - - - - - 30531 98 198 298 - - - - - - - 30532 99 - - - - - - - - - 30533 - - - - 100 0 - - - - 30534 - - - - - - - - 300 0 30535} 30536do_execsql_test joinD-1033 { 30537 SELECT t1.*, t2.*, t3.*, t4.* 30538 FROM t1 FULL JOIN t2 ON t2.x>0 30539 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 30540 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 30541 WHERE t1.b = t2.b 30542 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30543} { 30544 2 102 202 302 102 2 - - - - 30545 4 104 204 304 104 4 - - - - 30546 6 106 206 306 106 6 206 6 - - 30547 8 108 208 308 108 8 - - - - 30548 10 110 210 310 110 10 - - 310 10 30549 12 112 212 312 112 12 212 12 - - 30550 14 114 214 314 114 14 - - - - 30551 16 116 216 316 116 16 - - - - 30552 18 118 218 318 118 18 218 18 - - 30553 20 120 220 320 120 20 - - 320 20 30554 22 122 222 322 122 22 - - - - 30555 24 124 224 324 124 24 224 24 - - 30556 26 126 226 326 126 26 - - - - 30557 28 128 228 328 128 28 - - - - 30558 30 130 230 330 130 30 230 30 330 30 30559 32 132 232 332 132 32 - - - - 30560 34 134 234 334 134 34 - - - - 30561 36 136 236 336 136 36 236 36 - - 30562 38 138 238 338 138 38 - - - - 30563 40 140 240 340 140 40 - - 340 40 30564 42 142 242 342 142 42 242 42 - - 30565 44 144 244 344 144 44 - - - - 30566 46 146 246 346 146 46 - - - - 30567 48 148 248 348 148 48 248 48 - - 30568 50 150 250 350 150 50 - - 350 50 30569 52 152 252 352 152 52 - - - - 30570 54 154 254 354 154 54 254 54 - - 30571 56 156 256 356 156 56 - - - - 30572 58 158 258 358 158 58 - - - - 30573 60 160 260 360 160 60 260 60 360 60 30574 62 162 262 362 162 62 - - - - 30575 64 164 264 364 164 64 - - - - 30576 66 166 266 366 166 66 266 66 - - 30577 68 168 268 368 168 68 - - - - 30578 70 170 270 370 170 70 - - 370 70 30579 72 172 272 372 172 72 272 72 - - 30580 74 174 274 374 174 74 - - - - 30581 76 176 276 376 176 76 - - - - 30582 78 178 278 378 178 78 278 78 - - 30583 80 180 280 380 180 80 - - 380 80 30584 82 182 282 382 182 82 - - - - 30585 84 184 284 384 184 84 284 84 - - 30586 86 186 286 386 186 86 - - - - 30587 88 188 288 388 188 88 - - - - 30588 90 190 290 390 190 90 290 90 390 90 30589 92 192 292 392 192 92 - - - - 30590 94 194 294 394 194 94 - - - - 30591} 30592do_execsql_test joinD-1034 { 30593 SELECT t1.*, t2.*, t3.*, t4.* 30594 FROM t1 FULL JOIN t2 ON t2.x>0 30595 LEFT JOIN t3 ON t3.y>0 30596 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 30597 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 30598 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30599} { 30600 6 106 206 306 106 6 206 6 - - 30601 12 112 212 312 112 12 212 12 - - 30602 18 118 218 318 118 18 218 18 - - 30603 24 124 224 324 124 24 224 24 - - 30604 30 130 230 330 130 30 230 30 330 30 30605 36 136 236 336 136 36 236 36 - - 30606 42 142 242 342 142 42 242 42 - - 30607 48 148 248 348 148 48 248 48 - - 30608 54 154 254 354 154 54 254 54 - - 30609 60 160 260 360 160 60 260 60 360 60 30610 66 166 266 366 166 66 266 66 - - 30611 72 172 272 372 172 72 272 72 - - 30612 78 178 278 378 178 78 278 78 - - 30613 84 184 284 384 184 84 284 84 - - 30614 90 190 290 390 190 90 290 90 390 90 30615} 30616do_execsql_test joinD-1035 { 30617 SELECT t1.*, t2.*, t3.*, t4.* 30618 FROM t1 FULL JOIN t2 ON t2.x>0 30619 LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 30620 FULL JOIN t4 ON t4.z>0 30621 WHERE t1.b = t2.b AND t1.d = t4.d 30622 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30623} { 30624 10 110 210 310 110 10 - - 310 10 30625 20 120 220 320 120 20 - - 320 20 30626 30 130 230 330 130 30 230 30 330 30 30627 40 140 240 340 140 40 - - 340 40 30628 50 150 250 350 150 50 - - 350 50 30629 60 160 260 360 160 60 260 60 360 60 30630 70 170 270 370 170 70 - - 370 70 30631 80 180 280 380 180 80 - - 380 80 30632 90 190 290 390 190 90 290 90 390 90 30633} 30634do_execsql_test joinD-1036 { 30635 SELECT t1.*, t2.*, t3.*, t4.* 30636 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30637 LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 30638 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 30639 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30640} { 30641 0 100 200 300 - - - - - - 30642 1 101 201 301 - - - - - - 30643 2 102 202 302 102 2 - - - - 30644 3 103 203 303 - - 203 3 - - 30645 4 104 204 304 104 4 - - - - 30646 5 105 205 305 - - - - 305 5 30647 6 106 206 306 106 6 206 6 - - 30648 7 107 207 307 - - - - - - 30649 8 108 208 308 108 8 - - - - 30650 9 109 209 309 - - 209 9 - - 30651 10 110 210 310 110 10 - - 310 10 30652 11 111 211 311 - - - - - - 30653 12 112 212 312 112 12 212 12 - - 30654 13 113 213 313 - - - - - - 30655 14 114 214 314 114 14 - - - - 30656 15 115 215 315 - - 215 15 315 15 30657 16 116 216 316 116 16 - - - - 30658 17 117 217 317 - - - - - - 30659 18 118 218 318 118 18 218 18 - - 30660 19 119 219 319 - - - - - - 30661 20 120 220 320 120 20 - - 320 20 30662 21 121 221 321 - - 221 21 - - 30663 22 122 222 322 122 22 - - - - 30664 23 123 223 323 - - - - - - 30665 24 124 224 324 124 24 224 24 - - 30666 25 125 225 325 - - - - 325 25 30667 26 126 226 326 126 26 - - - - 30668 27 127 227 327 - - 227 27 - - 30669 28 128 228 328 128 28 - - - - 30670 29 129 229 329 - - - - - - 30671 30 130 230 330 130 30 230 30 330 30 30672 31 131 231 331 - - - - - - 30673 32 132 232 332 132 32 - - - - 30674 33 133 233 333 - - 233 33 - - 30675 34 134 234 334 134 34 - - - - 30676 35 135 235 335 - - - - 335 35 30677 36 136 236 336 136 36 236 36 - - 30678 37 137 237 337 - - - - - - 30679 38 138 238 338 138 38 - - - - 30680 39 139 239 339 - - 239 39 - - 30681 40 140 240 340 140 40 - - 340 40 30682 41 141 241 341 - - - - - - 30683 42 142 242 342 142 42 242 42 - - 30684 43 143 243 343 - - - - - - 30685 44 144 244 344 144 44 - - - - 30686 45 145 245 345 - - 245 45 345 45 30687 46 146 246 346 146 46 - - - - 30688 47 147 247 347 - - - - - - 30689 48 148 248 348 148 48 248 48 - - 30690 49 149 249 349 - - - - - - 30691 50 150 250 350 150 50 - - 350 50 30692 51 151 251 351 - - 251 51 - - 30693 52 152 252 352 152 52 - - - - 30694 53 153 253 353 - - - - - - 30695 54 154 254 354 154 54 254 54 - - 30696 55 155 255 355 - - - - 355 55 30697 56 156 256 356 156 56 - - - - 30698 57 157 257 357 - - 257 57 - - 30699 58 158 258 358 158 58 - - - - 30700 59 159 259 359 - - - - - - 30701 60 160 260 360 160 60 260 60 360 60 30702 61 161 261 361 - - - - - - 30703 62 162 262 362 162 62 - - - - 30704 63 163 263 363 - - 263 63 - - 30705 64 164 264 364 164 64 - - - - 30706 65 165 265 365 - - - - 365 65 30707 66 166 266 366 166 66 266 66 - - 30708 67 167 267 367 - - - - - - 30709 68 168 268 368 168 68 - - - - 30710 69 169 269 369 - - 269 69 - - 30711 70 170 270 370 170 70 - - 370 70 30712 71 171 271 371 - - - - - - 30713 72 172 272 372 172 72 272 72 - - 30714 73 173 273 373 - - - - - - 30715 74 174 274 374 174 74 - - - - 30716 75 175 275 375 - - 275 75 375 75 30717 76 176 276 376 176 76 - - - - 30718 77 177 277 377 - - - - - - 30719 78 178 278 378 178 78 278 78 - - 30720 79 179 279 379 - - - - - - 30721 80 180 280 380 180 80 - - 380 80 30722 81 181 281 381 - - 281 81 - - 30723 82 182 282 382 182 82 - - - - 30724 83 183 283 383 - - - - - - 30725 84 184 284 384 184 84 284 84 - - 30726 85 185 285 385 - - - - 385 85 30727 86 186 286 386 186 86 - - - - 30728 87 187 287 387 - - 287 87 - - 30729 88 188 288 388 188 88 - - - - 30730 89 189 289 389 - - - - - - 30731 90 190 290 390 190 90 290 90 390 90 30732 91 191 291 391 - - - - - - 30733 92 192 292 392 192 92 - - - - 30734 93 193 293 393 - - 293 93 - - 30735 94 194 294 394 194 94 - - - - 30736 95 195 295 395 - - - - 395 95 30737 96 - 296 396 - - - - - - 30738 97 197 - 397 - - - - - - 30739 98 198 298 - - - - - - - 30740 99 - - - - - - - - - 30741 - - - - 100 0 - - - - 30742 - - - - - - - - 300 0 30743} 30744do_execsql_test joinD-1037 { 30745 SELECT t1.*, t2.*, t3.*, t4.* 30746 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30747 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 30748 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 30749 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30750} { 30751 15 115 215 315 - - 215 15 315 15 30752 30 130 230 330 130 30 230 30 330 30 30753 45 145 245 345 - - 245 45 345 45 30754 60 160 260 360 160 60 260 60 360 60 30755 75 175 275 375 - - 275 75 375 75 30756 90 190 290 390 190 90 290 90 390 90 30757} 30758do_execsql_test joinD-1038 { 30759 SELECT t1.*, t2.*, t3.*, t4.* 30760 FROM t1 FULL JOIN t2 ON t1.b=t2.b 30761 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 30762 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 30763 WHERE t2.x>0 30764 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30765} { 30766 30 130 230 330 130 30 230 30 330 30 30767 60 160 260 360 160 60 260 60 360 60 30768 90 190 290 390 190 90 290 90 390 90 30769} 30770do_execsql_test joinD-1039 { 30771 SELECT t1.*, t2.*, t3.*, t4.* 30772 FROM t1 FULL JOIN t2 ON t1.b=t2.b 30773 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 30774 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 30775 WHERE (t2.x>0 OR t2.x IS NULL) 30776 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30777} { 30778 15 115 215 315 - - 215 15 315 15 30779 30 130 230 330 130 30 230 30 330 30 30780 45 145 245 345 - - 245 45 345 45 30781 60 160 260 360 160 60 260 60 360 60 30782 75 175 275 375 - - 275 75 375 75 30783 90 190 290 390 190 90 290 90 390 90 30784} 30785do_execsql_test joinD-1040 { 30786 SELECT t1.*, t2.*, t3.*, t4.* 30787 FROM t1 FULL JOIN t2 ON true 30788 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 30789 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 30790 WHERE t1.b=t2.b AND t2.x>0 30791 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30792} { 30793 30 130 230 330 130 30 230 30 330 30 30794 60 160 260 360 160 60 260 60 360 60 30795 90 190 290 390 190 90 290 90 390 90 30796} 30797do_execsql_test joinD-1041 { 30798 SELECT t1.*, t2.*, t3.*, t4.* 30799 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30800 RIGHT JOIN t3 ON t1.c=t3.c 30801 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 30802 WHERE t3.y>0 30803 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30804} { 30805 15 115 215 315 - - 215 15 315 15 30806 30 130 230 330 130 30 230 30 330 30 30807 45 145 245 345 - - 245 45 345 45 30808 60 160 260 360 160 60 260 60 360 60 30809 75 175 275 375 - - 275 75 375 75 30810 90 190 290 390 190 90 290 90 390 90 30811} 30812do_execsql_test joinD-1042 { 30813 SELECT t1.*, t2.*, t3.*, t4.* 30814 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30815 RIGHT JOIN t3 ON t1.c=t3.c 30816 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 30817 WHERE t3.y>0 OR t3.y IS NULL 30818 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30819} { 30820 15 115 215 315 - - 215 15 315 15 30821 30 130 230 330 130 30 230 30 330 30 30822 45 145 245 345 - - 245 45 345 45 30823 60 160 260 360 160 60 260 60 360 60 30824 75 175 275 375 - - 275 75 375 75 30825 90 190 290 390 190 90 290 90 390 90 30826} 30827do_execsql_test joinD-1043 { 30828 SELECT t1.*, t2.*, t3.*, t4.* 30829 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30830 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 30831 INNER JOIN t4 ON t1.d=t4.d 30832 WHERE t4.z>0 30833 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30834} { 30835 15 115 215 315 - - 215 15 315 15 30836 30 130 230 330 130 30 230 30 330 30 30837 45 145 245 345 - - 245 45 345 45 30838 60 160 260 360 160 60 260 60 360 60 30839 75 175 275 375 - - 275 75 375 75 30840 90 190 290 390 190 90 290 90 390 90 30841} 30842do_execsql_test joinD-1044 { 30843 SELECT t1.*, t2.*, t3.*, t4.* 30844 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30845 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 30846 INNER JOIN t4 ON t1.d=t4.d 30847 WHERE t4.z IS NULL OR t4.z>0 30848 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30849} { 30850 15 115 215 315 - - 215 15 315 15 30851 30 130 230 330 130 30 230 30 330 30 30852 45 145 245 345 - - 245 45 345 45 30853 60 160 260 360 160 60 260 60 360 60 30854 75 175 275 375 - - 275 75 375 75 30855 90 190 290 390 190 90 290 90 390 90 30856} 30857do_execsql_test joinD-1045 { 30858 SELECT t1.*, t2.*, t3.*, t4.* 30859 FROM t1 FULL JOIN t2 ON t1.b=t2.b 30860 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 30861 INNER JOIN t4 ON t1.d=t4.d 30862 WHERE t2.x>0 AND t4.z>0 30863 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30864} { 30865 30 130 230 330 130 30 230 30 330 30 30866 60 160 260 360 160 60 260 60 360 60 30867 90 190 290 390 190 90 290 90 390 90 30868} 30869do_execsql_test joinD-1046 { 30870 SELECT t1.*, t2.*, t3.*, t4.* 30871 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30872 RIGHT JOIN t3 ON t1.c=t3.c 30873 INNER JOIN t4 ON t1.d=t4.d 30874 WHERE t4.z>0 AND t3.y>0 30875 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30876} { 30877 15 115 215 315 - - 215 15 315 15 30878 30 130 230 330 130 30 230 30 330 30 30879 45 145 245 345 - - 245 45 345 45 30880 60 160 260 360 160 60 260 60 360 60 30881 75 175 275 375 - - 275 75 375 75 30882 90 190 290 390 190 90 290 90 390 90 30883} 30884do_execsql_test joinD-1047 { 30885 SELECT t1.*, t2.*, t3.*, t4.* 30886 FROM t1 FULL JOIN t2 ON t1.b=t2.b 30887 RIGHT JOIN t3 ON t1.c=t3.c 30888 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 30889 WHERE t2.x>0 AND t3.y>0 30890 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30891} { 30892 30 130 230 330 130 30 230 30 330 30 30893 60 160 260 360 160 60 260 60 360 60 30894 90 190 290 390 190 90 290 90 390 90 30895} 30896do_execsql_test joinD-1048 { 30897 SELECT t1.*, t2.*, t3.*, t4.* 30898 FROM t1 FULL JOIN t2 ON t1.b=t2.b 30899 RIGHT JOIN t3 ON t1.c=t3.c 30900 INNER JOIN t4 ON t1.d=t4.d 30901 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 30902 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30903} { 30904 30 130 230 330 130 30 230 30 330 30 30905 60 160 260 360 160 60 260 60 360 60 30906 90 190 290 390 190 90 290 90 390 90 30907} 30908do_execsql_test joinD-1049 { 30909 SELECT t1.*, t2.*, t3.*, t4.* 30910 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 30911 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 30912 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 30913 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30914} { 30915 15 115 215 315 - - 215 15 315 15 30916 30 130 230 330 130 30 230 30 330 30 30917 45 145 245 345 - - 245 45 345 45 30918 60 160 260 360 160 60 260 60 360 60 30919 75 175 275 375 - - 275 75 375 75 30920 90 190 290 390 190 90 290 90 390 90 30921} 30922do_execsql_test joinD-1050 { 30923 SELECT t1.*, t2.*, t3.*, t4.* 30924 FROM t1 FULL JOIN t2 ON t2.x>0 30925 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 30926 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 30927 WHERE t1.b = t2.b 30928 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30929} { 30930 30 130 230 330 130 30 230 30 330 30 30931 60 160 260 360 160 60 260 60 360 60 30932 90 190 290 390 190 90 290 90 390 90 30933} 30934do_execsql_test joinD-1051 { 30935 SELECT t1.*, t2.*, t3.*, t4.* 30936 FROM t1 FULL JOIN t2 ON t2.x>0 30937 RIGHT JOIN t3 ON t3.y>0 30938 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 30939 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 30940 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30941} { 30942 30 130 230 330 130 30 230 30 330 30 30943 60 160 260 360 160 60 260 60 360 60 30944 90 190 290 390 190 90 290 90 390 90 30945} 30946do_execsql_test joinD-1052 { 30947 SELECT t1.*, t2.*, t3.*, t4.* 30948 FROM t1 FULL JOIN t2 ON t2.x>0 30949 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 30950 INNER JOIN t4 ON t4.z>0 30951 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 30952 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30953} { 30954 30 130 230 330 130 30 230 30 330 30 30955 60 160 260 360 160 60 260 60 360 60 30956 90 190 290 390 190 90 290 90 390 90 30957} 30958do_execsql_test joinD-1053 { 30959 SELECT t1.*, t2.*, t3.*, t4.* 30960 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30961 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 30962 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 30963 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30964} { 30965 15 115 215 315 - - 215 15 315 15 30966 30 130 230 330 130 30 230 30 330 30 30967 45 145 245 345 - - 245 45 345 45 30968 60 160 260 360 160 60 260 60 360 60 30969 75 175 275 375 - - 275 75 375 75 30970 90 190 290 390 190 90 290 90 390 90 30971} 30972do_execsql_test joinD-1054 { 30973 SELECT t1.*, t2.*, t3.*, t4.* 30974 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 30975 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 30976 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 30977 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 30978} { 30979 3 103 203 303 - - 203 3 - - 30980 6 106 206 306 106 6 206 6 - - 30981 9 109 209 309 - - 209 9 - - 30982 12 112 212 312 112 12 212 12 - - 30983 15 115 215 315 - - 215 15 315 15 30984 18 118 218 318 118 18 218 18 - - 30985 21 121 221 321 - - 221 21 - - 30986 24 124 224 324 124 24 224 24 - - 30987 27 127 227 327 - - 227 27 - - 30988 30 130 230 330 130 30 230 30 330 30 30989 33 133 233 333 - - 233 33 - - 30990 36 136 236 336 136 36 236 36 - - 30991 39 139 239 339 - - 239 39 - - 30992 42 142 242 342 142 42 242 42 - - 30993 45 145 245 345 - - 245 45 345 45 30994 48 148 248 348 148 48 248 48 - - 30995 51 151 251 351 - - 251 51 - - 30996 54 154 254 354 154 54 254 54 - - 30997 57 157 257 357 - - 257 57 - - 30998 60 160 260 360 160 60 260 60 360 60 30999 63 163 263 363 - - 263 63 - - 31000 66 166 266 366 166 66 266 66 - - 31001 69 169 269 369 - - 269 69 - - 31002 72 172 272 372 172 72 272 72 - - 31003 75 175 275 375 - - 275 75 375 75 31004 78 178 278 378 178 78 278 78 - - 31005 81 181 281 381 - - 281 81 - - 31006 84 184 284 384 184 84 284 84 - - 31007 87 187 287 387 - - 287 87 - - 31008 90 190 290 390 190 90 290 90 390 90 31009 93 193 293 393 - - 293 93 - - 31010 - - - - - - 200 0 - - 31011} 31012do_execsql_test joinD-1055 { 31013 SELECT t1.*, t2.*, t3.*, t4.* 31014 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31015 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31016 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 31017 WHERE t2.x>0 31018 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31019} { 31020 6 106 206 306 106 6 206 6 - - 31021 12 112 212 312 112 12 212 12 - - 31022 18 118 218 318 118 18 218 18 - - 31023 24 124 224 324 124 24 224 24 - - 31024 30 130 230 330 130 30 230 30 330 30 31025 36 136 236 336 136 36 236 36 - - 31026 42 142 242 342 142 42 242 42 - - 31027 48 148 248 348 148 48 248 48 - - 31028 54 154 254 354 154 54 254 54 - - 31029 60 160 260 360 160 60 260 60 360 60 31030 66 166 266 366 166 66 266 66 - - 31031 72 172 272 372 172 72 272 72 - - 31032 78 178 278 378 178 78 278 78 - - 31033 84 184 284 384 184 84 284 84 - - 31034 90 190 290 390 190 90 290 90 390 90 31035} 31036do_execsql_test joinD-1056 { 31037 SELECT t1.*, t2.*, t3.*, t4.* 31038 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31039 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31040 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 31041 WHERE (t2.x>0 OR t2.x IS NULL) 31042 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31043} { 31044 3 103 203 303 - - 203 3 - - 31045 6 106 206 306 106 6 206 6 - - 31046 9 109 209 309 - - 209 9 - - 31047 12 112 212 312 112 12 212 12 - - 31048 15 115 215 315 - - 215 15 315 15 31049 18 118 218 318 118 18 218 18 - - 31050 21 121 221 321 - - 221 21 - - 31051 24 124 224 324 124 24 224 24 - - 31052 27 127 227 327 - - 227 27 - - 31053 30 130 230 330 130 30 230 30 330 30 31054 33 133 233 333 - - 233 33 - - 31055 36 136 236 336 136 36 236 36 - - 31056 39 139 239 339 - - 239 39 - - 31057 42 142 242 342 142 42 242 42 - - 31058 45 145 245 345 - - 245 45 345 45 31059 48 148 248 348 148 48 248 48 - - 31060 51 151 251 351 - - 251 51 - - 31061 54 154 254 354 154 54 254 54 - - 31062 57 157 257 357 - - 257 57 - - 31063 60 160 260 360 160 60 260 60 360 60 31064 63 163 263 363 - - 263 63 - - 31065 66 166 266 366 166 66 266 66 - - 31066 69 169 269 369 - - 269 69 - - 31067 72 172 272 372 172 72 272 72 - - 31068 75 175 275 375 - - 275 75 375 75 31069 78 178 278 378 178 78 278 78 - - 31070 81 181 281 381 - - 281 81 - - 31071 84 184 284 384 184 84 284 84 - - 31072 87 187 287 387 - - 287 87 - - 31073 90 190 290 390 190 90 290 90 390 90 31074 93 193 293 393 - - 293 93 - - 31075 - - - - - - 200 0 - - 31076} 31077do_execsql_test joinD-1057 { 31078 SELECT t1.*, t2.*, t3.*, t4.* 31079 FROM t1 FULL JOIN t2 ON true 31080 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31081 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 31082 WHERE t1.b=t2.b AND t2.x>0 31083 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31084} { 31085 6 106 206 306 106 6 206 6 - - 31086 12 112 212 312 112 12 212 12 - - 31087 18 118 218 318 118 18 218 18 - - 31088 24 124 224 324 124 24 224 24 - - 31089 30 130 230 330 130 30 230 30 330 30 31090 36 136 236 336 136 36 236 36 - - 31091 42 142 242 342 142 42 242 42 - - 31092 48 148 248 348 148 48 248 48 - - 31093 54 154 254 354 154 54 254 54 - - 31094 60 160 260 360 160 60 260 60 360 60 31095 66 166 266 366 166 66 266 66 - - 31096 72 172 272 372 172 72 272 72 - - 31097 78 178 278 378 178 78 278 78 - - 31098 84 184 284 384 184 84 284 84 - - 31099 90 190 290 390 190 90 290 90 390 90 31100} 31101do_execsql_test joinD-1058 { 31102 SELECT t1.*, t2.*, t3.*, t4.* 31103 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31104 RIGHT JOIN t3 ON t1.c=t3.c 31105 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 31106 WHERE t3.y>0 31107 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31108} { 31109 3 103 203 303 - - 203 3 - - 31110 6 106 206 306 106 6 206 6 - - 31111 9 109 209 309 - - 209 9 - - 31112 12 112 212 312 112 12 212 12 - - 31113 15 115 215 315 - - 215 15 315 15 31114 18 118 218 318 118 18 218 18 - - 31115 21 121 221 321 - - 221 21 - - 31116 24 124 224 324 124 24 224 24 - - 31117 27 127 227 327 - - 227 27 - - 31118 30 130 230 330 130 30 230 30 330 30 31119 33 133 233 333 - - 233 33 - - 31120 36 136 236 336 136 36 236 36 - - 31121 39 139 239 339 - - 239 39 - - 31122 42 142 242 342 142 42 242 42 - - 31123 45 145 245 345 - - 245 45 345 45 31124 48 148 248 348 148 48 248 48 - - 31125 51 151 251 351 - - 251 51 - - 31126 54 154 254 354 154 54 254 54 - - 31127 57 157 257 357 - - 257 57 - - 31128 60 160 260 360 160 60 260 60 360 60 31129 63 163 263 363 - - 263 63 - - 31130 66 166 266 366 166 66 266 66 - - 31131 69 169 269 369 - - 269 69 - - 31132 72 172 272 372 172 72 272 72 - - 31133 75 175 275 375 - - 275 75 375 75 31134 78 178 278 378 178 78 278 78 - - 31135 81 181 281 381 - - 281 81 - - 31136 84 184 284 384 184 84 284 84 - - 31137 87 187 287 387 - - 287 87 - - 31138 90 190 290 390 190 90 290 90 390 90 31139 93 193 293 393 - - 293 93 - - 31140} 31141do_execsql_test joinD-1059 { 31142 SELECT t1.*, t2.*, t3.*, t4.* 31143 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31144 RIGHT JOIN t3 ON t1.c=t3.c 31145 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 31146 WHERE t3.y>0 OR t3.y IS NULL 31147 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31148} { 31149 3 103 203 303 - - 203 3 - - 31150 6 106 206 306 106 6 206 6 - - 31151 9 109 209 309 - - 209 9 - - 31152 12 112 212 312 112 12 212 12 - - 31153 15 115 215 315 - - 215 15 315 15 31154 18 118 218 318 118 18 218 18 - - 31155 21 121 221 321 - - 221 21 - - 31156 24 124 224 324 124 24 224 24 - - 31157 27 127 227 327 - - 227 27 - - 31158 30 130 230 330 130 30 230 30 330 30 31159 33 133 233 333 - - 233 33 - - 31160 36 136 236 336 136 36 236 36 - - 31161 39 139 239 339 - - 239 39 - - 31162 42 142 242 342 142 42 242 42 - - 31163 45 145 245 345 - - 245 45 345 45 31164 48 148 248 348 148 48 248 48 - - 31165 51 151 251 351 - - 251 51 - - 31166 54 154 254 354 154 54 254 54 - - 31167 57 157 257 357 - - 257 57 - - 31168 60 160 260 360 160 60 260 60 360 60 31169 63 163 263 363 - - 263 63 - - 31170 66 166 266 366 166 66 266 66 - - 31171 69 169 269 369 - - 269 69 - - 31172 72 172 272 372 172 72 272 72 - - 31173 75 175 275 375 - - 275 75 375 75 31174 78 178 278 378 178 78 278 78 - - 31175 81 181 281 381 - - 281 81 - - 31176 84 184 284 384 184 84 284 84 - - 31177 87 187 287 387 - - 287 87 - - 31178 90 190 290 390 190 90 290 90 390 90 31179 93 193 293 393 - - 293 93 - - 31180} 31181do_execsql_test joinD-1060 { 31182 SELECT t1.*, t2.*, t3.*, t4.* 31183 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31184 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31185 LEFT JOIN t4 ON t1.d=t4.d 31186 WHERE t4.z>0 31187 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31188} { 31189 15 115 215 315 - - 215 15 315 15 31190 30 130 230 330 130 30 230 30 330 30 31191 45 145 245 345 - - 245 45 345 45 31192 60 160 260 360 160 60 260 60 360 60 31193 75 175 275 375 - - 275 75 375 75 31194 90 190 290 390 190 90 290 90 390 90 31195} 31196do_execsql_test joinD-1061 { 31197 SELECT t1.*, t2.*, t3.*, t4.* 31198 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31199 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31200 LEFT JOIN t4 ON t1.d=t4.d 31201 WHERE t4.z IS NULL OR t4.z>0 31202 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31203} { 31204 3 103 203 303 - - 203 3 - - 31205 6 106 206 306 106 6 206 6 - - 31206 9 109 209 309 - - 209 9 - - 31207 12 112 212 312 112 12 212 12 - - 31208 15 115 215 315 - - 215 15 315 15 31209 18 118 218 318 118 18 218 18 - - 31210 21 121 221 321 - - 221 21 - - 31211 24 124 224 324 124 24 224 24 - - 31212 27 127 227 327 - - 227 27 - - 31213 30 130 230 330 130 30 230 30 330 30 31214 33 133 233 333 - - 233 33 - - 31215 36 136 236 336 136 36 236 36 - - 31216 39 139 239 339 - - 239 39 - - 31217 42 142 242 342 142 42 242 42 - - 31218 45 145 245 345 - - 245 45 345 45 31219 48 148 248 348 148 48 248 48 - - 31220 51 151 251 351 - - 251 51 - - 31221 54 154 254 354 154 54 254 54 - - 31222 57 157 257 357 - - 257 57 - - 31223 60 160 260 360 160 60 260 60 360 60 31224 63 163 263 363 - - 263 63 - - 31225 66 166 266 366 166 66 266 66 - - 31226 69 169 269 369 - - 269 69 - - 31227 72 172 272 372 172 72 272 72 - - 31228 75 175 275 375 - - 275 75 375 75 31229 78 178 278 378 178 78 278 78 - - 31230 81 181 281 381 - - 281 81 - - 31231 84 184 284 384 184 84 284 84 - - 31232 87 187 287 387 - - 287 87 - - 31233 90 190 290 390 190 90 290 90 390 90 31234 93 193 293 393 - - 293 93 - - 31235 - - - - - - 200 0 - - 31236} 31237do_execsql_test joinD-1062 { 31238 SELECT t1.*, t2.*, t3.*, t4.* 31239 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31240 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31241 LEFT JOIN t4 ON t1.d=t4.d 31242 WHERE t2.x>0 AND t4.z>0 31243 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31244} { 31245 30 130 230 330 130 30 230 30 330 30 31246 60 160 260 360 160 60 260 60 360 60 31247 90 190 290 390 190 90 290 90 390 90 31248} 31249do_execsql_test joinD-1063 { 31250 SELECT t1.*, t2.*, t3.*, t4.* 31251 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31252 RIGHT JOIN t3 ON t1.c=t3.c 31253 LEFT JOIN t4 ON t1.d=t4.d 31254 WHERE t4.z>0 AND t3.y>0 31255 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31256} { 31257 15 115 215 315 - - 215 15 315 15 31258 30 130 230 330 130 30 230 30 330 30 31259 45 145 245 345 - - 245 45 345 45 31260 60 160 260 360 160 60 260 60 360 60 31261 75 175 275 375 - - 275 75 375 75 31262 90 190 290 390 190 90 290 90 390 90 31263} 31264do_execsql_test joinD-1064 { 31265 SELECT t1.*, t2.*, t3.*, t4.* 31266 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31267 RIGHT JOIN t3 ON t1.c=t3.c 31268 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 31269 WHERE t2.x>0 AND t3.y>0 31270 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31271} { 31272 6 106 206 306 106 6 206 6 - - 31273 12 112 212 312 112 12 212 12 - - 31274 18 118 218 318 118 18 218 18 - - 31275 24 124 224 324 124 24 224 24 - - 31276 30 130 230 330 130 30 230 30 330 30 31277 36 136 236 336 136 36 236 36 - - 31278 42 142 242 342 142 42 242 42 - - 31279 48 148 248 348 148 48 248 48 - - 31280 54 154 254 354 154 54 254 54 - - 31281 60 160 260 360 160 60 260 60 360 60 31282 66 166 266 366 166 66 266 66 - - 31283 72 172 272 372 172 72 272 72 - - 31284 78 178 278 378 178 78 278 78 - - 31285 84 184 284 384 184 84 284 84 - - 31286 90 190 290 390 190 90 290 90 390 90 31287} 31288do_execsql_test joinD-1065 { 31289 SELECT t1.*, t2.*, t3.*, t4.* 31290 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31291 RIGHT JOIN t3 ON t1.c=t3.c 31292 LEFT JOIN t4 ON t1.d=t4.d 31293 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 31294 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31295} { 31296 30 130 230 330 130 30 230 30 330 30 31297 60 160 260 360 160 60 260 60 360 60 31298 90 190 290 390 190 90 290 90 390 90 31299} 31300do_execsql_test joinD-1066 { 31301 SELECT t1.*, t2.*, t3.*, t4.* 31302 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 31303 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 31304 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 31305 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31306} { 31307 3 103 203 303 - - 203 3 - - 31308 6 106 206 306 106 6 206 6 - - 31309 9 109 209 309 - - 209 9 - - 31310 12 112 212 312 112 12 212 12 - - 31311 15 115 215 315 - - 215 15 315 15 31312 18 118 218 318 118 18 218 18 - - 31313 21 121 221 321 - - 221 21 - - 31314 24 124 224 324 124 24 224 24 - - 31315 27 127 227 327 - - 227 27 - - 31316 30 130 230 330 130 30 230 30 330 30 31317 33 133 233 333 - - 233 33 - - 31318 36 136 236 336 136 36 236 36 - - 31319 39 139 239 339 - - 239 39 - - 31320 42 142 242 342 142 42 242 42 - - 31321 45 145 245 345 - - 245 45 345 45 31322 48 148 248 348 148 48 248 48 - - 31323 51 151 251 351 - - 251 51 - - 31324 54 154 254 354 154 54 254 54 - - 31325 57 157 257 357 - - 257 57 - - 31326 60 160 260 360 160 60 260 60 360 60 31327 63 163 263 363 - - 263 63 - - 31328 66 166 266 366 166 66 266 66 - - 31329 69 169 269 369 - - 269 69 - - 31330 72 172 272 372 172 72 272 72 - - 31331 75 175 275 375 - - 275 75 375 75 31332 78 178 278 378 178 78 278 78 - - 31333 81 181 281 381 - - 281 81 - - 31334 84 184 284 384 184 84 284 84 - - 31335 87 187 287 387 - - 287 87 - - 31336 90 190 290 390 190 90 290 90 390 90 31337 93 193 293 393 - - 293 93 - - 31338 - - - - - - 200 0 - - 31339} 31340do_execsql_test joinD-1067 { 31341 SELECT t1.*, t2.*, t3.*, t4.* 31342 FROM t1 FULL JOIN t2 ON t2.x>0 31343 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 31344 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 31345 WHERE t1.b = t2.b 31346 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31347} { 31348 6 106 206 306 106 6 206 6 - - 31349 12 112 212 312 112 12 212 12 - - 31350 18 118 218 318 118 18 218 18 - - 31351 24 124 224 324 124 24 224 24 - - 31352 30 130 230 330 130 30 230 30 330 30 31353 36 136 236 336 136 36 236 36 - - 31354 42 142 242 342 142 42 242 42 - - 31355 48 148 248 348 148 48 248 48 - - 31356 54 154 254 354 154 54 254 54 - - 31357 60 160 260 360 160 60 260 60 360 60 31358 66 166 266 366 166 66 266 66 - - 31359 72 172 272 372 172 72 272 72 - - 31360 78 178 278 378 178 78 278 78 - - 31361 84 184 284 384 184 84 284 84 - - 31362 90 190 290 390 190 90 290 90 390 90 31363} 31364do_execsql_test joinD-1068 { 31365 SELECT t1.*, t2.*, t3.*, t4.* 31366 FROM t1 FULL JOIN t2 ON t2.x>0 31367 RIGHT JOIN t3 ON t3.y>0 31368 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 31369 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 31370 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31371} { 31372 6 106 206 306 106 6 206 6 - - 31373 12 112 212 312 112 12 212 12 - - 31374 18 118 218 318 118 18 218 18 - - 31375 24 124 224 324 124 24 224 24 - - 31376 30 130 230 330 130 30 230 30 330 30 31377 36 136 236 336 136 36 236 36 - - 31378 42 142 242 342 142 42 242 42 - - 31379 48 148 248 348 148 48 248 48 - - 31380 54 154 254 354 154 54 254 54 - - 31381 60 160 260 360 160 60 260 60 360 60 31382 66 166 266 366 166 66 266 66 - - 31383 72 172 272 372 172 72 272 72 - - 31384 78 178 278 378 178 78 278 78 - - 31385 84 184 284 384 184 84 284 84 - - 31386 90 190 290 390 190 90 290 90 390 90 31387} 31388do_execsql_test joinD-1069 { 31389 SELECT t1.*, t2.*, t3.*, t4.* 31390 FROM t1 FULL JOIN t2 ON t2.x>0 31391 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 31392 LEFT JOIN t4 ON t4.z>0 31393 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 31394 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31395} { 31396 30 130 230 330 130 30 230 30 330 30 31397 60 160 260 360 160 60 260 60 360 60 31398 90 190 290 390 190 90 290 90 390 90 31399} 31400do_execsql_test joinD-1070 { 31401 SELECT t1.*, t2.*, t3.*, t4.* 31402 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31403 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 31404 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 31405 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31406} { 31407 3 103 203 303 - - 203 3 - - 31408 6 106 206 306 106 6 206 6 - - 31409 9 109 209 309 - - 209 9 - - 31410 12 112 212 312 112 12 212 12 - - 31411 15 115 215 315 - - 215 15 315 15 31412 18 118 218 318 118 18 218 18 - - 31413 21 121 221 321 - - 221 21 - - 31414 24 124 224 324 124 24 224 24 - - 31415 27 127 227 327 - - 227 27 - - 31416 30 130 230 330 130 30 230 30 330 30 31417 33 133 233 333 - - 233 33 - - 31418 36 136 236 336 136 36 236 36 - - 31419 39 139 239 339 - - 239 39 - - 31420 42 142 242 342 142 42 242 42 - - 31421 45 145 245 345 - - 245 45 345 45 31422 48 148 248 348 148 48 248 48 - - 31423 51 151 251 351 - - 251 51 - - 31424 54 154 254 354 154 54 254 54 - - 31425 57 157 257 357 - - 257 57 - - 31426 60 160 260 360 160 60 260 60 360 60 31427 63 163 263 363 - - 263 63 - - 31428 66 166 266 366 166 66 266 66 - - 31429 69 169 269 369 - - 269 69 - - 31430 72 172 272 372 172 72 272 72 - - 31431 75 175 275 375 - - 275 75 375 75 31432 78 178 278 378 178 78 278 78 - - 31433 81 181 281 381 - - 281 81 - - 31434 84 184 284 384 184 84 284 84 - - 31435 87 187 287 387 - - 287 87 - - 31436 90 190 290 390 190 90 290 90 390 90 31437 93 193 293 393 - - 293 93 - - 31438 - - - - - - 200 0 - - 31439} 31440do_execsql_test joinD-1071 { 31441 SELECT t1.*, t2.*, t3.*, t4.* 31442 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31443 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31444 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 31445 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31446} { 31447 15 115 215 315 - - 215 15 315 15 31448 30 130 230 330 130 30 230 30 330 30 31449 45 145 245 345 - - 245 45 345 45 31450 60 160 260 360 160 60 260 60 360 60 31451 75 175 275 375 - - 275 75 375 75 31452 90 190 290 390 190 90 290 90 390 90 31453 - - - - - - - - 300 0 31454 - - - - - - - - 305 5 31455 - - - - - - - - 310 10 31456 - - - - - - - - 320 20 31457 - - - - - - - - 325 25 31458 - - - - - - - - 335 35 31459 - - - - - - - - 340 40 31460 - - - - - - - - 350 50 31461 - - - - - - - - 355 55 31462 - - - - - - - - 365 65 31463 - - - - - - - - 370 70 31464 - - - - - - - - 380 80 31465 - - - - - - - - 385 85 31466 - - - - - - - - 395 95 31467} 31468do_execsql_test joinD-1072 { 31469 SELECT t1.*, t2.*, t3.*, t4.* 31470 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31471 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31472 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 31473 WHERE t2.x>0 31474 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31475} { 31476 30 130 230 330 130 30 230 30 330 30 31477 60 160 260 360 160 60 260 60 360 60 31478 90 190 290 390 190 90 290 90 390 90 31479} 31480do_execsql_test joinD-1073 { 31481 SELECT t1.*, t2.*, t3.*, t4.* 31482 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31483 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31484 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 31485 WHERE (t2.x>0 OR t2.x IS NULL) 31486 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31487} { 31488 15 115 215 315 - - 215 15 315 15 31489 30 130 230 330 130 30 230 30 330 30 31490 45 145 245 345 - - 245 45 345 45 31491 60 160 260 360 160 60 260 60 360 60 31492 75 175 275 375 - - 275 75 375 75 31493 90 190 290 390 190 90 290 90 390 90 31494 - - - - - - - - 300 0 31495 - - - - - - - - 305 5 31496 - - - - - - - - 310 10 31497 - - - - - - - - 320 20 31498 - - - - - - - - 325 25 31499 - - - - - - - - 335 35 31500 - - - - - - - - 340 40 31501 - - - - - - - - 350 50 31502 - - - - - - - - 355 55 31503 - - - - - - - - 365 65 31504 - - - - - - - - 370 70 31505 - - - - - - - - 380 80 31506 - - - - - - - - 385 85 31507 - - - - - - - - 395 95 31508} 31509do_execsql_test joinD-1074 { 31510 SELECT t1.*, t2.*, t3.*, t4.* 31511 FROM t1 FULL JOIN t2 ON true 31512 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31513 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 31514 WHERE t1.b=t2.b AND t2.x>0 31515 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31516} { 31517 30 130 230 330 130 30 230 30 330 30 31518 60 160 260 360 160 60 260 60 360 60 31519 90 190 290 390 190 90 290 90 390 90 31520} 31521do_execsql_test joinD-1075 { 31522 SELECT t1.*, t2.*, t3.*, t4.* 31523 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31524 RIGHT JOIN t3 ON t1.c=t3.c 31525 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 31526 WHERE t3.y>0 31527 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31528} { 31529 15 115 215 315 - - 215 15 315 15 31530 30 130 230 330 130 30 230 30 330 30 31531 45 145 245 345 - - 245 45 345 45 31532 60 160 260 360 160 60 260 60 360 60 31533 75 175 275 375 - - 275 75 375 75 31534 90 190 290 390 190 90 290 90 390 90 31535} 31536do_execsql_test joinD-1076 { 31537 SELECT t1.*, t2.*, t3.*, t4.* 31538 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31539 RIGHT JOIN t3 ON t1.c=t3.c 31540 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 31541 WHERE t3.y>0 OR t3.y IS NULL 31542 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31543} { 31544 15 115 215 315 - - 215 15 315 15 31545 30 130 230 330 130 30 230 30 330 30 31546 45 145 245 345 - - 245 45 345 45 31547 60 160 260 360 160 60 260 60 360 60 31548 75 175 275 375 - - 275 75 375 75 31549 90 190 290 390 190 90 290 90 390 90 31550 - - - - - - - - 300 0 31551 - - - - - - - - 305 5 31552 - - - - - - - - 310 10 31553 - - - - - - - - 320 20 31554 - - - - - - - - 325 25 31555 - - - - - - - - 335 35 31556 - - - - - - - - 340 40 31557 - - - - - - - - 350 50 31558 - - - - - - - - 355 55 31559 - - - - - - - - 365 65 31560 - - - - - - - - 370 70 31561 - - - - - - - - 380 80 31562 - - - - - - - - 385 85 31563 - - - - - - - - 395 95 31564} 31565do_execsql_test joinD-1077 { 31566 SELECT t1.*, t2.*, t3.*, t4.* 31567 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31568 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31569 RIGHT JOIN t4 ON t1.d=t4.d 31570 WHERE t4.z>0 31571 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31572} { 31573 15 115 215 315 - - 215 15 315 15 31574 30 130 230 330 130 30 230 30 330 30 31575 45 145 245 345 - - 245 45 345 45 31576 60 160 260 360 160 60 260 60 360 60 31577 75 175 275 375 - - 275 75 375 75 31578 90 190 290 390 190 90 290 90 390 90 31579 - - - - - - - - 305 5 31580 - - - - - - - - 310 10 31581 - - - - - - - - 320 20 31582 - - - - - - - - 325 25 31583 - - - - - - - - 335 35 31584 - - - - - - - - 340 40 31585 - - - - - - - - 350 50 31586 - - - - - - - - 355 55 31587 - - - - - - - - 365 65 31588 - - - - - - - - 370 70 31589 - - - - - - - - 380 80 31590 - - - - - - - - 385 85 31591 - - - - - - - - 395 95 31592} 31593do_execsql_test joinD-1078 { 31594 SELECT t1.*, t2.*, t3.*, t4.* 31595 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31596 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31597 RIGHT JOIN t4 ON t1.d=t4.d 31598 WHERE t4.z IS NULL OR t4.z>0 31599 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31600} { 31601 15 115 215 315 - - 215 15 315 15 31602 30 130 230 330 130 30 230 30 330 30 31603 45 145 245 345 - - 245 45 345 45 31604 60 160 260 360 160 60 260 60 360 60 31605 75 175 275 375 - - 275 75 375 75 31606 90 190 290 390 190 90 290 90 390 90 31607 - - - - - - - - 305 5 31608 - - - - - - - - 310 10 31609 - - - - - - - - 320 20 31610 - - - - - - - - 325 25 31611 - - - - - - - - 335 35 31612 - - - - - - - - 340 40 31613 - - - - - - - - 350 50 31614 - - - - - - - - 355 55 31615 - - - - - - - - 365 65 31616 - - - - - - - - 370 70 31617 - - - - - - - - 380 80 31618 - - - - - - - - 385 85 31619 - - - - - - - - 395 95 31620} 31621do_execsql_test joinD-1079 { 31622 SELECT t1.*, t2.*, t3.*, t4.* 31623 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31624 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31625 RIGHT JOIN t4 ON t1.d=t4.d 31626 WHERE t2.x>0 AND t4.z>0 31627 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31628} { 31629 30 130 230 330 130 30 230 30 330 30 31630 60 160 260 360 160 60 260 60 360 60 31631 90 190 290 390 190 90 290 90 390 90 31632} 31633do_execsql_test joinD-1080 { 31634 SELECT t1.*, t2.*, t3.*, t4.* 31635 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31636 RIGHT JOIN t3 ON t1.c=t3.c 31637 RIGHT JOIN t4 ON t1.d=t4.d 31638 WHERE t4.z>0 AND t3.y>0 31639 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31640} { 31641 15 115 215 315 - - 215 15 315 15 31642 30 130 230 330 130 30 230 30 330 30 31643 45 145 245 345 - - 245 45 345 45 31644 60 160 260 360 160 60 260 60 360 60 31645 75 175 275 375 - - 275 75 375 75 31646 90 190 290 390 190 90 290 90 390 90 31647} 31648do_execsql_test joinD-1081 { 31649 SELECT t1.*, t2.*, t3.*, t4.* 31650 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31651 RIGHT JOIN t3 ON t1.c=t3.c 31652 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 31653 WHERE t2.x>0 AND t3.y>0 31654 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31655} { 31656 30 130 230 330 130 30 230 30 330 30 31657 60 160 260 360 160 60 260 60 360 60 31658 90 190 290 390 190 90 290 90 390 90 31659} 31660do_execsql_test joinD-1082 { 31661 SELECT t1.*, t2.*, t3.*, t4.* 31662 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31663 RIGHT JOIN t3 ON t1.c=t3.c 31664 RIGHT JOIN t4 ON t1.d=t4.d 31665 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 31666 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31667} { 31668 30 130 230 330 130 30 230 30 330 30 31669 60 160 260 360 160 60 260 60 360 60 31670 90 190 290 390 190 90 290 90 390 90 31671} 31672do_execsql_test joinD-1083 { 31673 SELECT t1.*, t2.*, t3.*, t4.* 31674 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 31675 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 31676 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 31677 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31678} { 31679 15 115 215 315 - - 215 15 315 15 31680 30 130 230 330 130 30 230 30 330 30 31681 45 145 245 345 - - 245 45 345 45 31682 60 160 260 360 160 60 260 60 360 60 31683 75 175 275 375 - - 275 75 375 75 31684 90 190 290 390 190 90 290 90 390 90 31685 - - - - - - - - 300 0 31686 - - - - - - - - 305 5 31687 - - - - - - - - 310 10 31688 - - - - - - - - 320 20 31689 - - - - - - - - 325 25 31690 - - - - - - - - 335 35 31691 - - - - - - - - 340 40 31692 - - - - - - - - 350 50 31693 - - - - - - - - 355 55 31694 - - - - - - - - 365 65 31695 - - - - - - - - 370 70 31696 - - - - - - - - 380 80 31697 - - - - - - - - 385 85 31698 - - - - - - - - 395 95 31699} 31700do_execsql_test joinD-1084 { 31701 SELECT t1.*, t2.*, t3.*, t4.* 31702 FROM t1 FULL JOIN t2 ON t2.x>0 31703 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 31704 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 31705 WHERE t1.b = t2.b 31706 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31707} { 31708 30 130 230 330 130 30 230 30 330 30 31709 60 160 260 360 160 60 260 60 360 60 31710 90 190 290 390 190 90 290 90 390 90 31711} 31712do_execsql_test joinD-1085 { 31713 SELECT t1.*, t2.*, t3.*, t4.* 31714 FROM t1 FULL JOIN t2 ON t2.x>0 31715 RIGHT JOIN t3 ON t3.y>0 31716 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 31717 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 31718 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31719} { 31720 30 130 230 330 130 30 230 30 330 30 31721 60 160 260 360 160 60 260 60 360 60 31722 90 190 290 390 190 90 290 90 390 90 31723} 31724do_execsql_test joinD-1086 { 31725 SELECT t1.*, t2.*, t3.*, t4.* 31726 FROM t1 FULL JOIN t2 ON t2.x>0 31727 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 31728 RIGHT JOIN t4 ON t4.z>0 31729 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 31730 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31731} { 31732 30 130 230 330 130 30 230 30 330 30 31733 60 160 260 360 160 60 260 60 360 60 31734 90 190 290 390 190 90 290 90 390 90 31735} 31736do_execsql_test joinD-1087 { 31737 SELECT t1.*, t2.*, t3.*, t4.* 31738 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31739 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 31740 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 31741 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31742} { 31743 15 115 215 315 - - 215 15 315 15 31744 30 130 230 330 130 30 230 30 330 30 31745 45 145 245 345 - - 245 45 345 45 31746 60 160 260 360 160 60 260 60 360 60 31747 75 175 275 375 - - 275 75 375 75 31748 90 190 290 390 190 90 290 90 390 90 31749 - - - - - - - - 300 0 31750 - - - - - - - - 305 5 31751 - - - - - - - - 310 10 31752 - - - - - - - - 320 20 31753 - - - - - - - - 325 25 31754 - - - - - - - - 335 35 31755 - - - - - - - - 340 40 31756 - - - - - - - - 350 50 31757 - - - - - - - - 355 55 31758 - - - - - - - - 365 65 31759 - - - - - - - - 370 70 31760 - - - - - - - - 380 80 31761 - - - - - - - - 385 85 31762 - - - - - - - - 395 95 31763} 31764do_execsql_test joinD-1088 { 31765 SELECT t1.*, t2.*, t3.*, t4.* 31766 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31767 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31768 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 31769 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31770} { 31771 3 103 203 303 - - 203 3 - - 31772 6 106 206 306 106 6 206 6 - - 31773 9 109 209 309 - - 209 9 - - 31774 12 112 212 312 112 12 212 12 - - 31775 15 115 215 315 - - 215 15 315 15 31776 18 118 218 318 118 18 218 18 - - 31777 21 121 221 321 - - 221 21 - - 31778 24 124 224 324 124 24 224 24 - - 31779 27 127 227 327 - - 227 27 - - 31780 30 130 230 330 130 30 230 30 330 30 31781 33 133 233 333 - - 233 33 - - 31782 36 136 236 336 136 36 236 36 - - 31783 39 139 239 339 - - 239 39 - - 31784 42 142 242 342 142 42 242 42 - - 31785 45 145 245 345 - - 245 45 345 45 31786 48 148 248 348 148 48 248 48 - - 31787 51 151 251 351 - - 251 51 - - 31788 54 154 254 354 154 54 254 54 - - 31789 57 157 257 357 - - 257 57 - - 31790 60 160 260 360 160 60 260 60 360 60 31791 63 163 263 363 - - 263 63 - - 31792 66 166 266 366 166 66 266 66 - - 31793 69 169 269 369 - - 269 69 - - 31794 72 172 272 372 172 72 272 72 - - 31795 75 175 275 375 - - 275 75 375 75 31796 78 178 278 378 178 78 278 78 - - 31797 81 181 281 381 - - 281 81 - - 31798 84 184 284 384 184 84 284 84 - - 31799 87 187 287 387 - - 287 87 - - 31800 90 190 290 390 190 90 290 90 390 90 31801 93 193 293 393 - - 293 93 - - 31802 - - - - - - 200 0 - - 31803 - - - - - - - - 300 0 31804 - - - - - - - - 305 5 31805 - - - - - - - - 310 10 31806 - - - - - - - - 320 20 31807 - - - - - - - - 325 25 31808 - - - - - - - - 335 35 31809 - - - - - - - - 340 40 31810 - - - - - - - - 350 50 31811 - - - - - - - - 355 55 31812 - - - - - - - - 365 65 31813 - - - - - - - - 370 70 31814 - - - - - - - - 380 80 31815 - - - - - - - - 385 85 31816 - - - - - - - - 395 95 31817} 31818do_execsql_test joinD-1089 { 31819 SELECT t1.*, t2.*, t3.*, t4.* 31820 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31821 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31822 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 31823 WHERE t2.x>0 31824 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31825} { 31826 6 106 206 306 106 6 206 6 - - 31827 12 112 212 312 112 12 212 12 - - 31828 18 118 218 318 118 18 218 18 - - 31829 24 124 224 324 124 24 224 24 - - 31830 30 130 230 330 130 30 230 30 330 30 31831 36 136 236 336 136 36 236 36 - - 31832 42 142 242 342 142 42 242 42 - - 31833 48 148 248 348 148 48 248 48 - - 31834 54 154 254 354 154 54 254 54 - - 31835 60 160 260 360 160 60 260 60 360 60 31836 66 166 266 366 166 66 266 66 - - 31837 72 172 272 372 172 72 272 72 - - 31838 78 178 278 378 178 78 278 78 - - 31839 84 184 284 384 184 84 284 84 - - 31840 90 190 290 390 190 90 290 90 390 90 31841} 31842do_execsql_test joinD-1090 { 31843 SELECT t1.*, t2.*, t3.*, t4.* 31844 FROM t1 FULL JOIN t2 ON t1.b=t2.b 31845 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31846 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 31847 WHERE (t2.x>0 OR t2.x IS NULL) 31848 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31849} { 31850 3 103 203 303 - - 203 3 - - 31851 6 106 206 306 106 6 206 6 - - 31852 9 109 209 309 - - 209 9 - - 31853 12 112 212 312 112 12 212 12 - - 31854 15 115 215 315 - - 215 15 315 15 31855 18 118 218 318 118 18 218 18 - - 31856 21 121 221 321 - - 221 21 - - 31857 24 124 224 324 124 24 224 24 - - 31858 27 127 227 327 - - 227 27 - - 31859 30 130 230 330 130 30 230 30 330 30 31860 33 133 233 333 - - 233 33 - - 31861 36 136 236 336 136 36 236 36 - - 31862 39 139 239 339 - - 239 39 - - 31863 42 142 242 342 142 42 242 42 - - 31864 45 145 245 345 - - 245 45 345 45 31865 48 148 248 348 148 48 248 48 - - 31866 51 151 251 351 - - 251 51 - - 31867 54 154 254 354 154 54 254 54 - - 31868 57 157 257 357 - - 257 57 - - 31869 60 160 260 360 160 60 260 60 360 60 31870 63 163 263 363 - - 263 63 - - 31871 66 166 266 366 166 66 266 66 - - 31872 69 169 269 369 - - 269 69 - - 31873 72 172 272 372 172 72 272 72 - - 31874 75 175 275 375 - - 275 75 375 75 31875 78 178 278 378 178 78 278 78 - - 31876 81 181 281 381 - - 281 81 - - 31877 84 184 284 384 184 84 284 84 - - 31878 87 187 287 387 - - 287 87 - - 31879 90 190 290 390 190 90 290 90 390 90 31880 93 193 293 393 - - 293 93 - - 31881 - - - - - - 200 0 - - 31882 - - - - - - - - 300 0 31883 - - - - - - - - 305 5 31884 - - - - - - - - 310 10 31885 - - - - - - - - 320 20 31886 - - - - - - - - 325 25 31887 - - - - - - - - 335 35 31888 - - - - - - - - 340 40 31889 - - - - - - - - 350 50 31890 - - - - - - - - 355 55 31891 - - - - - - - - 365 65 31892 - - - - - - - - 370 70 31893 - - - - - - - - 380 80 31894 - - - - - - - - 385 85 31895 - - - - - - - - 395 95 31896} 31897do_execsql_test joinD-1091 { 31898 SELECT t1.*, t2.*, t3.*, t4.* 31899 FROM t1 FULL JOIN t2 ON true 31900 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 31901 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 31902 WHERE t1.b=t2.b AND t2.x>0 31903 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31904} { 31905 6 106 206 306 106 6 206 6 - - 31906 12 112 212 312 112 12 212 12 - - 31907 18 118 218 318 118 18 218 18 - - 31908 24 124 224 324 124 24 224 24 - - 31909 30 130 230 330 130 30 230 30 330 30 31910 36 136 236 336 136 36 236 36 - - 31911 42 142 242 342 142 42 242 42 - - 31912 48 148 248 348 148 48 248 48 - - 31913 54 154 254 354 154 54 254 54 - - 31914 60 160 260 360 160 60 260 60 360 60 31915 66 166 266 366 166 66 266 66 - - 31916 72 172 272 372 172 72 272 72 - - 31917 78 178 278 378 178 78 278 78 - - 31918 84 184 284 384 184 84 284 84 - - 31919 90 190 290 390 190 90 290 90 390 90 31920} 31921do_execsql_test joinD-1092 { 31922 SELECT t1.*, t2.*, t3.*, t4.* 31923 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31924 RIGHT JOIN t3 ON t1.c=t3.c 31925 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 31926 WHERE t3.y>0 31927 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31928} { 31929 3 103 203 303 - - 203 3 - - 31930 6 106 206 306 106 6 206 6 - - 31931 9 109 209 309 - - 209 9 - - 31932 12 112 212 312 112 12 212 12 - - 31933 15 115 215 315 - - 215 15 315 15 31934 18 118 218 318 118 18 218 18 - - 31935 21 121 221 321 - - 221 21 - - 31936 24 124 224 324 124 24 224 24 - - 31937 27 127 227 327 - - 227 27 - - 31938 30 130 230 330 130 30 230 30 330 30 31939 33 133 233 333 - - 233 33 - - 31940 36 136 236 336 136 36 236 36 - - 31941 39 139 239 339 - - 239 39 - - 31942 42 142 242 342 142 42 242 42 - - 31943 45 145 245 345 - - 245 45 345 45 31944 48 148 248 348 148 48 248 48 - - 31945 51 151 251 351 - - 251 51 - - 31946 54 154 254 354 154 54 254 54 - - 31947 57 157 257 357 - - 257 57 - - 31948 60 160 260 360 160 60 260 60 360 60 31949 63 163 263 363 - - 263 63 - - 31950 66 166 266 366 166 66 266 66 - - 31951 69 169 269 369 - - 269 69 - - 31952 72 172 272 372 172 72 272 72 - - 31953 75 175 275 375 - - 275 75 375 75 31954 78 178 278 378 178 78 278 78 - - 31955 81 181 281 381 - - 281 81 - - 31956 84 184 284 384 184 84 284 84 - - 31957 87 187 287 387 - - 287 87 - - 31958 90 190 290 390 190 90 290 90 390 90 31959 93 193 293 393 - - 293 93 - - 31960} 31961do_execsql_test joinD-1093 { 31962 SELECT t1.*, t2.*, t3.*, t4.* 31963 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 31964 RIGHT JOIN t3 ON t1.c=t3.c 31965 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 31966 WHERE t3.y>0 OR t3.y IS NULL 31967 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 31968} { 31969 3 103 203 303 - - 203 3 - - 31970 6 106 206 306 106 6 206 6 - - 31971 9 109 209 309 - - 209 9 - - 31972 12 112 212 312 112 12 212 12 - - 31973 15 115 215 315 - - 215 15 315 15 31974 18 118 218 318 118 18 218 18 - - 31975 21 121 221 321 - - 221 21 - - 31976 24 124 224 324 124 24 224 24 - - 31977 27 127 227 327 - - 227 27 - - 31978 30 130 230 330 130 30 230 30 330 30 31979 33 133 233 333 - - 233 33 - - 31980 36 136 236 336 136 36 236 36 - - 31981 39 139 239 339 - - 239 39 - - 31982 42 142 242 342 142 42 242 42 - - 31983 45 145 245 345 - - 245 45 345 45 31984 48 148 248 348 148 48 248 48 - - 31985 51 151 251 351 - - 251 51 - - 31986 54 154 254 354 154 54 254 54 - - 31987 57 157 257 357 - - 257 57 - - 31988 60 160 260 360 160 60 260 60 360 60 31989 63 163 263 363 - - 263 63 - - 31990 66 166 266 366 166 66 266 66 - - 31991 69 169 269 369 - - 269 69 - - 31992 72 172 272 372 172 72 272 72 - - 31993 75 175 275 375 - - 275 75 375 75 31994 78 178 278 378 178 78 278 78 - - 31995 81 181 281 381 - - 281 81 - - 31996 84 184 284 384 184 84 284 84 - - 31997 87 187 287 387 - - 287 87 - - 31998 90 190 290 390 190 90 290 90 390 90 31999 93 193 293 393 - - 293 93 - - 32000 - - - - - - - - 300 0 32001 - - - - - - - - 305 5 32002 - - - - - - - - 310 10 32003 - - - - - - - - 320 20 32004 - - - - - - - - 325 25 32005 - - - - - - - - 335 35 32006 - - - - - - - - 340 40 32007 - - - - - - - - 350 50 32008 - - - - - - - - 355 55 32009 - - - - - - - - 365 65 32010 - - - - - - - - 370 70 32011 - - - - - - - - 380 80 32012 - - - - - - - - 385 85 32013 - - - - - - - - 395 95 32014} 32015do_execsql_test joinD-1094 { 32016 SELECT t1.*, t2.*, t3.*, t4.* 32017 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32018 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 32019 FULL JOIN t4 ON t1.d=t4.d 32020 WHERE t4.z>0 32021 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32022} { 32023 15 115 215 315 - - 215 15 315 15 32024 30 130 230 330 130 30 230 30 330 30 32025 45 145 245 345 - - 245 45 345 45 32026 60 160 260 360 160 60 260 60 360 60 32027 75 175 275 375 - - 275 75 375 75 32028 90 190 290 390 190 90 290 90 390 90 32029 - - - - - - - - 305 5 32030 - - - - - - - - 310 10 32031 - - - - - - - - 320 20 32032 - - - - - - - - 325 25 32033 - - - - - - - - 335 35 32034 - - - - - - - - 340 40 32035 - - - - - - - - 350 50 32036 - - - - - - - - 355 55 32037 - - - - - - - - 365 65 32038 - - - - - - - - 370 70 32039 - - - - - - - - 380 80 32040 - - - - - - - - 385 85 32041 - - - - - - - - 395 95 32042} 32043do_execsql_test joinD-1095 { 32044 SELECT t1.*, t2.*, t3.*, t4.* 32045 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32046 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 32047 FULL JOIN t4 ON t1.d=t4.d 32048 WHERE t4.z IS NULL OR t4.z>0 32049 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32050} { 32051 3 103 203 303 - - 203 3 - - 32052 6 106 206 306 106 6 206 6 - - 32053 9 109 209 309 - - 209 9 - - 32054 12 112 212 312 112 12 212 12 - - 32055 15 115 215 315 - - 215 15 315 15 32056 18 118 218 318 118 18 218 18 - - 32057 21 121 221 321 - - 221 21 - - 32058 24 124 224 324 124 24 224 24 - - 32059 27 127 227 327 - - 227 27 - - 32060 30 130 230 330 130 30 230 30 330 30 32061 33 133 233 333 - - 233 33 - - 32062 36 136 236 336 136 36 236 36 - - 32063 39 139 239 339 - - 239 39 - - 32064 42 142 242 342 142 42 242 42 - - 32065 45 145 245 345 - - 245 45 345 45 32066 48 148 248 348 148 48 248 48 - - 32067 51 151 251 351 - - 251 51 - - 32068 54 154 254 354 154 54 254 54 - - 32069 57 157 257 357 - - 257 57 - - 32070 60 160 260 360 160 60 260 60 360 60 32071 63 163 263 363 - - 263 63 - - 32072 66 166 266 366 166 66 266 66 - - 32073 69 169 269 369 - - 269 69 - - 32074 72 172 272 372 172 72 272 72 - - 32075 75 175 275 375 - - 275 75 375 75 32076 78 178 278 378 178 78 278 78 - - 32077 81 181 281 381 - - 281 81 - - 32078 84 184 284 384 184 84 284 84 - - 32079 87 187 287 387 - - 287 87 - - 32080 90 190 290 390 190 90 290 90 390 90 32081 93 193 293 393 - - 293 93 - - 32082 - - - - - - 200 0 - - 32083 - - - - - - - - 305 5 32084 - - - - - - - - 310 10 32085 - - - - - - - - 320 20 32086 - - - - - - - - 325 25 32087 - - - - - - - - 335 35 32088 - - - - - - - - 340 40 32089 - - - - - - - - 350 50 32090 - - - - - - - - 355 55 32091 - - - - - - - - 365 65 32092 - - - - - - - - 370 70 32093 - - - - - - - - 380 80 32094 - - - - - - - - 385 85 32095 - - - - - - - - 395 95 32096} 32097do_execsql_test joinD-1096 { 32098 SELECT t1.*, t2.*, t3.*, t4.* 32099 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32100 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 32101 FULL JOIN t4 ON t1.d=t4.d 32102 WHERE t2.x>0 AND t4.z>0 32103 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32104} { 32105 30 130 230 330 130 30 230 30 330 30 32106 60 160 260 360 160 60 260 60 360 60 32107 90 190 290 390 190 90 290 90 390 90 32108} 32109do_execsql_test joinD-1097 { 32110 SELECT t1.*, t2.*, t3.*, t4.* 32111 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32112 RIGHT JOIN t3 ON t1.c=t3.c 32113 FULL JOIN t4 ON t1.d=t4.d 32114 WHERE t4.z>0 AND t3.y>0 32115 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32116} { 32117 15 115 215 315 - - 215 15 315 15 32118 30 130 230 330 130 30 230 30 330 30 32119 45 145 245 345 - - 245 45 345 45 32120 60 160 260 360 160 60 260 60 360 60 32121 75 175 275 375 - - 275 75 375 75 32122 90 190 290 390 190 90 290 90 390 90 32123} 32124do_execsql_test joinD-1098 { 32125 SELECT t1.*, t2.*, t3.*, t4.* 32126 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32127 RIGHT JOIN t3 ON t1.c=t3.c 32128 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 32129 WHERE t2.x>0 AND t3.y>0 32130 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32131} { 32132 6 106 206 306 106 6 206 6 - - 32133 12 112 212 312 112 12 212 12 - - 32134 18 118 218 318 118 18 218 18 - - 32135 24 124 224 324 124 24 224 24 - - 32136 30 130 230 330 130 30 230 30 330 30 32137 36 136 236 336 136 36 236 36 - - 32138 42 142 242 342 142 42 242 42 - - 32139 48 148 248 348 148 48 248 48 - - 32140 54 154 254 354 154 54 254 54 - - 32141 60 160 260 360 160 60 260 60 360 60 32142 66 166 266 366 166 66 266 66 - - 32143 72 172 272 372 172 72 272 72 - - 32144 78 178 278 378 178 78 278 78 - - 32145 84 184 284 384 184 84 284 84 - - 32146 90 190 290 390 190 90 290 90 390 90 32147} 32148do_execsql_test joinD-1099 { 32149 SELECT t1.*, t2.*, t3.*, t4.* 32150 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32151 RIGHT JOIN t3 ON t1.c=t3.c 32152 FULL JOIN t4 ON t1.d=t4.d 32153 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 32154 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32155} { 32156 30 130 230 330 130 30 230 30 330 30 32157 60 160 260 360 160 60 260 60 360 60 32158 90 190 290 390 190 90 290 90 390 90 32159} 32160do_execsql_test joinD-1100 { 32161 SELECT t1.*, t2.*, t3.*, t4.* 32162 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 32163 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 32164 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 32165 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32166} { 32167 3 103 203 303 - - 203 3 - - 32168 6 106 206 306 106 6 206 6 - - 32169 9 109 209 309 - - 209 9 - - 32170 12 112 212 312 112 12 212 12 - - 32171 15 115 215 315 - - 215 15 315 15 32172 18 118 218 318 118 18 218 18 - - 32173 21 121 221 321 - - 221 21 - - 32174 24 124 224 324 124 24 224 24 - - 32175 27 127 227 327 - - 227 27 - - 32176 30 130 230 330 130 30 230 30 330 30 32177 33 133 233 333 - - 233 33 - - 32178 36 136 236 336 136 36 236 36 - - 32179 39 139 239 339 - - 239 39 - - 32180 42 142 242 342 142 42 242 42 - - 32181 45 145 245 345 - - 245 45 345 45 32182 48 148 248 348 148 48 248 48 - - 32183 51 151 251 351 - - 251 51 - - 32184 54 154 254 354 154 54 254 54 - - 32185 57 157 257 357 - - 257 57 - - 32186 60 160 260 360 160 60 260 60 360 60 32187 63 163 263 363 - - 263 63 - - 32188 66 166 266 366 166 66 266 66 - - 32189 69 169 269 369 - - 269 69 - - 32190 72 172 272 372 172 72 272 72 - - 32191 75 175 275 375 - - 275 75 375 75 32192 78 178 278 378 178 78 278 78 - - 32193 81 181 281 381 - - 281 81 - - 32194 84 184 284 384 184 84 284 84 - - 32195 87 187 287 387 - - 287 87 - - 32196 90 190 290 390 190 90 290 90 390 90 32197 93 193 293 393 - - 293 93 - - 32198 - - - - - - 200 0 - - 32199 - - - - - - - - 300 0 32200 - - - - - - - - 305 5 32201 - - - - - - - - 310 10 32202 - - - - - - - - 320 20 32203 - - - - - - - - 325 25 32204 - - - - - - - - 335 35 32205 - - - - - - - - 340 40 32206 - - - - - - - - 350 50 32207 - - - - - - - - 355 55 32208 - - - - - - - - 365 65 32209 - - - - - - - - 370 70 32210 - - - - - - - - 380 80 32211 - - - - - - - - 385 85 32212 - - - - - - - - 395 95 32213} 32214do_execsql_test joinD-1101 { 32215 SELECT t1.*, t2.*, t3.*, t4.* 32216 FROM t1 FULL JOIN t2 ON t2.x>0 32217 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 32218 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 32219 WHERE t1.b = t2.b 32220 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32221} { 32222 6 106 206 306 106 6 206 6 - - 32223 12 112 212 312 112 12 212 12 - - 32224 18 118 218 318 118 18 218 18 - - 32225 24 124 224 324 124 24 224 24 - - 32226 30 130 230 330 130 30 230 30 330 30 32227 36 136 236 336 136 36 236 36 - - 32228 42 142 242 342 142 42 242 42 - - 32229 48 148 248 348 148 48 248 48 - - 32230 54 154 254 354 154 54 254 54 - - 32231 60 160 260 360 160 60 260 60 360 60 32232 66 166 266 366 166 66 266 66 - - 32233 72 172 272 372 172 72 272 72 - - 32234 78 178 278 378 178 78 278 78 - - 32235 84 184 284 384 184 84 284 84 - - 32236 90 190 290 390 190 90 290 90 390 90 32237} 32238do_execsql_test joinD-1102 { 32239 SELECT t1.*, t2.*, t3.*, t4.* 32240 FROM t1 FULL JOIN t2 ON t2.x>0 32241 RIGHT JOIN t3 ON t3.y>0 32242 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 32243 WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c 32244 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32245} { 32246 6 106 206 306 106 6 206 6 - - 32247 12 112 212 312 112 12 212 12 - - 32248 18 118 218 318 118 18 218 18 - - 32249 24 124 224 324 124 24 224 24 - - 32250 30 130 230 330 130 30 230 30 330 30 32251 36 136 236 336 136 36 236 36 - - 32252 42 142 242 342 142 42 242 42 - - 32253 48 148 248 348 148 48 248 48 - - 32254 54 154 254 354 154 54 254 54 - - 32255 60 160 260 360 160 60 260 60 360 60 32256 66 166 266 366 166 66 266 66 - - 32257 72 172 272 372 172 72 272 72 - - 32258 78 178 278 378 178 78 278 78 - - 32259 84 184 284 384 184 84 284 84 - - 32260 90 190 290 390 190 90 290 90 390 90 32261} 32262do_execsql_test joinD-1103 { 32263 SELECT t1.*, t2.*, t3.*, t4.* 32264 FROM t1 FULL JOIN t2 ON t2.x>0 32265 RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0 32266 FULL JOIN t4 ON t4.z>0 32267 WHERE t1.b = t2.b AND t1.d = t4.d 32268 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32269} { 32270 30 130 230 330 130 30 230 30 330 30 32271 60 160 260 360 160 60 260 60 360 60 32272 90 190 290 390 190 90 290 90 390 90 32273} 32274do_execsql_test joinD-1104 { 32275 SELECT t1.*, t2.*, t3.*, t4.* 32276 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32277 RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0 32278 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 32279 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32280} { 32281 3 103 203 303 - - 203 3 - - 32282 6 106 206 306 106 6 206 6 - - 32283 9 109 209 309 - - 209 9 - - 32284 12 112 212 312 112 12 212 12 - - 32285 15 115 215 315 - - 215 15 315 15 32286 18 118 218 318 118 18 218 18 - - 32287 21 121 221 321 - - 221 21 - - 32288 24 124 224 324 124 24 224 24 - - 32289 27 127 227 327 - - 227 27 - - 32290 30 130 230 330 130 30 230 30 330 30 32291 33 133 233 333 - - 233 33 - - 32292 36 136 236 336 136 36 236 36 - - 32293 39 139 239 339 - - 239 39 - - 32294 42 142 242 342 142 42 242 42 - - 32295 45 145 245 345 - - 245 45 345 45 32296 48 148 248 348 148 48 248 48 - - 32297 51 151 251 351 - - 251 51 - - 32298 54 154 254 354 154 54 254 54 - - 32299 57 157 257 357 - - 257 57 - - 32300 60 160 260 360 160 60 260 60 360 60 32301 63 163 263 363 - - 263 63 - - 32302 66 166 266 366 166 66 266 66 - - 32303 69 169 269 369 - - 269 69 - - 32304 72 172 272 372 172 72 272 72 - - 32305 75 175 275 375 - - 275 75 375 75 32306 78 178 278 378 178 78 278 78 - - 32307 81 181 281 381 - - 281 81 - - 32308 84 184 284 384 184 84 284 84 - - 32309 87 187 287 387 - - 287 87 - - 32310 90 190 290 390 190 90 290 90 390 90 32311 93 193 293 393 - - 293 93 - - 32312 - - - - - - 200 0 - - 32313 - - - - - - - - 300 0 32314 - - - - - - - - 305 5 32315 - - - - - - - - 310 10 32316 - - - - - - - - 320 20 32317 - - - - - - - - 325 25 32318 - - - - - - - - 335 35 32319 - - - - - - - - 340 40 32320 - - - - - - - - 350 50 32321 - - - - - - - - 355 55 32322 - - - - - - - - 365 65 32323 - - - - - - - - 370 70 32324 - - - - - - - - 380 80 32325 - - - - - - - - 385 85 32326 - - - - - - - - 395 95 32327} 32328do_execsql_test joinD-1105 { 32329 SELECT t1.*, t2.*, t3.*, t4.* 32330 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32331 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32332 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 32333 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32334} { 32335 5 105 205 305 - - - - 305 5 32336 10 110 210 310 110 10 - - 310 10 32337 15 115 215 315 - - 215 15 315 15 32338 20 120 220 320 120 20 - - 320 20 32339 25 125 225 325 - - - - 325 25 32340 30 130 230 330 130 30 230 30 330 30 32341 35 135 235 335 - - - - 335 35 32342 40 140 240 340 140 40 - - 340 40 32343 45 145 245 345 - - 245 45 345 45 32344 50 150 250 350 150 50 - - 350 50 32345 55 155 255 355 - - - - 355 55 32346 60 160 260 360 160 60 260 60 360 60 32347 65 165 265 365 - - - - 365 65 32348 70 170 270 370 170 70 - - 370 70 32349 75 175 275 375 - - 275 75 375 75 32350 80 180 280 380 180 80 - - 380 80 32351 85 185 285 385 - - - - 385 85 32352 90 190 290 390 190 90 290 90 390 90 32353 95 195 295 395 - - - - 395 95 32354} 32355do_execsql_test joinD-1106 { 32356 SELECT t1.*, t2.*, t3.*, t4.* 32357 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32358 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32359 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 32360 WHERE t2.x>0 32361 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32362} { 32363 10 110 210 310 110 10 - - 310 10 32364 20 120 220 320 120 20 - - 320 20 32365 30 130 230 330 130 30 230 30 330 30 32366 40 140 240 340 140 40 - - 340 40 32367 50 150 250 350 150 50 - - 350 50 32368 60 160 260 360 160 60 260 60 360 60 32369 70 170 270 370 170 70 - - 370 70 32370 80 180 280 380 180 80 - - 380 80 32371 90 190 290 390 190 90 290 90 390 90 32372} 32373do_execsql_test joinD-1107 { 32374 SELECT t1.*, t2.*, t3.*, t4.* 32375 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32376 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32377 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 32378 WHERE (t2.x>0 OR t2.x IS NULL) 32379 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32380} { 32381 5 105 205 305 - - - - 305 5 32382 10 110 210 310 110 10 - - 310 10 32383 15 115 215 315 - - 215 15 315 15 32384 20 120 220 320 120 20 - - 320 20 32385 25 125 225 325 - - - - 325 25 32386 30 130 230 330 130 30 230 30 330 30 32387 35 135 235 335 - - - - 335 35 32388 40 140 240 340 140 40 - - 340 40 32389 45 145 245 345 - - 245 45 345 45 32390 50 150 250 350 150 50 - - 350 50 32391 55 155 255 355 - - - - 355 55 32392 60 160 260 360 160 60 260 60 360 60 32393 65 165 265 365 - - - - 365 65 32394 70 170 270 370 170 70 - - 370 70 32395 75 175 275 375 - - 275 75 375 75 32396 80 180 280 380 180 80 - - 380 80 32397 85 185 285 385 - - - - 385 85 32398 90 190 290 390 190 90 290 90 390 90 32399 95 195 295 395 - - - - 395 95 32400} 32401do_execsql_test joinD-1108 { 32402 SELECT t1.*, t2.*, t3.*, t4.* 32403 FROM t1 FULL JOIN t2 ON true 32404 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32405 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 32406 WHERE t1.b=t2.b AND t2.x>0 32407 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32408} { 32409 10 110 210 310 110 10 - - 310 10 32410 20 120 220 320 120 20 - - 320 20 32411 30 130 230 330 130 30 230 30 330 30 32412 40 140 240 340 140 40 - - 340 40 32413 50 150 250 350 150 50 - - 350 50 32414 60 160 260 360 160 60 260 60 360 60 32415 70 170 270 370 170 70 - - 370 70 32416 80 180 280 380 180 80 - - 380 80 32417 90 190 290 390 190 90 290 90 390 90 32418} 32419do_execsql_test joinD-1109 { 32420 SELECT t1.*, t2.*, t3.*, t4.* 32421 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32422 FULL JOIN t3 ON t1.c=t3.c 32423 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 32424 WHERE t3.y>0 32425 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32426} { 32427 15 115 215 315 - - 215 15 315 15 32428 30 130 230 330 130 30 230 30 330 30 32429 45 145 245 345 - - 245 45 345 45 32430 60 160 260 360 160 60 260 60 360 60 32431 75 175 275 375 - - 275 75 375 75 32432 90 190 290 390 190 90 290 90 390 90 32433} 32434do_execsql_test joinD-1110 { 32435 SELECT t1.*, t2.*, t3.*, t4.* 32436 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32437 FULL JOIN t3 ON t1.c=t3.c 32438 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 32439 WHERE t3.y>0 OR t3.y IS NULL 32440 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32441} { 32442 5 105 205 305 - - - - 305 5 32443 10 110 210 310 110 10 - - 310 10 32444 15 115 215 315 - - 215 15 315 15 32445 20 120 220 320 120 20 - - 320 20 32446 25 125 225 325 - - - - 325 25 32447 30 130 230 330 130 30 230 30 330 30 32448 35 135 235 335 - - - - 335 35 32449 40 140 240 340 140 40 - - 340 40 32450 45 145 245 345 - - 245 45 345 45 32451 50 150 250 350 150 50 - - 350 50 32452 55 155 255 355 - - - - 355 55 32453 60 160 260 360 160 60 260 60 360 60 32454 65 165 265 365 - - - - 365 65 32455 70 170 270 370 170 70 - - 370 70 32456 75 175 275 375 - - 275 75 375 75 32457 80 180 280 380 180 80 - - 380 80 32458 85 185 285 385 - - - - 385 85 32459 90 190 290 390 190 90 290 90 390 90 32460 95 195 295 395 - - - - 395 95 32461} 32462do_execsql_test joinD-1111 { 32463 SELECT t1.*, t2.*, t3.*, t4.* 32464 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32465 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32466 INNER JOIN t4 ON t1.d=t4.d 32467 WHERE t4.z>0 32468 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32469} { 32470 5 105 205 305 - - - - 305 5 32471 10 110 210 310 110 10 - - 310 10 32472 15 115 215 315 - - 215 15 315 15 32473 20 120 220 320 120 20 - - 320 20 32474 25 125 225 325 - - - - 325 25 32475 30 130 230 330 130 30 230 30 330 30 32476 35 135 235 335 - - - - 335 35 32477 40 140 240 340 140 40 - - 340 40 32478 45 145 245 345 - - 245 45 345 45 32479 50 150 250 350 150 50 - - 350 50 32480 55 155 255 355 - - - - 355 55 32481 60 160 260 360 160 60 260 60 360 60 32482 65 165 265 365 - - - - 365 65 32483 70 170 270 370 170 70 - - 370 70 32484 75 175 275 375 - - 275 75 375 75 32485 80 180 280 380 180 80 - - 380 80 32486 85 185 285 385 - - - - 385 85 32487 90 190 290 390 190 90 290 90 390 90 32488 95 195 295 395 - - - - 395 95 32489} 32490do_execsql_test joinD-1112 { 32491 SELECT t1.*, t2.*, t3.*, t4.* 32492 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32493 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32494 INNER JOIN t4 ON t1.d=t4.d 32495 WHERE t4.z IS NULL OR t4.z>0 32496 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32497} { 32498 5 105 205 305 - - - - 305 5 32499 10 110 210 310 110 10 - - 310 10 32500 15 115 215 315 - - 215 15 315 15 32501 20 120 220 320 120 20 - - 320 20 32502 25 125 225 325 - - - - 325 25 32503 30 130 230 330 130 30 230 30 330 30 32504 35 135 235 335 - - - - 335 35 32505 40 140 240 340 140 40 - - 340 40 32506 45 145 245 345 - - 245 45 345 45 32507 50 150 250 350 150 50 - - 350 50 32508 55 155 255 355 - - - - 355 55 32509 60 160 260 360 160 60 260 60 360 60 32510 65 165 265 365 - - - - 365 65 32511 70 170 270 370 170 70 - - 370 70 32512 75 175 275 375 - - 275 75 375 75 32513 80 180 280 380 180 80 - - 380 80 32514 85 185 285 385 - - - - 385 85 32515 90 190 290 390 190 90 290 90 390 90 32516 95 195 295 395 - - - - 395 95 32517} 32518do_execsql_test joinD-1113 { 32519 SELECT t1.*, t2.*, t3.*, t4.* 32520 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32521 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32522 INNER JOIN t4 ON t1.d=t4.d 32523 WHERE t2.x>0 AND t4.z>0 32524 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32525} { 32526 10 110 210 310 110 10 - - 310 10 32527 20 120 220 320 120 20 - - 320 20 32528 30 130 230 330 130 30 230 30 330 30 32529 40 140 240 340 140 40 - - 340 40 32530 50 150 250 350 150 50 - - 350 50 32531 60 160 260 360 160 60 260 60 360 60 32532 70 170 270 370 170 70 - - 370 70 32533 80 180 280 380 180 80 - - 380 80 32534 90 190 290 390 190 90 290 90 390 90 32535} 32536do_execsql_test joinD-1114 { 32537 SELECT t1.*, t2.*, t3.*, t4.* 32538 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32539 FULL JOIN t3 ON t1.c=t3.c 32540 INNER JOIN t4 ON t1.d=t4.d 32541 WHERE t4.z>0 AND t3.y>0 32542 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32543} { 32544 15 115 215 315 - - 215 15 315 15 32545 30 130 230 330 130 30 230 30 330 30 32546 45 145 245 345 - - 245 45 345 45 32547 60 160 260 360 160 60 260 60 360 60 32548 75 175 275 375 - - 275 75 375 75 32549 90 190 290 390 190 90 290 90 390 90 32550} 32551do_execsql_test joinD-1115 { 32552 SELECT t1.*, t2.*, t3.*, t4.* 32553 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32554 FULL JOIN t3 ON t1.c=t3.c 32555 INNER JOIN t4 ON t1.d=t4.d AND t4.z>0 32556 WHERE t2.x>0 AND t3.y>0 32557 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32558} { 32559 30 130 230 330 130 30 230 30 330 30 32560 60 160 260 360 160 60 260 60 360 60 32561 90 190 290 390 190 90 290 90 390 90 32562} 32563do_execsql_test joinD-1116 { 32564 SELECT t1.*, t2.*, t3.*, t4.* 32565 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32566 FULL JOIN t3 ON t1.c=t3.c 32567 INNER JOIN t4 ON t1.d=t4.d 32568 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 32569 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32570} { 32571 30 130 230 330 130 30 230 30 330 30 32572 60 160 260 360 160 60 260 60 360 60 32573 90 190 290 390 190 90 290 90 390 90 32574} 32575do_execsql_test joinD-1117 { 32576 SELECT t1.*, t2.*, t3.*, t4.* 32577 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 32578 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 32579 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 32580 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32581} { 32582 5 105 205 305 - - - - 305 5 32583 10 110 210 310 110 10 - - 310 10 32584 15 115 215 315 - - 215 15 315 15 32585 20 120 220 320 120 20 - - 320 20 32586 25 125 225 325 - - - - 325 25 32587 30 130 230 330 130 30 230 30 330 30 32588 35 135 235 335 - - - - 335 35 32589 40 140 240 340 140 40 - - 340 40 32590 45 145 245 345 - - 245 45 345 45 32591 50 150 250 350 150 50 - - 350 50 32592 55 155 255 355 - - - - 355 55 32593 60 160 260 360 160 60 260 60 360 60 32594 65 165 265 365 - - - - 365 65 32595 70 170 270 370 170 70 - - 370 70 32596 75 175 275 375 - - 275 75 375 75 32597 80 180 280 380 180 80 - - 380 80 32598 85 185 285 385 - - - - 385 85 32599 90 190 290 390 190 90 290 90 390 90 32600 95 195 295 395 - - - - 395 95 32601} 32602do_execsql_test joinD-1118 { 32603 SELECT t1.*, t2.*, t3.*, t4.* 32604 FROM t1 FULL JOIN t2 ON t2.x>0 32605 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 32606 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 32607 WHERE t1.b = t2.b 32608 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32609} { 32610 10 110 210 310 110 10 - - 310 10 32611 20 120 220 320 120 20 - - 320 20 32612 30 130 230 330 130 30 230 30 330 30 32613 40 140 240 340 140 40 - - 340 40 32614 50 150 250 350 150 50 - - 350 50 32615 60 160 260 360 160 60 260 60 360 60 32616 70 170 270 370 170 70 - - 370 70 32617 80 180 280 380 180 80 - - 380 80 32618 90 190 290 390 190 90 290 90 390 90 32619} 32620do_execsql_test joinD-1119 { 32621 SELECT t1.*, t2.*, t3.*, t4.* 32622 FROM t1 FULL JOIN t2 ON t2.x>0 32623 FULL JOIN t3 ON t3.y>0 32624 INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 32625 WHERE t1.b = t2.b AND t1.c = t3.c 32626 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32627} { 32628 30 130 230 330 130 30 230 30 330 30 32629 60 160 260 360 160 60 260 60 360 60 32630 90 190 290 390 190 90 290 90 390 90 32631} 32632do_execsql_test joinD-1120 { 32633 SELECT t1.*, t2.*, t3.*, t4.* 32634 FROM t1 FULL JOIN t2 ON t2.x>0 32635 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 32636 INNER JOIN t4 ON t4.z>0 32637 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 32638 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32639} { 32640 10 110 210 310 110 10 - - 310 10 32641 20 120 220 320 120 20 - - 320 20 32642 30 130 230 330 130 30 230 30 330 30 32643 40 140 240 340 140 40 - - 340 40 32644 50 150 250 350 150 50 - - 350 50 32645 60 160 260 360 160 60 260 60 360 60 32646 70 170 270 370 170 70 - - 370 70 32647 80 180 280 380 180 80 - - 380 80 32648 90 190 290 390 190 90 290 90 390 90 32649} 32650do_execsql_test joinD-1121 { 32651 SELECT t1.*, t2.*, t3.*, t4.* 32652 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32653 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32654 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 32655 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32656} { 32657 0 100 200 300 - - - - - - 32658 1 101 201 301 - - - - - - 32659 2 102 202 302 102 2 - - - - 32660 3 103 203 303 - - 203 3 - - 32661 4 104 204 304 104 4 - - - - 32662 5 105 205 305 - - - - 305 5 32663 6 106 206 306 106 6 206 6 - - 32664 7 107 207 307 - - - - - - 32665 8 108 208 308 108 8 - - - - 32666 9 109 209 309 - - 209 9 - - 32667 10 110 210 310 110 10 - - 310 10 32668 11 111 211 311 - - - - - - 32669 12 112 212 312 112 12 212 12 - - 32670 13 113 213 313 - - - - - - 32671 14 114 214 314 114 14 - - - - 32672 15 115 215 315 - - 215 15 315 15 32673 16 116 216 316 116 16 - - - - 32674 17 117 217 317 - - - - - - 32675 18 118 218 318 118 18 218 18 - - 32676 19 119 219 319 - - - - - - 32677 20 120 220 320 120 20 - - 320 20 32678 21 121 221 321 - - 221 21 - - 32679 22 122 222 322 122 22 - - - - 32680 23 123 223 323 - - - - - - 32681 24 124 224 324 124 24 224 24 - - 32682 25 125 225 325 - - - - 325 25 32683 26 126 226 326 126 26 - - - - 32684 27 127 227 327 - - 227 27 - - 32685 28 128 228 328 128 28 - - - - 32686 29 129 229 329 - - - - - - 32687 30 130 230 330 130 30 230 30 330 30 32688 31 131 231 331 - - - - - - 32689 32 132 232 332 132 32 - - - - 32690 33 133 233 333 - - 233 33 - - 32691 34 134 234 334 134 34 - - - - 32692 35 135 235 335 - - - - 335 35 32693 36 136 236 336 136 36 236 36 - - 32694 37 137 237 337 - - - - - - 32695 38 138 238 338 138 38 - - - - 32696 39 139 239 339 - - 239 39 - - 32697 40 140 240 340 140 40 - - 340 40 32698 41 141 241 341 - - - - - - 32699 42 142 242 342 142 42 242 42 - - 32700 43 143 243 343 - - - - - - 32701 44 144 244 344 144 44 - - - - 32702 45 145 245 345 - - 245 45 345 45 32703 46 146 246 346 146 46 - - - - 32704 47 147 247 347 - - - - - - 32705 48 148 248 348 148 48 248 48 - - 32706 49 149 249 349 - - - - - - 32707 50 150 250 350 150 50 - - 350 50 32708 51 151 251 351 - - 251 51 - - 32709 52 152 252 352 152 52 - - - - 32710 53 153 253 353 - - - - - - 32711 54 154 254 354 154 54 254 54 - - 32712 55 155 255 355 - - - - 355 55 32713 56 156 256 356 156 56 - - - - 32714 57 157 257 357 - - 257 57 - - 32715 58 158 258 358 158 58 - - - - 32716 59 159 259 359 - - - - - - 32717 60 160 260 360 160 60 260 60 360 60 32718 61 161 261 361 - - - - - - 32719 62 162 262 362 162 62 - - - - 32720 63 163 263 363 - - 263 63 - - 32721 64 164 264 364 164 64 - - - - 32722 65 165 265 365 - - - - 365 65 32723 66 166 266 366 166 66 266 66 - - 32724 67 167 267 367 - - - - - - 32725 68 168 268 368 168 68 - - - - 32726 69 169 269 369 - - 269 69 - - 32727 70 170 270 370 170 70 - - 370 70 32728 71 171 271 371 - - - - - - 32729 72 172 272 372 172 72 272 72 - - 32730 73 173 273 373 - - - - - - 32731 74 174 274 374 174 74 - - - - 32732 75 175 275 375 - - 275 75 375 75 32733 76 176 276 376 176 76 - - - - 32734 77 177 277 377 - - - - - - 32735 78 178 278 378 178 78 278 78 - - 32736 79 179 279 379 - - - - - - 32737 80 180 280 380 180 80 - - 380 80 32738 81 181 281 381 - - 281 81 - - 32739 82 182 282 382 182 82 - - - - 32740 83 183 283 383 - - - - - - 32741 84 184 284 384 184 84 284 84 - - 32742 85 185 285 385 - - - - 385 85 32743 86 186 286 386 186 86 - - - - 32744 87 187 287 387 - - 287 87 - - 32745 88 188 288 388 188 88 - - - - 32746 89 189 289 389 - - - - - - 32747 90 190 290 390 190 90 290 90 390 90 32748 91 191 291 391 - - - - - - 32749 92 192 292 392 192 92 - - - - 32750 93 193 293 393 - - 293 93 - - 32751 94 194 294 394 194 94 - - - - 32752 95 195 295 395 - - - - 395 95 32753 96 - 296 396 - - - - - - 32754 97 197 - 397 - - - - - - 32755 98 198 298 - - - - - - - 32756 99 - - - - - - - - - 32757 - - - - 100 0 - - - - 32758 - - - - - - 200 0 - - 32759} 32760do_execsql_test joinD-1122 { 32761 SELECT t1.*, t2.*, t3.*, t4.* 32762 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32763 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32764 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 32765 WHERE t2.x>0 32766 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32767} { 32768 2 102 202 302 102 2 - - - - 32769 4 104 204 304 104 4 - - - - 32770 6 106 206 306 106 6 206 6 - - 32771 8 108 208 308 108 8 - - - - 32772 10 110 210 310 110 10 - - 310 10 32773 12 112 212 312 112 12 212 12 - - 32774 14 114 214 314 114 14 - - - - 32775 16 116 216 316 116 16 - - - - 32776 18 118 218 318 118 18 218 18 - - 32777 20 120 220 320 120 20 - - 320 20 32778 22 122 222 322 122 22 - - - - 32779 24 124 224 324 124 24 224 24 - - 32780 26 126 226 326 126 26 - - - - 32781 28 128 228 328 128 28 - - - - 32782 30 130 230 330 130 30 230 30 330 30 32783 32 132 232 332 132 32 - - - - 32784 34 134 234 334 134 34 - - - - 32785 36 136 236 336 136 36 236 36 - - 32786 38 138 238 338 138 38 - - - - 32787 40 140 240 340 140 40 - - 340 40 32788 42 142 242 342 142 42 242 42 - - 32789 44 144 244 344 144 44 - - - - 32790 46 146 246 346 146 46 - - - - 32791 48 148 248 348 148 48 248 48 - - 32792 50 150 250 350 150 50 - - 350 50 32793 52 152 252 352 152 52 - - - - 32794 54 154 254 354 154 54 254 54 - - 32795 56 156 256 356 156 56 - - - - 32796 58 158 258 358 158 58 - - - - 32797 60 160 260 360 160 60 260 60 360 60 32798 62 162 262 362 162 62 - - - - 32799 64 164 264 364 164 64 - - - - 32800 66 166 266 366 166 66 266 66 - - 32801 68 168 268 368 168 68 - - - - 32802 70 170 270 370 170 70 - - 370 70 32803 72 172 272 372 172 72 272 72 - - 32804 74 174 274 374 174 74 - - - - 32805 76 176 276 376 176 76 - - - - 32806 78 178 278 378 178 78 278 78 - - 32807 80 180 280 380 180 80 - - 380 80 32808 82 182 282 382 182 82 - - - - 32809 84 184 284 384 184 84 284 84 - - 32810 86 186 286 386 186 86 - - - - 32811 88 188 288 388 188 88 - - - - 32812 90 190 290 390 190 90 290 90 390 90 32813 92 192 292 392 192 92 - - - - 32814 94 194 294 394 194 94 - - - - 32815} 32816do_execsql_test joinD-1123 { 32817 SELECT t1.*, t2.*, t3.*, t4.* 32818 FROM t1 FULL JOIN t2 ON t1.b=t2.b 32819 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32820 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 32821 WHERE (t2.x>0 OR t2.x IS NULL) 32822 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32823} { 32824 1 101 201 301 - - - - - - 32825 2 102 202 302 102 2 - - - - 32826 3 103 203 303 - - 203 3 - - 32827 4 104 204 304 104 4 - - - - 32828 5 105 205 305 - - - - 305 5 32829 6 106 206 306 106 6 206 6 - - 32830 7 107 207 307 - - - - - - 32831 8 108 208 308 108 8 - - - - 32832 9 109 209 309 - - 209 9 - - 32833 10 110 210 310 110 10 - - 310 10 32834 11 111 211 311 - - - - - - 32835 12 112 212 312 112 12 212 12 - - 32836 13 113 213 313 - - - - - - 32837 14 114 214 314 114 14 - - - - 32838 15 115 215 315 - - 215 15 315 15 32839 16 116 216 316 116 16 - - - - 32840 17 117 217 317 - - - - - - 32841 18 118 218 318 118 18 218 18 - - 32842 19 119 219 319 - - - - - - 32843 20 120 220 320 120 20 - - 320 20 32844 21 121 221 321 - - 221 21 - - 32845 22 122 222 322 122 22 - - - - 32846 23 123 223 323 - - - - - - 32847 24 124 224 324 124 24 224 24 - - 32848 25 125 225 325 - - - - 325 25 32849 26 126 226 326 126 26 - - - - 32850 27 127 227 327 - - 227 27 - - 32851 28 128 228 328 128 28 - - - - 32852 29 129 229 329 - - - - - - 32853 30 130 230 330 130 30 230 30 330 30 32854 31 131 231 331 - - - - - - 32855 32 132 232 332 132 32 - - - - 32856 33 133 233 333 - - 233 33 - - 32857 34 134 234 334 134 34 - - - - 32858 35 135 235 335 - - - - 335 35 32859 36 136 236 336 136 36 236 36 - - 32860 37 137 237 337 - - - - - - 32861 38 138 238 338 138 38 - - - - 32862 39 139 239 339 - - 239 39 - - 32863 40 140 240 340 140 40 - - 340 40 32864 41 141 241 341 - - - - - - 32865 42 142 242 342 142 42 242 42 - - 32866 43 143 243 343 - - - - - - 32867 44 144 244 344 144 44 - - - - 32868 45 145 245 345 - - 245 45 345 45 32869 46 146 246 346 146 46 - - - - 32870 47 147 247 347 - - - - - - 32871 48 148 248 348 148 48 248 48 - - 32872 49 149 249 349 - - - - - - 32873 50 150 250 350 150 50 - - 350 50 32874 51 151 251 351 - - 251 51 - - 32875 52 152 252 352 152 52 - - - - 32876 53 153 253 353 - - - - - - 32877 54 154 254 354 154 54 254 54 - - 32878 55 155 255 355 - - - - 355 55 32879 56 156 256 356 156 56 - - - - 32880 57 157 257 357 - - 257 57 - - 32881 58 158 258 358 158 58 - - - - 32882 59 159 259 359 - - - - - - 32883 60 160 260 360 160 60 260 60 360 60 32884 61 161 261 361 - - - - - - 32885 62 162 262 362 162 62 - - - - 32886 63 163 263 363 - - 263 63 - - 32887 64 164 264 364 164 64 - - - - 32888 65 165 265 365 - - - - 365 65 32889 66 166 266 366 166 66 266 66 - - 32890 67 167 267 367 - - - - - - 32891 68 168 268 368 168 68 - - - - 32892 69 169 269 369 - - 269 69 - - 32893 70 170 270 370 170 70 - - 370 70 32894 71 171 271 371 - - - - - - 32895 72 172 272 372 172 72 272 72 - - 32896 73 173 273 373 - - - - - - 32897 74 174 274 374 174 74 - - - - 32898 75 175 275 375 - - 275 75 375 75 32899 76 176 276 376 176 76 - - - - 32900 77 177 277 377 - - - - - - 32901 78 178 278 378 178 78 278 78 - - 32902 79 179 279 379 - - - - - - 32903 80 180 280 380 180 80 - - 380 80 32904 81 181 281 381 - - 281 81 - - 32905 82 182 282 382 182 82 - - - - 32906 83 183 283 383 - - - - - - 32907 84 184 284 384 184 84 284 84 - - 32908 85 185 285 385 - - - - 385 85 32909 86 186 286 386 186 86 - - - - 32910 87 187 287 387 - - 287 87 - - 32911 88 188 288 388 188 88 - - - - 32912 89 189 289 389 - - - - - - 32913 90 190 290 390 190 90 290 90 390 90 32914 91 191 291 391 - - - - - - 32915 92 192 292 392 192 92 - - - - 32916 93 193 293 393 - - 293 93 - - 32917 94 194 294 394 194 94 - - - - 32918 95 195 295 395 - - - - 395 95 32919 96 - 296 396 - - - - - - 32920 97 197 - 397 - - - - - - 32921 98 198 298 - - - - - - - 32922 99 - - - - - - - - - 32923 - - - - - - 200 0 - - 32924} 32925do_execsql_test joinD-1124 { 32926 SELECT t1.*, t2.*, t3.*, t4.* 32927 FROM t1 FULL JOIN t2 ON true 32928 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 32929 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 32930 WHERE t1.b=t2.b AND t2.x>0 32931 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32932} { 32933 2 102 202 302 102 2 - - - - 32934 4 104 204 304 104 4 - - - - 32935 6 106 206 306 106 6 206 6 - - 32936 8 108 208 308 108 8 - - - - 32937 10 110 210 310 110 10 - - 310 10 32938 12 112 212 312 112 12 212 12 - - 32939 14 114 214 314 114 14 - - - - 32940 16 116 216 316 116 16 - - - - 32941 18 118 218 318 118 18 218 18 - - 32942 20 120 220 320 120 20 - - 320 20 32943 22 122 222 322 122 22 - - - - 32944 24 124 224 324 124 24 224 24 - - 32945 26 126 226 326 126 26 - - - - 32946 28 128 228 328 128 28 - - - - 32947 30 130 230 330 130 30 230 30 330 30 32948 32 132 232 332 132 32 - - - - 32949 34 134 234 334 134 34 - - - - 32950 36 136 236 336 136 36 236 36 - - 32951 38 138 238 338 138 38 - - - - 32952 40 140 240 340 140 40 - - 340 40 32953 42 142 242 342 142 42 242 42 - - 32954 44 144 244 344 144 44 - - - - 32955 46 146 246 346 146 46 - - - - 32956 48 148 248 348 148 48 248 48 - - 32957 50 150 250 350 150 50 - - 350 50 32958 52 152 252 352 152 52 - - - - 32959 54 154 254 354 154 54 254 54 - - 32960 56 156 256 356 156 56 - - - - 32961 58 158 258 358 158 58 - - - - 32962 60 160 260 360 160 60 260 60 360 60 32963 62 162 262 362 162 62 - - - - 32964 64 164 264 364 164 64 - - - - 32965 66 166 266 366 166 66 266 66 - - 32966 68 168 268 368 168 68 - - - - 32967 70 170 270 370 170 70 - - 370 70 32968 72 172 272 372 172 72 272 72 - - 32969 74 174 274 374 174 74 - - - - 32970 76 176 276 376 176 76 - - - - 32971 78 178 278 378 178 78 278 78 - - 32972 80 180 280 380 180 80 - - 380 80 32973 82 182 282 382 182 82 - - - - 32974 84 184 284 384 184 84 284 84 - - 32975 86 186 286 386 186 86 - - - - 32976 88 188 288 388 188 88 - - - - 32977 90 190 290 390 190 90 290 90 390 90 32978 92 192 292 392 192 92 - - - - 32979 94 194 294 394 194 94 - - - - 32980} 32981do_execsql_test joinD-1125 { 32982 SELECT t1.*, t2.*, t3.*, t4.* 32983 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 32984 FULL JOIN t3 ON t1.c=t3.c 32985 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 32986 WHERE t3.y>0 32987 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 32988} { 32989 3 103 203 303 - - 203 3 - - 32990 6 106 206 306 106 6 206 6 - - 32991 9 109 209 309 - - 209 9 - - 32992 12 112 212 312 112 12 212 12 - - 32993 15 115 215 315 - - 215 15 315 15 32994 18 118 218 318 118 18 218 18 - - 32995 21 121 221 321 - - 221 21 - - 32996 24 124 224 324 124 24 224 24 - - 32997 27 127 227 327 - - 227 27 - - 32998 30 130 230 330 130 30 230 30 330 30 32999 33 133 233 333 - - 233 33 - - 33000 36 136 236 336 136 36 236 36 - - 33001 39 139 239 339 - - 239 39 - - 33002 42 142 242 342 142 42 242 42 - - 33003 45 145 245 345 - - 245 45 345 45 33004 48 148 248 348 148 48 248 48 - - 33005 51 151 251 351 - - 251 51 - - 33006 54 154 254 354 154 54 254 54 - - 33007 57 157 257 357 - - 257 57 - - 33008 60 160 260 360 160 60 260 60 360 60 33009 63 163 263 363 - - 263 63 - - 33010 66 166 266 366 166 66 266 66 - - 33011 69 169 269 369 - - 269 69 - - 33012 72 172 272 372 172 72 272 72 - - 33013 75 175 275 375 - - 275 75 375 75 33014 78 178 278 378 178 78 278 78 - - 33015 81 181 281 381 - - 281 81 - - 33016 84 184 284 384 184 84 284 84 - - 33017 87 187 287 387 - - 287 87 - - 33018 90 190 290 390 190 90 290 90 390 90 33019 93 193 293 393 - - 293 93 - - 33020} 33021do_execsql_test joinD-1126 { 33022 SELECT t1.*, t2.*, t3.*, t4.* 33023 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33024 FULL JOIN t3 ON t1.c=t3.c 33025 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 33026 WHERE t3.y>0 OR t3.y IS NULL 33027 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33028} { 33029 1 101 201 301 - - - - - - 33030 2 102 202 302 102 2 - - - - 33031 3 103 203 303 - - 203 3 - - 33032 4 104 204 304 104 4 - - - - 33033 5 105 205 305 - - - - 305 5 33034 6 106 206 306 106 6 206 6 - - 33035 7 107 207 307 - - - - - - 33036 8 108 208 308 108 8 - - - - 33037 9 109 209 309 - - 209 9 - - 33038 10 110 210 310 110 10 - - 310 10 33039 11 111 211 311 - - - - - - 33040 12 112 212 312 112 12 212 12 - - 33041 13 113 213 313 - - - - - - 33042 14 114 214 314 114 14 - - - - 33043 15 115 215 315 - - 215 15 315 15 33044 16 116 216 316 116 16 - - - - 33045 17 117 217 317 - - - - - - 33046 18 118 218 318 118 18 218 18 - - 33047 19 119 219 319 - - - - - - 33048 20 120 220 320 120 20 - - 320 20 33049 21 121 221 321 - - 221 21 - - 33050 22 122 222 322 122 22 - - - - 33051 23 123 223 323 - - - - - - 33052 24 124 224 324 124 24 224 24 - - 33053 25 125 225 325 - - - - 325 25 33054 26 126 226 326 126 26 - - - - 33055 27 127 227 327 - - 227 27 - - 33056 28 128 228 328 128 28 - - - - 33057 29 129 229 329 - - - - - - 33058 30 130 230 330 130 30 230 30 330 30 33059 31 131 231 331 - - - - - - 33060 32 132 232 332 132 32 - - - - 33061 33 133 233 333 - - 233 33 - - 33062 34 134 234 334 134 34 - - - - 33063 35 135 235 335 - - - - 335 35 33064 36 136 236 336 136 36 236 36 - - 33065 37 137 237 337 - - - - - - 33066 38 138 238 338 138 38 - - - - 33067 39 139 239 339 - - 239 39 - - 33068 40 140 240 340 140 40 - - 340 40 33069 41 141 241 341 - - - - - - 33070 42 142 242 342 142 42 242 42 - - 33071 43 143 243 343 - - - - - - 33072 44 144 244 344 144 44 - - - - 33073 45 145 245 345 - - 245 45 345 45 33074 46 146 246 346 146 46 - - - - 33075 47 147 247 347 - - - - - - 33076 48 148 248 348 148 48 248 48 - - 33077 49 149 249 349 - - - - - - 33078 50 150 250 350 150 50 - - 350 50 33079 51 151 251 351 - - 251 51 - - 33080 52 152 252 352 152 52 - - - - 33081 53 153 253 353 - - - - - - 33082 54 154 254 354 154 54 254 54 - - 33083 55 155 255 355 - - - - 355 55 33084 56 156 256 356 156 56 - - - - 33085 57 157 257 357 - - 257 57 - - 33086 58 158 258 358 158 58 - - - - 33087 59 159 259 359 - - - - - - 33088 60 160 260 360 160 60 260 60 360 60 33089 61 161 261 361 - - - - - - 33090 62 162 262 362 162 62 - - - - 33091 63 163 263 363 - - 263 63 - - 33092 64 164 264 364 164 64 - - - - 33093 65 165 265 365 - - - - 365 65 33094 66 166 266 366 166 66 266 66 - - 33095 67 167 267 367 - - - - - - 33096 68 168 268 368 168 68 - - - - 33097 69 169 269 369 - - 269 69 - - 33098 70 170 270 370 170 70 - - 370 70 33099 71 171 271 371 - - - - - - 33100 72 172 272 372 172 72 272 72 - - 33101 73 173 273 373 - - - - - - 33102 74 174 274 374 174 74 - - - - 33103 75 175 275 375 - - 275 75 375 75 33104 76 176 276 376 176 76 - - - - 33105 77 177 277 377 - - - - - - 33106 78 178 278 378 178 78 278 78 - - 33107 79 179 279 379 - - - - - - 33108 80 180 280 380 180 80 - - 380 80 33109 81 181 281 381 - - 281 81 - - 33110 82 182 282 382 182 82 - - - - 33111 83 183 283 383 - - - - - - 33112 84 184 284 384 184 84 284 84 - - 33113 85 185 285 385 - - - - 385 85 33114 86 186 286 386 186 86 - - - - 33115 87 187 287 387 - - 287 87 - - 33116 88 188 288 388 188 88 - - - - 33117 89 189 289 389 - - - - - - 33118 90 190 290 390 190 90 290 90 390 90 33119 91 191 291 391 - - - - - - 33120 92 192 292 392 192 92 - - - - 33121 93 193 293 393 - - 293 93 - - 33122 94 194 294 394 194 94 - - - - 33123 95 195 295 395 - - - - 395 95 33124 96 - 296 396 - - - - - - 33125 97 197 - 397 - - - - - - 33126 98 198 298 - - - - - - - 33127 99 - - - - - - - - - 33128 - - - - 100 0 - - - - 33129} 33130do_execsql_test joinD-1127 { 33131 SELECT t1.*, t2.*, t3.*, t4.* 33132 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33133 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33134 LEFT JOIN t4 ON t1.d=t4.d 33135 WHERE t4.z>0 33136 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33137} { 33138 5 105 205 305 - - - - 305 5 33139 10 110 210 310 110 10 - - 310 10 33140 15 115 215 315 - - 215 15 315 15 33141 20 120 220 320 120 20 - - 320 20 33142 25 125 225 325 - - - - 325 25 33143 30 130 230 330 130 30 230 30 330 30 33144 35 135 235 335 - - - - 335 35 33145 40 140 240 340 140 40 - - 340 40 33146 45 145 245 345 - - 245 45 345 45 33147 50 150 250 350 150 50 - - 350 50 33148 55 155 255 355 - - - - 355 55 33149 60 160 260 360 160 60 260 60 360 60 33150 65 165 265 365 - - - - 365 65 33151 70 170 270 370 170 70 - - 370 70 33152 75 175 275 375 - - 275 75 375 75 33153 80 180 280 380 180 80 - - 380 80 33154 85 185 285 385 - - - - 385 85 33155 90 190 290 390 190 90 290 90 390 90 33156 95 195 295 395 - - - - 395 95 33157} 33158do_execsql_test joinD-1128 { 33159 SELECT t1.*, t2.*, t3.*, t4.* 33160 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33161 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33162 LEFT JOIN t4 ON t1.d=t4.d 33163 WHERE t4.z IS NULL OR t4.z>0 33164 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33165} { 33166 1 101 201 301 - - - - - - 33167 2 102 202 302 102 2 - - - - 33168 3 103 203 303 - - 203 3 - - 33169 4 104 204 304 104 4 - - - - 33170 5 105 205 305 - - - - 305 5 33171 6 106 206 306 106 6 206 6 - - 33172 7 107 207 307 - - - - - - 33173 8 108 208 308 108 8 - - - - 33174 9 109 209 309 - - 209 9 - - 33175 10 110 210 310 110 10 - - 310 10 33176 11 111 211 311 - - - - - - 33177 12 112 212 312 112 12 212 12 - - 33178 13 113 213 313 - - - - - - 33179 14 114 214 314 114 14 - - - - 33180 15 115 215 315 - - 215 15 315 15 33181 16 116 216 316 116 16 - - - - 33182 17 117 217 317 - - - - - - 33183 18 118 218 318 118 18 218 18 - - 33184 19 119 219 319 - - - - - - 33185 20 120 220 320 120 20 - - 320 20 33186 21 121 221 321 - - 221 21 - - 33187 22 122 222 322 122 22 - - - - 33188 23 123 223 323 - - - - - - 33189 24 124 224 324 124 24 224 24 - - 33190 25 125 225 325 - - - - 325 25 33191 26 126 226 326 126 26 - - - - 33192 27 127 227 327 - - 227 27 - - 33193 28 128 228 328 128 28 - - - - 33194 29 129 229 329 - - - - - - 33195 30 130 230 330 130 30 230 30 330 30 33196 31 131 231 331 - - - - - - 33197 32 132 232 332 132 32 - - - - 33198 33 133 233 333 - - 233 33 - - 33199 34 134 234 334 134 34 - - - - 33200 35 135 235 335 - - - - 335 35 33201 36 136 236 336 136 36 236 36 - - 33202 37 137 237 337 - - - - - - 33203 38 138 238 338 138 38 - - - - 33204 39 139 239 339 - - 239 39 - - 33205 40 140 240 340 140 40 - - 340 40 33206 41 141 241 341 - - - - - - 33207 42 142 242 342 142 42 242 42 - - 33208 43 143 243 343 - - - - - - 33209 44 144 244 344 144 44 - - - - 33210 45 145 245 345 - - 245 45 345 45 33211 46 146 246 346 146 46 - - - - 33212 47 147 247 347 - - - - - - 33213 48 148 248 348 148 48 248 48 - - 33214 49 149 249 349 - - - - - - 33215 50 150 250 350 150 50 - - 350 50 33216 51 151 251 351 - - 251 51 - - 33217 52 152 252 352 152 52 - - - - 33218 53 153 253 353 - - - - - - 33219 54 154 254 354 154 54 254 54 - - 33220 55 155 255 355 - - - - 355 55 33221 56 156 256 356 156 56 - - - - 33222 57 157 257 357 - - 257 57 - - 33223 58 158 258 358 158 58 - - - - 33224 59 159 259 359 - - - - - - 33225 60 160 260 360 160 60 260 60 360 60 33226 61 161 261 361 - - - - - - 33227 62 162 262 362 162 62 - - - - 33228 63 163 263 363 - - 263 63 - - 33229 64 164 264 364 164 64 - - - - 33230 65 165 265 365 - - - - 365 65 33231 66 166 266 366 166 66 266 66 - - 33232 67 167 267 367 - - - - - - 33233 68 168 268 368 168 68 - - - - 33234 69 169 269 369 - - 269 69 - - 33235 70 170 270 370 170 70 - - 370 70 33236 71 171 271 371 - - - - - - 33237 72 172 272 372 172 72 272 72 - - 33238 73 173 273 373 - - - - - - 33239 74 174 274 374 174 74 - - - - 33240 75 175 275 375 - - 275 75 375 75 33241 76 176 276 376 176 76 - - - - 33242 77 177 277 377 - - - - - - 33243 78 178 278 378 178 78 278 78 - - 33244 79 179 279 379 - - - - - - 33245 80 180 280 380 180 80 - - 380 80 33246 81 181 281 381 - - 281 81 - - 33247 82 182 282 382 182 82 - - - - 33248 83 183 283 383 - - - - - - 33249 84 184 284 384 184 84 284 84 - - 33250 85 185 285 385 - - - - 385 85 33251 86 186 286 386 186 86 - - - - 33252 87 187 287 387 - - 287 87 - - 33253 88 188 288 388 188 88 - - - - 33254 89 189 289 389 - - - - - - 33255 90 190 290 390 190 90 290 90 390 90 33256 91 191 291 391 - - - - - - 33257 92 192 292 392 192 92 - - - - 33258 93 193 293 393 - - 293 93 - - 33259 94 194 294 394 194 94 - - - - 33260 95 195 295 395 - - - - 395 95 33261 96 - 296 396 - - - - - - 33262 97 197 - 397 - - - - - - 33263 98 198 298 - - - - - - - 33264 99 - - - - - - - - - 33265 - - - - 100 0 - - - - 33266 - - - - - - 200 0 - - 33267} 33268do_execsql_test joinD-1129 { 33269 SELECT t1.*, t2.*, t3.*, t4.* 33270 FROM t1 FULL JOIN t2 ON t1.b=t2.b 33271 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33272 LEFT JOIN t4 ON t1.d=t4.d 33273 WHERE t2.x>0 AND t4.z>0 33274 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33275} { 33276 10 110 210 310 110 10 - - 310 10 33277 20 120 220 320 120 20 - - 320 20 33278 30 130 230 330 130 30 230 30 330 30 33279 40 140 240 340 140 40 - - 340 40 33280 50 150 250 350 150 50 - - 350 50 33281 60 160 260 360 160 60 260 60 360 60 33282 70 170 270 370 170 70 - - 370 70 33283 80 180 280 380 180 80 - - 380 80 33284 90 190 290 390 190 90 290 90 390 90 33285} 33286do_execsql_test joinD-1130 { 33287 SELECT t1.*, t2.*, t3.*, t4.* 33288 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33289 FULL JOIN t3 ON t1.c=t3.c 33290 LEFT JOIN t4 ON t1.d=t4.d 33291 WHERE t4.z>0 AND t3.y>0 33292 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33293} { 33294 15 115 215 315 - - 215 15 315 15 33295 30 130 230 330 130 30 230 30 330 30 33296 45 145 245 345 - - 245 45 345 45 33297 60 160 260 360 160 60 260 60 360 60 33298 75 175 275 375 - - 275 75 375 75 33299 90 190 290 390 190 90 290 90 390 90 33300} 33301do_execsql_test joinD-1131 { 33302 SELECT t1.*, t2.*, t3.*, t4.* 33303 FROM t1 FULL JOIN t2 ON t1.b=t2.b 33304 FULL JOIN t3 ON t1.c=t3.c 33305 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0 33306 WHERE t2.x>0 AND t3.y>0 33307 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33308} { 33309 6 106 206 306 106 6 206 6 - - 33310 12 112 212 312 112 12 212 12 - - 33311 18 118 218 318 118 18 218 18 - - 33312 24 124 224 324 124 24 224 24 - - 33313 30 130 230 330 130 30 230 30 330 30 33314 36 136 236 336 136 36 236 36 - - 33315 42 142 242 342 142 42 242 42 - - 33316 48 148 248 348 148 48 248 48 - - 33317 54 154 254 354 154 54 254 54 - - 33318 60 160 260 360 160 60 260 60 360 60 33319 66 166 266 366 166 66 266 66 - - 33320 72 172 272 372 172 72 272 72 - - 33321 78 178 278 378 178 78 278 78 - - 33322 84 184 284 384 184 84 284 84 - - 33323 90 190 290 390 190 90 290 90 390 90 33324} 33325do_execsql_test joinD-1132 { 33326 SELECT t1.*, t2.*, t3.*, t4.* 33327 FROM t1 FULL JOIN t2 ON t1.b=t2.b 33328 FULL JOIN t3 ON t1.c=t3.c 33329 LEFT JOIN t4 ON t1.d=t4.d 33330 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 33331 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33332} { 33333 30 130 230 330 130 30 230 30 330 30 33334 60 160 260 360 160 60 260 60 360 60 33335 90 190 290 390 190 90 290 90 390 90 33336} 33337do_execsql_test joinD-1133 { 33338 SELECT t1.*, t2.*, t3.*, t4.* 33339 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 33340 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 33341 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 33342 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33343} { 33344 0 100 200 300 - - - - - - 33345 1 101 201 301 - - - - - - 33346 2 102 202 302 102 2 - - - - 33347 3 103 203 303 - - 203 3 - - 33348 4 104 204 304 104 4 - - - - 33349 5 105 205 305 - - - - 305 5 33350 6 106 206 306 106 6 206 6 - - 33351 7 107 207 307 - - - - - - 33352 8 108 208 308 108 8 - - - - 33353 9 109 209 309 - - 209 9 - - 33354 10 110 210 310 110 10 - - 310 10 33355 11 111 211 311 - - - - - - 33356 12 112 212 312 112 12 212 12 - - 33357 13 113 213 313 - - - - - - 33358 14 114 214 314 114 14 - - - - 33359 15 115 215 315 - - 215 15 315 15 33360 16 116 216 316 116 16 - - - - 33361 17 117 217 317 - - - - - - 33362 18 118 218 318 118 18 218 18 - - 33363 19 119 219 319 - - - - - - 33364 20 120 220 320 120 20 - - 320 20 33365 21 121 221 321 - - 221 21 - - 33366 22 122 222 322 122 22 - - - - 33367 23 123 223 323 - - - - - - 33368 24 124 224 324 124 24 224 24 - - 33369 25 125 225 325 - - - - 325 25 33370 26 126 226 326 126 26 - - - - 33371 27 127 227 327 - - 227 27 - - 33372 28 128 228 328 128 28 - - - - 33373 29 129 229 329 - - - - - - 33374 30 130 230 330 130 30 230 30 330 30 33375 31 131 231 331 - - - - - - 33376 32 132 232 332 132 32 - - - - 33377 33 133 233 333 - - 233 33 - - 33378 34 134 234 334 134 34 - - - - 33379 35 135 235 335 - - - - 335 35 33380 36 136 236 336 136 36 236 36 - - 33381 37 137 237 337 - - - - - - 33382 38 138 238 338 138 38 - - - - 33383 39 139 239 339 - - 239 39 - - 33384 40 140 240 340 140 40 - - 340 40 33385 41 141 241 341 - - - - - - 33386 42 142 242 342 142 42 242 42 - - 33387 43 143 243 343 - - - - - - 33388 44 144 244 344 144 44 - - - - 33389 45 145 245 345 - - 245 45 345 45 33390 46 146 246 346 146 46 - - - - 33391 47 147 247 347 - - - - - - 33392 48 148 248 348 148 48 248 48 - - 33393 49 149 249 349 - - - - - - 33394 50 150 250 350 150 50 - - 350 50 33395 51 151 251 351 - - 251 51 - - 33396 52 152 252 352 152 52 - - - - 33397 53 153 253 353 - - - - - - 33398 54 154 254 354 154 54 254 54 - - 33399 55 155 255 355 - - - - 355 55 33400 56 156 256 356 156 56 - - - - 33401 57 157 257 357 - - 257 57 - - 33402 58 158 258 358 158 58 - - - - 33403 59 159 259 359 - - - - - - 33404 60 160 260 360 160 60 260 60 360 60 33405 61 161 261 361 - - - - - - 33406 62 162 262 362 162 62 - - - - 33407 63 163 263 363 - - 263 63 - - 33408 64 164 264 364 164 64 - - - - 33409 65 165 265 365 - - - - 365 65 33410 66 166 266 366 166 66 266 66 - - 33411 67 167 267 367 - - - - - - 33412 68 168 268 368 168 68 - - - - 33413 69 169 269 369 - - 269 69 - - 33414 70 170 270 370 170 70 - - 370 70 33415 71 171 271 371 - - - - - - 33416 72 172 272 372 172 72 272 72 - - 33417 73 173 273 373 - - - - - - 33418 74 174 274 374 174 74 - - - - 33419 75 175 275 375 - - 275 75 375 75 33420 76 176 276 376 176 76 - - - - 33421 77 177 277 377 - - - - - - 33422 78 178 278 378 178 78 278 78 - - 33423 79 179 279 379 - - - - - - 33424 80 180 280 380 180 80 - - 380 80 33425 81 181 281 381 - - 281 81 - - 33426 82 182 282 382 182 82 - - - - 33427 83 183 283 383 - - - - - - 33428 84 184 284 384 184 84 284 84 - - 33429 85 185 285 385 - - - - 385 85 33430 86 186 286 386 186 86 - - - - 33431 87 187 287 387 - - 287 87 - - 33432 88 188 288 388 188 88 - - - - 33433 89 189 289 389 - - - - - - 33434 90 190 290 390 190 90 290 90 390 90 33435 91 191 291 391 - - - - - - 33436 92 192 292 392 192 92 - - - - 33437 93 193 293 393 - - 293 93 - - 33438 94 194 294 394 194 94 - - - - 33439 95 195 295 395 - - - - 395 95 33440 96 - 296 396 - - - - - - 33441 97 197 - 397 - - - - - - 33442 98 198 298 - - - - - - - 33443 99 - - - - - - - - - 33444 - - - - 100 0 - - - - 33445 - - - - - - 200 0 - - 33446} 33447do_execsql_test joinD-1134 { 33448 SELECT t1.*, t2.*, t3.*, t4.* 33449 FROM t1 FULL JOIN t2 ON t2.x>0 33450 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 33451 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 33452 WHERE t1.b = t2.b 33453 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33454} { 33455 2 102 202 302 102 2 - - - - 33456 4 104 204 304 104 4 - - - - 33457 6 106 206 306 106 6 206 6 - - 33458 8 108 208 308 108 8 - - - - 33459 10 110 210 310 110 10 - - 310 10 33460 12 112 212 312 112 12 212 12 - - 33461 14 114 214 314 114 14 - - - - 33462 16 116 216 316 116 16 - - - - 33463 18 118 218 318 118 18 218 18 - - 33464 20 120 220 320 120 20 - - 320 20 33465 22 122 222 322 122 22 - - - - 33466 24 124 224 324 124 24 224 24 - - 33467 26 126 226 326 126 26 - - - - 33468 28 128 228 328 128 28 - - - - 33469 30 130 230 330 130 30 230 30 330 30 33470 32 132 232 332 132 32 - - - - 33471 34 134 234 334 134 34 - - - - 33472 36 136 236 336 136 36 236 36 - - 33473 38 138 238 338 138 38 - - - - 33474 40 140 240 340 140 40 - - 340 40 33475 42 142 242 342 142 42 242 42 - - 33476 44 144 244 344 144 44 - - - - 33477 46 146 246 346 146 46 - - - - 33478 48 148 248 348 148 48 248 48 - - 33479 50 150 250 350 150 50 - - 350 50 33480 52 152 252 352 152 52 - - - - 33481 54 154 254 354 154 54 254 54 - - 33482 56 156 256 356 156 56 - - - - 33483 58 158 258 358 158 58 - - - - 33484 60 160 260 360 160 60 260 60 360 60 33485 62 162 262 362 162 62 - - - - 33486 64 164 264 364 164 64 - - - - 33487 66 166 266 366 166 66 266 66 - - 33488 68 168 268 368 168 68 - - - - 33489 70 170 270 370 170 70 - - 370 70 33490 72 172 272 372 172 72 272 72 - - 33491 74 174 274 374 174 74 - - - - 33492 76 176 276 376 176 76 - - - - 33493 78 178 278 378 178 78 278 78 - - 33494 80 180 280 380 180 80 - - 380 80 33495 82 182 282 382 182 82 - - - - 33496 84 184 284 384 184 84 284 84 - - 33497 86 186 286 386 186 86 - - - - 33498 88 188 288 388 188 88 - - - - 33499 90 190 290 390 190 90 290 90 390 90 33500 92 192 292 392 192 92 - - - - 33501 94 194 294 394 194 94 - - - - 33502} 33503do_execsql_test joinD-1135 { 33504 SELECT t1.*, t2.*, t3.*, t4.* 33505 FROM t1 FULL JOIN t2 ON t2.x>0 33506 FULL JOIN t3 ON t3.y>0 33507 LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 33508 WHERE t1.b = t2.b AND t1.c = t3.c 33509 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33510} { 33511 6 106 206 306 106 6 206 6 - - 33512 12 112 212 312 112 12 212 12 - - 33513 18 118 218 318 118 18 218 18 - - 33514 24 124 224 324 124 24 224 24 - - 33515 30 130 230 330 130 30 230 30 330 30 33516 36 136 236 336 136 36 236 36 - - 33517 42 142 242 342 142 42 242 42 - - 33518 48 148 248 348 148 48 248 48 - - 33519 54 154 254 354 154 54 254 54 - - 33520 60 160 260 360 160 60 260 60 360 60 33521 66 166 266 366 166 66 266 66 - - 33522 72 172 272 372 172 72 272 72 - - 33523 78 178 278 378 178 78 278 78 - - 33524 84 184 284 384 184 84 284 84 - - 33525 90 190 290 390 190 90 290 90 390 90 33526} 33527do_execsql_test joinD-1136 { 33528 SELECT t1.*, t2.*, t3.*, t4.* 33529 FROM t1 FULL JOIN t2 ON t2.x>0 33530 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 33531 LEFT JOIN t4 ON t4.z>0 33532 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 33533 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33534} { 33535 10 110 210 310 110 10 - - 310 10 33536 20 120 220 320 120 20 - - 320 20 33537 30 130 230 330 130 30 230 30 330 30 33538 40 140 240 340 140 40 - - 340 40 33539 50 150 250 350 150 50 - - 350 50 33540 60 160 260 360 160 60 260 60 360 60 33541 70 170 270 370 170 70 - - 370 70 33542 80 180 280 380 180 80 - - 380 80 33543 90 190 290 390 190 90 290 90 390 90 33544} 33545do_execsql_test joinD-1137 { 33546 SELECT t1.*, t2.*, t3.*, t4.* 33547 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33548 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33549 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 33550 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33551} { 33552 5 105 205 305 - - - - 305 5 33553 10 110 210 310 110 10 - - 310 10 33554 15 115 215 315 - - 215 15 315 15 33555 20 120 220 320 120 20 - - 320 20 33556 25 125 225 325 - - - - 325 25 33557 30 130 230 330 130 30 230 30 330 30 33558 35 135 235 335 - - - - 335 35 33559 40 140 240 340 140 40 - - 340 40 33560 45 145 245 345 - - 245 45 345 45 33561 50 150 250 350 150 50 - - 350 50 33562 55 155 255 355 - - - - 355 55 33563 60 160 260 360 160 60 260 60 360 60 33564 65 165 265 365 - - - - 365 65 33565 70 170 270 370 170 70 - - 370 70 33566 75 175 275 375 - - 275 75 375 75 33567 80 180 280 380 180 80 - - 380 80 33568 85 185 285 385 - - - - 385 85 33569 90 190 290 390 190 90 290 90 390 90 33570 95 195 295 395 - - - - 395 95 33571 - - - - - - - - 300 0 33572} 33573do_execsql_test joinD-1138 { 33574 SELECT t1.*, t2.*, t3.*, t4.* 33575 FROM t1 FULL JOIN t2 ON t1.b=t2.b 33576 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33577 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 33578 WHERE t2.x>0 33579 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33580} { 33581 10 110 210 310 110 10 - - 310 10 33582 20 120 220 320 120 20 - - 320 20 33583 30 130 230 330 130 30 230 30 330 30 33584 40 140 240 340 140 40 - - 340 40 33585 50 150 250 350 150 50 - - 350 50 33586 60 160 260 360 160 60 260 60 360 60 33587 70 170 270 370 170 70 - - 370 70 33588 80 180 280 380 180 80 - - 380 80 33589 90 190 290 390 190 90 290 90 390 90 33590} 33591do_execsql_test joinD-1139 { 33592 SELECT t1.*, t2.*, t3.*, t4.* 33593 FROM t1 FULL JOIN t2 ON t1.b=t2.b 33594 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33595 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 33596 WHERE (t2.x>0 OR t2.x IS NULL) 33597 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33598} { 33599 5 105 205 305 - - - - 305 5 33600 10 110 210 310 110 10 - - 310 10 33601 15 115 215 315 - - 215 15 315 15 33602 20 120 220 320 120 20 - - 320 20 33603 25 125 225 325 - - - - 325 25 33604 30 130 230 330 130 30 230 30 330 30 33605 35 135 235 335 - - - - 335 35 33606 40 140 240 340 140 40 - - 340 40 33607 45 145 245 345 - - 245 45 345 45 33608 50 150 250 350 150 50 - - 350 50 33609 55 155 255 355 - - - - 355 55 33610 60 160 260 360 160 60 260 60 360 60 33611 65 165 265 365 - - - - 365 65 33612 70 170 270 370 170 70 - - 370 70 33613 75 175 275 375 - - 275 75 375 75 33614 80 180 280 380 180 80 - - 380 80 33615 85 185 285 385 - - - - 385 85 33616 90 190 290 390 190 90 290 90 390 90 33617 95 195 295 395 - - - - 395 95 33618 - - - - - - - - 300 0 33619} 33620do_execsql_test joinD-1140 { 33621 SELECT t1.*, t2.*, t3.*, t4.* 33622 FROM t1 FULL JOIN t2 ON true 33623 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33624 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 33625 WHERE t1.b=t2.b AND t2.x>0 33626 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33627} { 33628 10 110 210 310 110 10 - - 310 10 33629 20 120 220 320 120 20 - - 320 20 33630 30 130 230 330 130 30 230 30 330 30 33631 40 140 240 340 140 40 - - 340 40 33632 50 150 250 350 150 50 - - 350 50 33633 60 160 260 360 160 60 260 60 360 60 33634 70 170 270 370 170 70 - - 370 70 33635 80 180 280 380 180 80 - - 380 80 33636 90 190 290 390 190 90 290 90 390 90 33637} 33638do_execsql_test joinD-1141 { 33639 SELECT t1.*, t2.*, t3.*, t4.* 33640 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33641 FULL JOIN t3 ON t1.c=t3.c 33642 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 33643 WHERE t3.y>0 33644 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33645} { 33646 15 115 215 315 - - 215 15 315 15 33647 30 130 230 330 130 30 230 30 330 30 33648 45 145 245 345 - - 245 45 345 45 33649 60 160 260 360 160 60 260 60 360 60 33650 75 175 275 375 - - 275 75 375 75 33651 90 190 290 390 190 90 290 90 390 90 33652} 33653do_execsql_test joinD-1142 { 33654 SELECT t1.*, t2.*, t3.*, t4.* 33655 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33656 FULL JOIN t3 ON t1.c=t3.c 33657 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 33658 WHERE t3.y>0 OR t3.y IS NULL 33659 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33660} { 33661 5 105 205 305 - - - - 305 5 33662 10 110 210 310 110 10 - - 310 10 33663 15 115 215 315 - - 215 15 315 15 33664 20 120 220 320 120 20 - - 320 20 33665 25 125 225 325 - - - - 325 25 33666 30 130 230 330 130 30 230 30 330 30 33667 35 135 235 335 - - - - 335 35 33668 40 140 240 340 140 40 - - 340 40 33669 45 145 245 345 - - 245 45 345 45 33670 50 150 250 350 150 50 - - 350 50 33671 55 155 255 355 - - - - 355 55 33672 60 160 260 360 160 60 260 60 360 60 33673 65 165 265 365 - - - - 365 65 33674 70 170 270 370 170 70 - - 370 70 33675 75 175 275 375 - - 275 75 375 75 33676 80 180 280 380 180 80 - - 380 80 33677 85 185 285 385 - - - - 385 85 33678 90 190 290 390 190 90 290 90 390 90 33679 95 195 295 395 - - - - 395 95 33680 - - - - - - - - 300 0 33681} 33682do_execsql_test joinD-1143 { 33683 SELECT t1.*, t2.*, t3.*, t4.* 33684 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33685 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33686 RIGHT JOIN t4 ON t1.d=t4.d 33687 WHERE t4.z>0 33688 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33689} { 33690 5 105 205 305 - - - - 305 5 33691 10 110 210 310 110 10 - - 310 10 33692 15 115 215 315 - - 215 15 315 15 33693 20 120 220 320 120 20 - - 320 20 33694 25 125 225 325 - - - - 325 25 33695 30 130 230 330 130 30 230 30 330 30 33696 35 135 235 335 - - - - 335 35 33697 40 140 240 340 140 40 - - 340 40 33698 45 145 245 345 - - 245 45 345 45 33699 50 150 250 350 150 50 - - 350 50 33700 55 155 255 355 - - - - 355 55 33701 60 160 260 360 160 60 260 60 360 60 33702 65 165 265 365 - - - - 365 65 33703 70 170 270 370 170 70 - - 370 70 33704 75 175 275 375 - - 275 75 375 75 33705 80 180 280 380 180 80 - - 380 80 33706 85 185 285 385 - - - - 385 85 33707 90 190 290 390 190 90 290 90 390 90 33708 95 195 295 395 - - - - 395 95 33709} 33710do_execsql_test joinD-1144 { 33711 SELECT t1.*, t2.*, t3.*, t4.* 33712 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33713 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33714 RIGHT JOIN t4 ON t1.d=t4.d 33715 WHERE t4.z IS NULL OR t4.z>0 33716 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33717} { 33718 5 105 205 305 - - - - 305 5 33719 10 110 210 310 110 10 - - 310 10 33720 15 115 215 315 - - 215 15 315 15 33721 20 120 220 320 120 20 - - 320 20 33722 25 125 225 325 - - - - 325 25 33723 30 130 230 330 130 30 230 30 330 30 33724 35 135 235 335 - - - - 335 35 33725 40 140 240 340 140 40 - - 340 40 33726 45 145 245 345 - - 245 45 345 45 33727 50 150 250 350 150 50 - - 350 50 33728 55 155 255 355 - - - - 355 55 33729 60 160 260 360 160 60 260 60 360 60 33730 65 165 265 365 - - - - 365 65 33731 70 170 270 370 170 70 - - 370 70 33732 75 175 275 375 - - 275 75 375 75 33733 80 180 280 380 180 80 - - 380 80 33734 85 185 285 385 - - - - 385 85 33735 90 190 290 390 190 90 290 90 390 90 33736 95 195 295 395 - - - - 395 95 33737} 33738do_execsql_test joinD-1145 { 33739 SELECT t1.*, t2.*, t3.*, t4.* 33740 FROM t1 FULL JOIN t2 ON t1.b=t2.b 33741 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33742 RIGHT JOIN t4 ON t1.d=t4.d 33743 WHERE t2.x>0 AND t4.z>0 33744 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33745} { 33746 10 110 210 310 110 10 - - 310 10 33747 20 120 220 320 120 20 - - 320 20 33748 30 130 230 330 130 30 230 30 330 30 33749 40 140 240 340 140 40 - - 340 40 33750 50 150 250 350 150 50 - - 350 50 33751 60 160 260 360 160 60 260 60 360 60 33752 70 170 270 370 170 70 - - 370 70 33753 80 180 280 380 180 80 - - 380 80 33754 90 190 290 390 190 90 290 90 390 90 33755} 33756do_execsql_test joinD-1146 { 33757 SELECT t1.*, t2.*, t3.*, t4.* 33758 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33759 FULL JOIN t3 ON t1.c=t3.c 33760 RIGHT JOIN t4 ON t1.d=t4.d 33761 WHERE t4.z>0 AND t3.y>0 33762 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33763} { 33764 15 115 215 315 - - 215 15 315 15 33765 30 130 230 330 130 30 230 30 330 30 33766 45 145 245 345 - - 245 45 345 45 33767 60 160 260 360 160 60 260 60 360 60 33768 75 175 275 375 - - 275 75 375 75 33769 90 190 290 390 190 90 290 90 390 90 33770} 33771do_execsql_test joinD-1147 { 33772 SELECT t1.*, t2.*, t3.*, t4.* 33773 FROM t1 FULL JOIN t2 ON t1.b=t2.b 33774 FULL JOIN t3 ON t1.c=t3.c 33775 RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0 33776 WHERE t2.x>0 AND t3.y>0 33777 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33778} { 33779 30 130 230 330 130 30 230 30 330 30 33780 60 160 260 360 160 60 260 60 360 60 33781 90 190 290 390 190 90 290 90 390 90 33782} 33783do_execsql_test joinD-1148 { 33784 SELECT t1.*, t2.*, t3.*, t4.* 33785 FROM t1 FULL JOIN t2 ON t1.b=t2.b 33786 FULL JOIN t3 ON t1.c=t3.c 33787 RIGHT JOIN t4 ON t1.d=t4.d 33788 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 33789 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33790} { 33791 30 130 230 330 130 30 230 30 330 30 33792 60 160 260 360 160 60 260 60 360 60 33793 90 190 290 390 190 90 290 90 390 90 33794} 33795do_execsql_test joinD-1149 { 33796 SELECT t1.*, t2.*, t3.*, t4.* 33797 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 33798 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 33799 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 33800 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33801} { 33802 5 105 205 305 - - - - 305 5 33803 10 110 210 310 110 10 - - 310 10 33804 15 115 215 315 - - 215 15 315 15 33805 20 120 220 320 120 20 - - 320 20 33806 25 125 225 325 - - - - 325 25 33807 30 130 230 330 130 30 230 30 330 30 33808 35 135 235 335 - - - - 335 35 33809 40 140 240 340 140 40 - - 340 40 33810 45 145 245 345 - - 245 45 345 45 33811 50 150 250 350 150 50 - - 350 50 33812 55 155 255 355 - - - - 355 55 33813 60 160 260 360 160 60 260 60 360 60 33814 65 165 265 365 - - - - 365 65 33815 70 170 270 370 170 70 - - 370 70 33816 75 175 275 375 - - 275 75 375 75 33817 80 180 280 380 180 80 - - 380 80 33818 85 185 285 385 - - - - 385 85 33819 90 190 290 390 190 90 290 90 390 90 33820 95 195 295 395 - - - - 395 95 33821 - - - - - - - - 300 0 33822} 33823do_execsql_test joinD-1150 { 33824 SELECT t1.*, t2.*, t3.*, t4.* 33825 FROM t1 FULL JOIN t2 ON t2.x>0 33826 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 33827 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 33828 WHERE t1.b = t2.b 33829 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33830} { 33831 10 110 210 310 110 10 - - 310 10 33832 20 120 220 320 120 20 - - 320 20 33833 30 130 230 330 130 30 230 30 330 30 33834 40 140 240 340 140 40 - - 340 40 33835 50 150 250 350 150 50 - - 350 50 33836 60 160 260 360 160 60 260 60 360 60 33837 70 170 270 370 170 70 - - 370 70 33838 80 180 280 380 180 80 - - 380 80 33839 90 190 290 390 190 90 290 90 390 90 33840} 33841do_execsql_test joinD-1151 { 33842 SELECT t1.*, t2.*, t3.*, t4.* 33843 FROM t1 FULL JOIN t2 ON t2.x>0 33844 FULL JOIN t3 ON t3.y>0 33845 RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0 33846 WHERE t1.b = t2.b AND t1.c = t3.c 33847 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33848} { 33849 30 130 230 330 130 30 230 30 330 30 33850 60 160 260 360 160 60 260 60 360 60 33851 90 190 290 390 190 90 290 90 390 90 33852} 33853do_execsql_test joinD-1152 { 33854 SELECT t1.*, t2.*, t3.*, t4.* 33855 FROM t1 FULL JOIN t2 ON t2.x>0 33856 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 33857 RIGHT JOIN t4 ON t4.z>0 33858 WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d 33859 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33860} { 33861 10 110 210 310 110 10 - - 310 10 33862 20 120 220 320 120 20 - - 320 20 33863 30 130 230 330 130 30 230 30 330 30 33864 40 140 240 340 140 40 - - 340 40 33865 50 150 250 350 150 50 - - 350 50 33866 60 160 260 360 160 60 260 60 360 60 33867 70 170 270 370 170 70 - - 370 70 33868 80 180 280 380 180 80 - - 380 80 33869 90 190 290 390 190 90 290 90 390 90 33870} 33871do_execsql_test joinD-1153 { 33872 SELECT t1.*, t2.*, t3.*, t4.* 33873 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 33874 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33875 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 33876 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33877} { 33878 0 100 200 300 - - - - - - 33879 1 101 201 301 - - - - - - 33880 2 102 202 302 102 2 - - - - 33881 3 103 203 303 - - 203 3 - - 33882 4 104 204 304 104 4 - - - - 33883 5 105 205 305 - - - - 305 5 33884 6 106 206 306 106 6 206 6 - - 33885 7 107 207 307 - - - - - - 33886 8 108 208 308 108 8 - - - - 33887 9 109 209 309 - - 209 9 - - 33888 10 110 210 310 110 10 - - 310 10 33889 11 111 211 311 - - - - - - 33890 12 112 212 312 112 12 212 12 - - 33891 13 113 213 313 - - - - - - 33892 14 114 214 314 114 14 - - - - 33893 15 115 215 315 - - 215 15 315 15 33894 16 116 216 316 116 16 - - - - 33895 17 117 217 317 - - - - - - 33896 18 118 218 318 118 18 218 18 - - 33897 19 119 219 319 - - - - - - 33898 20 120 220 320 120 20 - - 320 20 33899 21 121 221 321 - - 221 21 - - 33900 22 122 222 322 122 22 - - - - 33901 23 123 223 323 - - - - - - 33902 24 124 224 324 124 24 224 24 - - 33903 25 125 225 325 - - - - 325 25 33904 26 126 226 326 126 26 - - - - 33905 27 127 227 327 - - 227 27 - - 33906 28 128 228 328 128 28 - - - - 33907 29 129 229 329 - - - - - - 33908 30 130 230 330 130 30 230 30 330 30 33909 31 131 231 331 - - - - - - 33910 32 132 232 332 132 32 - - - - 33911 33 133 233 333 - - 233 33 - - 33912 34 134 234 334 134 34 - - - - 33913 35 135 235 335 - - - - 335 35 33914 36 136 236 336 136 36 236 36 - - 33915 37 137 237 337 - - - - - - 33916 38 138 238 338 138 38 - - - - 33917 39 139 239 339 - - 239 39 - - 33918 40 140 240 340 140 40 - - 340 40 33919 41 141 241 341 - - - - - - 33920 42 142 242 342 142 42 242 42 - - 33921 43 143 243 343 - - - - - - 33922 44 144 244 344 144 44 - - - - 33923 45 145 245 345 - - 245 45 345 45 33924 46 146 246 346 146 46 - - - - 33925 47 147 247 347 - - - - - - 33926 48 148 248 348 148 48 248 48 - - 33927 49 149 249 349 - - - - - - 33928 50 150 250 350 150 50 - - 350 50 33929 51 151 251 351 - - 251 51 - - 33930 52 152 252 352 152 52 - - - - 33931 53 153 253 353 - - - - - - 33932 54 154 254 354 154 54 254 54 - - 33933 55 155 255 355 - - - - 355 55 33934 56 156 256 356 156 56 - - - - 33935 57 157 257 357 - - 257 57 - - 33936 58 158 258 358 158 58 - - - - 33937 59 159 259 359 - - - - - - 33938 60 160 260 360 160 60 260 60 360 60 33939 61 161 261 361 - - - - - - 33940 62 162 262 362 162 62 - - - - 33941 63 163 263 363 - - 263 63 - - 33942 64 164 264 364 164 64 - - - - 33943 65 165 265 365 - - - - 365 65 33944 66 166 266 366 166 66 266 66 - - 33945 67 167 267 367 - - - - - - 33946 68 168 268 368 168 68 - - - - 33947 69 169 269 369 - - 269 69 - - 33948 70 170 270 370 170 70 - - 370 70 33949 71 171 271 371 - - - - - - 33950 72 172 272 372 172 72 272 72 - - 33951 73 173 273 373 - - - - - - 33952 74 174 274 374 174 74 - - - - 33953 75 175 275 375 - - 275 75 375 75 33954 76 176 276 376 176 76 - - - - 33955 77 177 277 377 - - - - - - 33956 78 178 278 378 178 78 278 78 - - 33957 79 179 279 379 - - - - - - 33958 80 180 280 380 180 80 - - 380 80 33959 81 181 281 381 - - 281 81 - - 33960 82 182 282 382 182 82 - - - - 33961 83 183 283 383 - - - - - - 33962 84 184 284 384 184 84 284 84 - - 33963 85 185 285 385 - - - - 385 85 33964 86 186 286 386 186 86 - - - - 33965 87 187 287 387 - - 287 87 - - 33966 88 188 288 388 188 88 - - - - 33967 89 189 289 389 - - - - - - 33968 90 190 290 390 190 90 290 90 390 90 33969 91 191 291 391 - - - - - - 33970 92 192 292 392 192 92 - - - - 33971 93 193 293 393 - - 293 93 - - 33972 94 194 294 394 194 94 - - - - 33973 95 195 295 395 - - - - 395 95 33974 96 - 296 396 - - - - - - 33975 97 197 - 397 - - - - - - 33976 98 198 298 - - - - - - - 33977 99 - - - - - - - - - 33978 - - - - 100 0 - - - - 33979 - - - - - - 200 0 - - 33980 - - - - - - - - 300 0 33981} 33982do_execsql_test joinD-1154 { 33983 SELECT t1.*, t2.*, t3.*, t4.* 33984 FROM t1 FULL JOIN t2 ON t1.b=t2.b 33985 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 33986 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 33987 WHERE t2.x>0 33988 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 33989} { 33990 2 102 202 302 102 2 - - - - 33991 4 104 204 304 104 4 - - - - 33992 6 106 206 306 106 6 206 6 - - 33993 8 108 208 308 108 8 - - - - 33994 10 110 210 310 110 10 - - 310 10 33995 12 112 212 312 112 12 212 12 - - 33996 14 114 214 314 114 14 - - - - 33997 16 116 216 316 116 16 - - - - 33998 18 118 218 318 118 18 218 18 - - 33999 20 120 220 320 120 20 - - 320 20 34000 22 122 222 322 122 22 - - - - 34001 24 124 224 324 124 24 224 24 - - 34002 26 126 226 326 126 26 - - - - 34003 28 128 228 328 128 28 - - - - 34004 30 130 230 330 130 30 230 30 330 30 34005 32 132 232 332 132 32 - - - - 34006 34 134 234 334 134 34 - - - - 34007 36 136 236 336 136 36 236 36 - - 34008 38 138 238 338 138 38 - - - - 34009 40 140 240 340 140 40 - - 340 40 34010 42 142 242 342 142 42 242 42 - - 34011 44 144 244 344 144 44 - - - - 34012 46 146 246 346 146 46 - - - - 34013 48 148 248 348 148 48 248 48 - - 34014 50 150 250 350 150 50 - - 350 50 34015 52 152 252 352 152 52 - - - - 34016 54 154 254 354 154 54 254 54 - - 34017 56 156 256 356 156 56 - - - - 34018 58 158 258 358 158 58 - - - - 34019 60 160 260 360 160 60 260 60 360 60 34020 62 162 262 362 162 62 - - - - 34021 64 164 264 364 164 64 - - - - 34022 66 166 266 366 166 66 266 66 - - 34023 68 168 268 368 168 68 - - - - 34024 70 170 270 370 170 70 - - 370 70 34025 72 172 272 372 172 72 272 72 - - 34026 74 174 274 374 174 74 - - - - 34027 76 176 276 376 176 76 - - - - 34028 78 178 278 378 178 78 278 78 - - 34029 80 180 280 380 180 80 - - 380 80 34030 82 182 282 382 182 82 - - - - 34031 84 184 284 384 184 84 284 84 - - 34032 86 186 286 386 186 86 - - - - 34033 88 188 288 388 188 88 - - - - 34034 90 190 290 390 190 90 290 90 390 90 34035 92 192 292 392 192 92 - - - - 34036 94 194 294 394 194 94 - - - - 34037} 34038do_execsql_test joinD-1155 { 34039 SELECT t1.*, t2.*, t3.*, t4.* 34040 FROM t1 FULL JOIN t2 ON t1.b=t2.b 34041 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 34042 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 34043 WHERE (t2.x>0 OR t2.x IS NULL) 34044 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34045} { 34046 1 101 201 301 - - - - - - 34047 2 102 202 302 102 2 - - - - 34048 3 103 203 303 - - 203 3 - - 34049 4 104 204 304 104 4 - - - - 34050 5 105 205 305 - - - - 305 5 34051 6 106 206 306 106 6 206 6 - - 34052 7 107 207 307 - - - - - - 34053 8 108 208 308 108 8 - - - - 34054 9 109 209 309 - - 209 9 - - 34055 10 110 210 310 110 10 - - 310 10 34056 11 111 211 311 - - - - - - 34057 12 112 212 312 112 12 212 12 - - 34058 13 113 213 313 - - - - - - 34059 14 114 214 314 114 14 - - - - 34060 15 115 215 315 - - 215 15 315 15 34061 16 116 216 316 116 16 - - - - 34062 17 117 217 317 - - - - - - 34063 18 118 218 318 118 18 218 18 - - 34064 19 119 219 319 - - - - - - 34065 20 120 220 320 120 20 - - 320 20 34066 21 121 221 321 - - 221 21 - - 34067 22 122 222 322 122 22 - - - - 34068 23 123 223 323 - - - - - - 34069 24 124 224 324 124 24 224 24 - - 34070 25 125 225 325 - - - - 325 25 34071 26 126 226 326 126 26 - - - - 34072 27 127 227 327 - - 227 27 - - 34073 28 128 228 328 128 28 - - - - 34074 29 129 229 329 - - - - - - 34075 30 130 230 330 130 30 230 30 330 30 34076 31 131 231 331 - - - - - - 34077 32 132 232 332 132 32 - - - - 34078 33 133 233 333 - - 233 33 - - 34079 34 134 234 334 134 34 - - - - 34080 35 135 235 335 - - - - 335 35 34081 36 136 236 336 136 36 236 36 - - 34082 37 137 237 337 - - - - - - 34083 38 138 238 338 138 38 - - - - 34084 39 139 239 339 - - 239 39 - - 34085 40 140 240 340 140 40 - - 340 40 34086 41 141 241 341 - - - - - - 34087 42 142 242 342 142 42 242 42 - - 34088 43 143 243 343 - - - - - - 34089 44 144 244 344 144 44 - - - - 34090 45 145 245 345 - - 245 45 345 45 34091 46 146 246 346 146 46 - - - - 34092 47 147 247 347 - - - - - - 34093 48 148 248 348 148 48 248 48 - - 34094 49 149 249 349 - - - - - - 34095 50 150 250 350 150 50 - - 350 50 34096 51 151 251 351 - - 251 51 - - 34097 52 152 252 352 152 52 - - - - 34098 53 153 253 353 - - - - - - 34099 54 154 254 354 154 54 254 54 - - 34100 55 155 255 355 - - - - 355 55 34101 56 156 256 356 156 56 - - - - 34102 57 157 257 357 - - 257 57 - - 34103 58 158 258 358 158 58 - - - - 34104 59 159 259 359 - - - - - - 34105 60 160 260 360 160 60 260 60 360 60 34106 61 161 261 361 - - - - - - 34107 62 162 262 362 162 62 - - - - 34108 63 163 263 363 - - 263 63 - - 34109 64 164 264 364 164 64 - - - - 34110 65 165 265 365 - - - - 365 65 34111 66 166 266 366 166 66 266 66 - - 34112 67 167 267 367 - - - - - - 34113 68 168 268 368 168 68 - - - - 34114 69 169 269 369 - - 269 69 - - 34115 70 170 270 370 170 70 - - 370 70 34116 71 171 271 371 - - - - - - 34117 72 172 272 372 172 72 272 72 - - 34118 73 173 273 373 - - - - - - 34119 74 174 274 374 174 74 - - - - 34120 75 175 275 375 - - 275 75 375 75 34121 76 176 276 376 176 76 - - - - 34122 77 177 277 377 - - - - - - 34123 78 178 278 378 178 78 278 78 - - 34124 79 179 279 379 - - - - - - 34125 80 180 280 380 180 80 - - 380 80 34126 81 181 281 381 - - 281 81 - - 34127 82 182 282 382 182 82 - - - - 34128 83 183 283 383 - - - - - - 34129 84 184 284 384 184 84 284 84 - - 34130 85 185 285 385 - - - - 385 85 34131 86 186 286 386 186 86 - - - - 34132 87 187 287 387 - - 287 87 - - 34133 88 188 288 388 188 88 - - - - 34134 89 189 289 389 - - - - - - 34135 90 190 290 390 190 90 290 90 390 90 34136 91 191 291 391 - - - - - - 34137 92 192 292 392 192 92 - - - - 34138 93 193 293 393 - - 293 93 - - 34139 94 194 294 394 194 94 - - - - 34140 95 195 295 395 - - - - 395 95 34141 96 - 296 396 - - - - - - 34142 97 197 - 397 - - - - - - 34143 98 198 298 - - - - - - - 34144 99 - - - - - - - - - 34145 - - - - - - 200 0 - - 34146 - - - - - - - - 300 0 34147} 34148do_execsql_test joinD-1156 { 34149 SELECT t1.*, t2.*, t3.*, t4.* 34150 FROM t1 FULL JOIN t2 ON true 34151 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 34152 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 34153 WHERE t1.b=t2.b AND t2.x>0 34154 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34155} { 34156 2 102 202 302 102 2 - - - - 34157 4 104 204 304 104 4 - - - - 34158 6 106 206 306 106 6 206 6 - - 34159 8 108 208 308 108 8 - - - - 34160 10 110 210 310 110 10 - - 310 10 34161 12 112 212 312 112 12 212 12 - - 34162 14 114 214 314 114 14 - - - - 34163 16 116 216 316 116 16 - - - - 34164 18 118 218 318 118 18 218 18 - - 34165 20 120 220 320 120 20 - - 320 20 34166 22 122 222 322 122 22 - - - - 34167 24 124 224 324 124 24 224 24 - - 34168 26 126 226 326 126 26 - - - - 34169 28 128 228 328 128 28 - - - - 34170 30 130 230 330 130 30 230 30 330 30 34171 32 132 232 332 132 32 - - - - 34172 34 134 234 334 134 34 - - - - 34173 36 136 236 336 136 36 236 36 - - 34174 38 138 238 338 138 38 - - - - 34175 40 140 240 340 140 40 - - 340 40 34176 42 142 242 342 142 42 242 42 - - 34177 44 144 244 344 144 44 - - - - 34178 46 146 246 346 146 46 - - - - 34179 48 148 248 348 148 48 248 48 - - 34180 50 150 250 350 150 50 - - 350 50 34181 52 152 252 352 152 52 - - - - 34182 54 154 254 354 154 54 254 54 - - 34183 56 156 256 356 156 56 - - - - 34184 58 158 258 358 158 58 - - - - 34185 60 160 260 360 160 60 260 60 360 60 34186 62 162 262 362 162 62 - - - - 34187 64 164 264 364 164 64 - - - - 34188 66 166 266 366 166 66 266 66 - - 34189 68 168 268 368 168 68 - - - - 34190 70 170 270 370 170 70 - - 370 70 34191 72 172 272 372 172 72 272 72 - - 34192 74 174 274 374 174 74 - - - - 34193 76 176 276 376 176 76 - - - - 34194 78 178 278 378 178 78 278 78 - - 34195 80 180 280 380 180 80 - - 380 80 34196 82 182 282 382 182 82 - - - - 34197 84 184 284 384 184 84 284 84 - - 34198 86 186 286 386 186 86 - - - - 34199 88 188 288 388 188 88 - - - - 34200 90 190 290 390 190 90 290 90 390 90 34201 92 192 292 392 192 92 - - - - 34202 94 194 294 394 194 94 - - - - 34203} 34204do_execsql_test joinD-1157 { 34205 SELECT t1.*, t2.*, t3.*, t4.* 34206 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 34207 FULL JOIN t3 ON t1.c=t3.c 34208 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 34209 WHERE t3.y>0 34210 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34211} { 34212 3 103 203 303 - - 203 3 - - 34213 6 106 206 306 106 6 206 6 - - 34214 9 109 209 309 - - 209 9 - - 34215 12 112 212 312 112 12 212 12 - - 34216 15 115 215 315 - - 215 15 315 15 34217 18 118 218 318 118 18 218 18 - - 34218 21 121 221 321 - - 221 21 - - 34219 24 124 224 324 124 24 224 24 - - 34220 27 127 227 327 - - 227 27 - - 34221 30 130 230 330 130 30 230 30 330 30 34222 33 133 233 333 - - 233 33 - - 34223 36 136 236 336 136 36 236 36 - - 34224 39 139 239 339 - - 239 39 - - 34225 42 142 242 342 142 42 242 42 - - 34226 45 145 245 345 - - 245 45 345 45 34227 48 148 248 348 148 48 248 48 - - 34228 51 151 251 351 - - 251 51 - - 34229 54 154 254 354 154 54 254 54 - - 34230 57 157 257 357 - - 257 57 - - 34231 60 160 260 360 160 60 260 60 360 60 34232 63 163 263 363 - - 263 63 - - 34233 66 166 266 366 166 66 266 66 - - 34234 69 169 269 369 - - 269 69 - - 34235 72 172 272 372 172 72 272 72 - - 34236 75 175 275 375 - - 275 75 375 75 34237 78 178 278 378 178 78 278 78 - - 34238 81 181 281 381 - - 281 81 - - 34239 84 184 284 384 184 84 284 84 - - 34240 87 187 287 387 - - 287 87 - - 34241 90 190 290 390 190 90 290 90 390 90 34242 93 193 293 393 - - 293 93 - - 34243} 34244do_execsql_test joinD-1158 { 34245 SELECT t1.*, t2.*, t3.*, t4.* 34246 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 34247 FULL JOIN t3 ON t1.c=t3.c 34248 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 34249 WHERE t3.y>0 OR t3.y IS NULL 34250 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34251} { 34252 1 101 201 301 - - - - - - 34253 2 102 202 302 102 2 - - - - 34254 3 103 203 303 - - 203 3 - - 34255 4 104 204 304 104 4 - - - - 34256 5 105 205 305 - - - - 305 5 34257 6 106 206 306 106 6 206 6 - - 34258 7 107 207 307 - - - - - - 34259 8 108 208 308 108 8 - - - - 34260 9 109 209 309 - - 209 9 - - 34261 10 110 210 310 110 10 - - 310 10 34262 11 111 211 311 - - - - - - 34263 12 112 212 312 112 12 212 12 - - 34264 13 113 213 313 - - - - - - 34265 14 114 214 314 114 14 - - - - 34266 15 115 215 315 - - 215 15 315 15 34267 16 116 216 316 116 16 - - - - 34268 17 117 217 317 - - - - - - 34269 18 118 218 318 118 18 218 18 - - 34270 19 119 219 319 - - - - - - 34271 20 120 220 320 120 20 - - 320 20 34272 21 121 221 321 - - 221 21 - - 34273 22 122 222 322 122 22 - - - - 34274 23 123 223 323 - - - - - - 34275 24 124 224 324 124 24 224 24 - - 34276 25 125 225 325 - - - - 325 25 34277 26 126 226 326 126 26 - - - - 34278 27 127 227 327 - - 227 27 - - 34279 28 128 228 328 128 28 - - - - 34280 29 129 229 329 - - - - - - 34281 30 130 230 330 130 30 230 30 330 30 34282 31 131 231 331 - - - - - - 34283 32 132 232 332 132 32 - - - - 34284 33 133 233 333 - - 233 33 - - 34285 34 134 234 334 134 34 - - - - 34286 35 135 235 335 - - - - 335 35 34287 36 136 236 336 136 36 236 36 - - 34288 37 137 237 337 - - - - - - 34289 38 138 238 338 138 38 - - - - 34290 39 139 239 339 - - 239 39 - - 34291 40 140 240 340 140 40 - - 340 40 34292 41 141 241 341 - - - - - - 34293 42 142 242 342 142 42 242 42 - - 34294 43 143 243 343 - - - - - - 34295 44 144 244 344 144 44 - - - - 34296 45 145 245 345 - - 245 45 345 45 34297 46 146 246 346 146 46 - - - - 34298 47 147 247 347 - - - - - - 34299 48 148 248 348 148 48 248 48 - - 34300 49 149 249 349 - - - - - - 34301 50 150 250 350 150 50 - - 350 50 34302 51 151 251 351 - - 251 51 - - 34303 52 152 252 352 152 52 - - - - 34304 53 153 253 353 - - - - - - 34305 54 154 254 354 154 54 254 54 - - 34306 55 155 255 355 - - - - 355 55 34307 56 156 256 356 156 56 - - - - 34308 57 157 257 357 - - 257 57 - - 34309 58 158 258 358 158 58 - - - - 34310 59 159 259 359 - - - - - - 34311 60 160 260 360 160 60 260 60 360 60 34312 61 161 261 361 - - - - - - 34313 62 162 262 362 162 62 - - - - 34314 63 163 263 363 - - 263 63 - - 34315 64 164 264 364 164 64 - - - - 34316 65 165 265 365 - - - - 365 65 34317 66 166 266 366 166 66 266 66 - - 34318 67 167 267 367 - - - - - - 34319 68 168 268 368 168 68 - - - - 34320 69 169 269 369 - - 269 69 - - 34321 70 170 270 370 170 70 - - 370 70 34322 71 171 271 371 - - - - - - 34323 72 172 272 372 172 72 272 72 - - 34324 73 173 273 373 - - - - - - 34325 74 174 274 374 174 74 - - - - 34326 75 175 275 375 - - 275 75 375 75 34327 76 176 276 376 176 76 - - - - 34328 77 177 277 377 - - - - - - 34329 78 178 278 378 178 78 278 78 - - 34330 79 179 279 379 - - - - - - 34331 80 180 280 380 180 80 - - 380 80 34332 81 181 281 381 - - 281 81 - - 34333 82 182 282 382 182 82 - - - - 34334 83 183 283 383 - - - - - - 34335 84 184 284 384 184 84 284 84 - - 34336 85 185 285 385 - - - - 385 85 34337 86 186 286 386 186 86 - - - - 34338 87 187 287 387 - - 287 87 - - 34339 88 188 288 388 188 88 - - - - 34340 89 189 289 389 - - - - - - 34341 90 190 290 390 190 90 290 90 390 90 34342 91 191 291 391 - - - - - - 34343 92 192 292 392 192 92 - - - - 34344 93 193 293 393 - - 293 93 - - 34345 94 194 294 394 194 94 - - - - 34346 95 195 295 395 - - - - 395 95 34347 96 - 296 396 - - - - - - 34348 97 197 - 397 - - - - - - 34349 98 198 298 - - - - - - - 34350 99 - - - - - - - - - 34351 - - - - 100 0 - - - - 34352 - - - - - - - - 300 0 34353} 34354do_execsql_test joinD-1159 { 34355 SELECT t1.*, t2.*, t3.*, t4.* 34356 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 34357 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 34358 FULL JOIN t4 ON t1.d=t4.d 34359 WHERE t4.z>0 34360 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34361} { 34362 5 105 205 305 - - - - 305 5 34363 10 110 210 310 110 10 - - 310 10 34364 15 115 215 315 - - 215 15 315 15 34365 20 120 220 320 120 20 - - 320 20 34366 25 125 225 325 - - - - 325 25 34367 30 130 230 330 130 30 230 30 330 30 34368 35 135 235 335 - - - - 335 35 34369 40 140 240 340 140 40 - - 340 40 34370 45 145 245 345 - - 245 45 345 45 34371 50 150 250 350 150 50 - - 350 50 34372 55 155 255 355 - - - - 355 55 34373 60 160 260 360 160 60 260 60 360 60 34374 65 165 265 365 - - - - 365 65 34375 70 170 270 370 170 70 - - 370 70 34376 75 175 275 375 - - 275 75 375 75 34377 80 180 280 380 180 80 - - 380 80 34378 85 185 285 385 - - - - 385 85 34379 90 190 290 390 190 90 290 90 390 90 34380 95 195 295 395 - - - - 395 95 34381} 34382do_execsql_test joinD-1160 { 34383 SELECT t1.*, t2.*, t3.*, t4.* 34384 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 34385 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 34386 FULL JOIN t4 ON t1.d=t4.d 34387 WHERE t4.z IS NULL OR t4.z>0 34388 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34389} { 34390 1 101 201 301 - - - - - - 34391 2 102 202 302 102 2 - - - - 34392 3 103 203 303 - - 203 3 - - 34393 4 104 204 304 104 4 - - - - 34394 5 105 205 305 - - - - 305 5 34395 6 106 206 306 106 6 206 6 - - 34396 7 107 207 307 - - - - - - 34397 8 108 208 308 108 8 - - - - 34398 9 109 209 309 - - 209 9 - - 34399 10 110 210 310 110 10 - - 310 10 34400 11 111 211 311 - - - - - - 34401 12 112 212 312 112 12 212 12 - - 34402 13 113 213 313 - - - - - - 34403 14 114 214 314 114 14 - - - - 34404 15 115 215 315 - - 215 15 315 15 34405 16 116 216 316 116 16 - - - - 34406 17 117 217 317 - - - - - - 34407 18 118 218 318 118 18 218 18 - - 34408 19 119 219 319 - - - - - - 34409 20 120 220 320 120 20 - - 320 20 34410 21 121 221 321 - - 221 21 - - 34411 22 122 222 322 122 22 - - - - 34412 23 123 223 323 - - - - - - 34413 24 124 224 324 124 24 224 24 - - 34414 25 125 225 325 - - - - 325 25 34415 26 126 226 326 126 26 - - - - 34416 27 127 227 327 - - 227 27 - - 34417 28 128 228 328 128 28 - - - - 34418 29 129 229 329 - - - - - - 34419 30 130 230 330 130 30 230 30 330 30 34420 31 131 231 331 - - - - - - 34421 32 132 232 332 132 32 - - - - 34422 33 133 233 333 - - 233 33 - - 34423 34 134 234 334 134 34 - - - - 34424 35 135 235 335 - - - - 335 35 34425 36 136 236 336 136 36 236 36 - - 34426 37 137 237 337 - - - - - - 34427 38 138 238 338 138 38 - - - - 34428 39 139 239 339 - - 239 39 - - 34429 40 140 240 340 140 40 - - 340 40 34430 41 141 241 341 - - - - - - 34431 42 142 242 342 142 42 242 42 - - 34432 43 143 243 343 - - - - - - 34433 44 144 244 344 144 44 - - - - 34434 45 145 245 345 - - 245 45 345 45 34435 46 146 246 346 146 46 - - - - 34436 47 147 247 347 - - - - - - 34437 48 148 248 348 148 48 248 48 - - 34438 49 149 249 349 - - - - - - 34439 50 150 250 350 150 50 - - 350 50 34440 51 151 251 351 - - 251 51 - - 34441 52 152 252 352 152 52 - - - - 34442 53 153 253 353 - - - - - - 34443 54 154 254 354 154 54 254 54 - - 34444 55 155 255 355 - - - - 355 55 34445 56 156 256 356 156 56 - - - - 34446 57 157 257 357 - - 257 57 - - 34447 58 158 258 358 158 58 - - - - 34448 59 159 259 359 - - - - - - 34449 60 160 260 360 160 60 260 60 360 60 34450 61 161 261 361 - - - - - - 34451 62 162 262 362 162 62 - - - - 34452 63 163 263 363 - - 263 63 - - 34453 64 164 264 364 164 64 - - - - 34454 65 165 265 365 - - - - 365 65 34455 66 166 266 366 166 66 266 66 - - 34456 67 167 267 367 - - - - - - 34457 68 168 268 368 168 68 - - - - 34458 69 169 269 369 - - 269 69 - - 34459 70 170 270 370 170 70 - - 370 70 34460 71 171 271 371 - - - - - - 34461 72 172 272 372 172 72 272 72 - - 34462 73 173 273 373 - - - - - - 34463 74 174 274 374 174 74 - - - - 34464 75 175 275 375 - - 275 75 375 75 34465 76 176 276 376 176 76 - - - - 34466 77 177 277 377 - - - - - - 34467 78 178 278 378 178 78 278 78 - - 34468 79 179 279 379 - - - - - - 34469 80 180 280 380 180 80 - - 380 80 34470 81 181 281 381 - - 281 81 - - 34471 82 182 282 382 182 82 - - - - 34472 83 183 283 383 - - - - - - 34473 84 184 284 384 184 84 284 84 - - 34474 85 185 285 385 - - - - 385 85 34475 86 186 286 386 186 86 - - - - 34476 87 187 287 387 - - 287 87 - - 34477 88 188 288 388 188 88 - - - - 34478 89 189 289 389 - - - - - - 34479 90 190 290 390 190 90 290 90 390 90 34480 91 191 291 391 - - - - - - 34481 92 192 292 392 192 92 - - - - 34482 93 193 293 393 - - 293 93 - - 34483 94 194 294 394 194 94 - - - - 34484 95 195 295 395 - - - - 395 95 34485 96 - 296 396 - - - - - - 34486 97 197 - 397 - - - - - - 34487 98 198 298 - - - - - - - 34488 99 - - - - - - - - - 34489 - - - - 100 0 - - - - 34490 - - - - - - 200 0 - - 34491} 34492do_execsql_test joinD-1161 { 34493 SELECT t1.*, t2.*, t3.*, t4.* 34494 FROM t1 FULL JOIN t2 ON t1.b=t2.b 34495 FULL JOIN t3 ON t1.c=t3.c AND t3.y>0 34496 FULL JOIN t4 ON t1.d=t4.d 34497 WHERE t2.x>0 AND t4.z>0 34498 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34499} { 34500 10 110 210 310 110 10 - - 310 10 34501 20 120 220 320 120 20 - - 320 20 34502 30 130 230 330 130 30 230 30 330 30 34503 40 140 240 340 140 40 - - 340 40 34504 50 150 250 350 150 50 - - 350 50 34505 60 160 260 360 160 60 260 60 360 60 34506 70 170 270 370 170 70 - - 370 70 34507 80 180 280 380 180 80 - - 380 80 34508 90 190 290 390 190 90 290 90 390 90 34509} 34510do_execsql_test joinD-1162 { 34511 SELECT t1.*, t2.*, t3.*, t4.* 34512 FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0 34513 FULL JOIN t3 ON t1.c=t3.c 34514 FULL JOIN t4 ON t1.d=t4.d 34515 WHERE t4.z>0 AND t3.y>0 34516 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34517} { 34518 15 115 215 315 - - 215 15 315 15 34519 30 130 230 330 130 30 230 30 330 30 34520 45 145 245 345 - - 245 45 345 45 34521 60 160 260 360 160 60 260 60 360 60 34522 75 175 275 375 - - 275 75 375 75 34523 90 190 290 390 190 90 290 90 390 90 34524} 34525do_execsql_test joinD-1163 { 34526 SELECT t1.*, t2.*, t3.*, t4.* 34527 FROM t1 FULL JOIN t2 ON t1.b=t2.b 34528 FULL JOIN t3 ON t1.c=t3.c 34529 FULL JOIN t4 ON t1.d=t4.d AND t4.z>0 34530 WHERE t2.x>0 AND t3.y>0 34531 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34532} { 34533 6 106 206 306 106 6 206 6 - - 34534 12 112 212 312 112 12 212 12 - - 34535 18 118 218 318 118 18 218 18 - - 34536 24 124 224 324 124 24 224 24 - - 34537 30 130 230 330 130 30 230 30 330 30 34538 36 136 236 336 136 36 236 36 - - 34539 42 142 242 342 142 42 242 42 - - 34540 48 148 248 348 148 48 248 48 - - 34541 54 154 254 354 154 54 254 54 - - 34542 60 160 260 360 160 60 260 60 360 60 34543 66 166 266 366 166 66 266 66 - - 34544 72 172 272 372 172 72 272 72 - - 34545 78 178 278 378 178 78 278 78 - - 34546 84 184 284 384 184 84 284 84 - - 34547 90 190 290 390 190 90 290 90 390 90 34548} 34549do_execsql_test joinD-1164 { 34550 SELECT t1.*, t2.*, t3.*, t4.* 34551 FROM t1 FULL JOIN t2 ON t1.b=t2.b 34552 FULL JOIN t3 ON t1.c=t3.c 34553 FULL JOIN t4 ON t1.d=t4.d 34554 WHERE t2.x>0 AND t3.y>0 AND t4.z>0 34555 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34556} { 34557 30 130 230 330 130 30 230 30 330 30 34558 60 160 260 360 160 60 260 60 360 60 34559 90 190 290 390 190 90 290 90 390 90 34560} 34561do_execsql_test joinD-1165 { 34562 SELECT t1.*, t2.*, t3.*, t4.* 34563 FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0 34564 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 34565 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 34566 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34567} { 34568 0 100 200 300 - - - - - - 34569 1 101 201 301 - - - - - - 34570 2 102 202 302 102 2 - - - - 34571 3 103 203 303 - - 203 3 - - 34572 4 104 204 304 104 4 - - - - 34573 5 105 205 305 - - - - 305 5 34574 6 106 206 306 106 6 206 6 - - 34575 7 107 207 307 - - - - - - 34576 8 108 208 308 108 8 - - - - 34577 9 109 209 309 - - 209 9 - - 34578 10 110 210 310 110 10 - - 310 10 34579 11 111 211 311 - - - - - - 34580 12 112 212 312 112 12 212 12 - - 34581 13 113 213 313 - - - - - - 34582 14 114 214 314 114 14 - - - - 34583 15 115 215 315 - - 215 15 315 15 34584 16 116 216 316 116 16 - - - - 34585 17 117 217 317 - - - - - - 34586 18 118 218 318 118 18 218 18 - - 34587 19 119 219 319 - - - - - - 34588 20 120 220 320 120 20 - - 320 20 34589 21 121 221 321 - - 221 21 - - 34590 22 122 222 322 122 22 - - - - 34591 23 123 223 323 - - - - - - 34592 24 124 224 324 124 24 224 24 - - 34593 25 125 225 325 - - - - 325 25 34594 26 126 226 326 126 26 - - - - 34595 27 127 227 327 - - 227 27 - - 34596 28 128 228 328 128 28 - - - - 34597 29 129 229 329 - - - - - - 34598 30 130 230 330 130 30 230 30 330 30 34599 31 131 231 331 - - - - - - 34600 32 132 232 332 132 32 - - - - 34601 33 133 233 333 - - 233 33 - - 34602 34 134 234 334 134 34 - - - - 34603 35 135 235 335 - - - - 335 35 34604 36 136 236 336 136 36 236 36 - - 34605 37 137 237 337 - - - - - - 34606 38 138 238 338 138 38 - - - - 34607 39 139 239 339 - - 239 39 - - 34608 40 140 240 340 140 40 - - 340 40 34609 41 141 241 341 - - - - - - 34610 42 142 242 342 142 42 242 42 - - 34611 43 143 243 343 - - - - - - 34612 44 144 244 344 144 44 - - - - 34613 45 145 245 345 - - 245 45 345 45 34614 46 146 246 346 146 46 - - - - 34615 47 147 247 347 - - - - - - 34616 48 148 248 348 148 48 248 48 - - 34617 49 149 249 349 - - - - - - 34618 50 150 250 350 150 50 - - 350 50 34619 51 151 251 351 - - 251 51 - - 34620 52 152 252 352 152 52 - - - - 34621 53 153 253 353 - - - - - - 34622 54 154 254 354 154 54 254 54 - - 34623 55 155 255 355 - - - - 355 55 34624 56 156 256 356 156 56 - - - - 34625 57 157 257 357 - - 257 57 - - 34626 58 158 258 358 158 58 - - - - 34627 59 159 259 359 - - - - - - 34628 60 160 260 360 160 60 260 60 360 60 34629 61 161 261 361 - - - - - - 34630 62 162 262 362 162 62 - - - - 34631 63 163 263 363 - - 263 63 - - 34632 64 164 264 364 164 64 - - - - 34633 65 165 265 365 - - - - 365 65 34634 66 166 266 366 166 66 266 66 - - 34635 67 167 267 367 - - - - - - 34636 68 168 268 368 168 68 - - - - 34637 69 169 269 369 - - 269 69 - - 34638 70 170 270 370 170 70 - - 370 70 34639 71 171 271 371 - - - - - - 34640 72 172 272 372 172 72 272 72 - - 34641 73 173 273 373 - - - - - - 34642 74 174 274 374 174 74 - - - - 34643 75 175 275 375 - - 275 75 375 75 34644 76 176 276 376 176 76 - - - - 34645 77 177 277 377 - - - - - - 34646 78 178 278 378 178 78 278 78 - - 34647 79 179 279 379 - - - - - - 34648 80 180 280 380 180 80 - - 380 80 34649 81 181 281 381 - - 281 81 - - 34650 82 182 282 382 182 82 - - - - 34651 83 183 283 383 - - - - - - 34652 84 184 284 384 184 84 284 84 - - 34653 85 185 285 385 - - - - 385 85 34654 86 186 286 386 186 86 - - - - 34655 87 187 287 387 - - 287 87 - - 34656 88 188 288 388 188 88 - - - - 34657 89 189 289 389 - - - - - - 34658 90 190 290 390 190 90 290 90 390 90 34659 91 191 291 391 - - - - - - 34660 92 192 292 392 192 92 - - - - 34661 93 193 293 393 - - 293 93 - - 34662 94 194 294 394 194 94 - - - - 34663 95 195 295 395 - - - - 395 95 34664 96 - 296 396 - - - - - - 34665 97 197 - 397 - - - - - - 34666 98 198 298 - - - - - - - 34667 99 - - - - - - - - - 34668 - - - - 100 0 - - - - 34669 - - - - - - 200 0 - - 34670 - - - - - - - - 300 0 34671} 34672do_execsql_test joinD-1166 { 34673 SELECT t1.*, t2.*, t3.*, t4.* 34674 FROM t1 FULL JOIN t2 ON t2.x>0 34675 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 34676 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 34677 WHERE t1.b = t2.b 34678 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34679} { 34680 2 102 202 302 102 2 - - - - 34681 4 104 204 304 104 4 - - - - 34682 6 106 206 306 106 6 206 6 - - 34683 8 108 208 308 108 8 - - - - 34684 10 110 210 310 110 10 - - 310 10 34685 12 112 212 312 112 12 212 12 - - 34686 14 114 214 314 114 14 - - - - 34687 16 116 216 316 116 16 - - - - 34688 18 118 218 318 118 18 218 18 - - 34689 20 120 220 320 120 20 - - 320 20 34690 22 122 222 322 122 22 - - - - 34691 24 124 224 324 124 24 224 24 - - 34692 26 126 226 326 126 26 - - - - 34693 28 128 228 328 128 28 - - - - 34694 30 130 230 330 130 30 230 30 330 30 34695 32 132 232 332 132 32 - - - - 34696 34 134 234 334 134 34 - - - - 34697 36 136 236 336 136 36 236 36 - - 34698 38 138 238 338 138 38 - - - - 34699 40 140 240 340 140 40 - - 340 40 34700 42 142 242 342 142 42 242 42 - - 34701 44 144 244 344 144 44 - - - - 34702 46 146 246 346 146 46 - - - - 34703 48 148 248 348 148 48 248 48 - - 34704 50 150 250 350 150 50 - - 350 50 34705 52 152 252 352 152 52 - - - - 34706 54 154 254 354 154 54 254 54 - - 34707 56 156 256 356 156 56 - - - - 34708 58 158 258 358 158 58 - - - - 34709 60 160 260 360 160 60 260 60 360 60 34710 62 162 262 362 162 62 - - - - 34711 64 164 264 364 164 64 - - - - 34712 66 166 266 366 166 66 266 66 - - 34713 68 168 268 368 168 68 - - - - 34714 70 170 270 370 170 70 - - 370 70 34715 72 172 272 372 172 72 272 72 - - 34716 74 174 274 374 174 74 - - - - 34717 76 176 276 376 176 76 - - - - 34718 78 178 278 378 178 78 278 78 - - 34719 80 180 280 380 180 80 - - 380 80 34720 82 182 282 382 182 82 - - - - 34721 84 184 284 384 184 84 284 84 - - 34722 86 186 286 386 186 86 - - - - 34723 88 188 288 388 188 88 - - - - 34724 90 190 290 390 190 90 290 90 390 90 34725 92 192 292 392 192 92 - - - - 34726 94 194 294 394 194 94 - - - - 34727} 34728do_execsql_test joinD-1167 { 34729 SELECT t1.*, t2.*, t3.*, t4.* 34730 FROM t1 FULL JOIN t2 ON t2.x>0 34731 FULL JOIN t3 ON t3.y>0 34732 FULL JOIN t4 ON t1.d = t4.d AND t4.z>0 34733 WHERE t1.b = t2.b AND t1.c = t3.c 34734 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34735} { 34736 6 106 206 306 106 6 206 6 - - 34737 12 112 212 312 112 12 212 12 - - 34738 18 118 218 318 118 18 218 18 - - 34739 24 124 224 324 124 24 224 24 - - 34740 30 130 230 330 130 30 230 30 330 30 34741 36 136 236 336 136 36 236 36 - - 34742 42 142 242 342 142 42 242 42 - - 34743 48 148 248 348 148 48 248 48 - - 34744 54 154 254 354 154 54 254 54 - - 34745 60 160 260 360 160 60 260 60 360 60 34746 66 166 266 366 166 66 266 66 - - 34747 72 172 272 372 172 72 272 72 - - 34748 78 178 278 378 178 78 278 78 - - 34749 84 184 284 384 184 84 284 84 - - 34750 90 190 290 390 190 90 290 90 390 90 34751} 34752do_execsql_test joinD-1168 { 34753 SELECT t1.*, t2.*, t3.*, t4.* 34754 FROM t1 FULL JOIN t2 ON t2.x>0 34755 FULL JOIN t3 ON t1.c = t3.c AND t3.y>0 34756 FULL JOIN t4 ON t4.z>0 34757 WHERE t1.b = t2.b AND t1.d = t4.d 34758 ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0); 34759} { 34760 10 110 210 310 110 10 - - 310 10 34761 20 120 220 320 120 20 - - 320 20 34762 30 130 230 330 130 30 230 30 330 30 34763 40 140 240 340 140 40 - - 340 40 34764 50 150 250 350 150 50 - - 350 50 34765 60 160 260 360 160 60 260 60 360 60 34766 70 170 270 370 170 70 - - 370 70 34767 80 180 280 380 180 80 - - 380 80 34768 90 190 290 390 190 90 290 90 390 90 34769} 34770############################################################################# 34771# The following are extra tests added manually 34772do_execsql_test joinD-extra-1000 { 34773 CREATE VIEW v1 AS 34774 SELECT * 34775 FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0 34776 RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0 34777 LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0; 34778 CREATE TRIGGER v1r1 INSTEAD OF UPDATE OF c ON v1 BEGIN 34779 UPDATE t1 SET c=new.c WHERE (a,b,c,d) IS (old.a,old.b,old.c,old.d); 34780 UPDATE t3 SET c=new.c WHERE (c,y) IS (old.c,old.y); 34781 END; 34782 SELECT * FROM v1 WHERE y BETWEEN 30 AND 40 ORDER BY y; 34783} { 34784 30 130 230 330 130 30 230 30 330 30 34785 - - - - - - 233 33 - - 34786 36 136 236 336 136 36 236 36 - - 34787 - - - - - - 239 39 - - 34788} 34789do_execsql_test joinD-extra-1010 { 34790 BEGIN; 34791 UPDATE v1 SET c=c+1000 WHERE y BETWEEN 30 and 40; 34792 SELECT * FROM v1 WHERE y BETWEEN 30 AND 40 ORDER BY y; 34793 ROLLBACK; 34794} { 34795 30 130 1230 330 130 30 1230 30 330 30 34796 - - - - - - 233 33 - - 34797 36 136 1236 336 136 36 1236 36 - - 34798 - - - - - - 239 39 - - 34799} 34800finish_test 34801############################################################################# 34802# This is the TCL script used to generate the psql script that generated 34803# the data above. 34804# 34805# puts " 34806# \\pset border off 34807# \\pset tuples_only on 34808# \\pset null - 34809# 34810# DROP TABLE IF EXISTS t1; 34811# DROP TABLE IF EXISTS t2; 34812# DROP TABLE IF EXISTS t3; 34813# DROP TABLE IF EXISTS t4; 34814# CREATE TABLE t1(a INT, b INT, c INT, d INT); 34815# WITH RECURSIVE c(x) AS (VALUES(0) UNION ALL SELECT x+1 FROM c WHERE x<95) 34816# INSERT INTO t1(a,b,c,d) SELECT x, x+100, x+200, x+300 FROM c; 34817# CREATE TABLE t2(b INT, x INT); 34818# INSERT INTO t2(b,x) SELECT b, a FROM t1 WHERE a%2=0; 34819# CREATE INDEX t2b ON t2(b); 34820# CREATE TABLE t3(c INT, y INT); 34821# INSERT INTO t3(c,y) SELECT c, a FROM t1 WHERE a%3=0; 34822# CREATE INDEX t3c ON t3(c); 34823# CREATE TABLE t4(d INT, z INT); 34824# INSERT INTO t4(d,z) SELECT d, a FROM t1 WHERE a%5=0; 34825# CREATE INDEX t4d ON t4(d); 34826# INSERT INTO t1(a,b,c,d) VALUES 34827# (96,NULL,296,396), 34828# (97,197,NULL,397), 34829# (98,198,298,NULL), 34830# (99,NULL,NULL,NULL); 34831# " 34832# 34833# proc echo {prefix txt} { 34834# regsub -all {\n} $txt \n$prefix txt 34835# puts "$prefix$txt" 34836# } 34837# 34838# set n 0 34839# foreach j1 {INNER LEFT RIGHT FULL} { 34840# foreach j2 {INNER LEFT RIGHT FULL} { 34841# foreach j3 {INNER LEFT RIGHT FULL} { 34842# 34843# incr n 34844# set q1 "" 34845# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34846# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" 34847# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" 34848# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 34849# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34850# 34851# echo "\\qecho " "do_execsql_test joinB-$n \{" 34852# echo "\\qecho X " $q1 34853# echo "\\qecho " "\} \{" 34854# puts $q1 34855# echo "\\qecho " "\}" 34856# 34857# if {$j1!="FULL"} { 34858# incr n 34859# set q1 "" 34860# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34861# append q1 " FROM t1 $j1 JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0\n" 34862# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" 34863# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 34864# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34865# 34866# echo "\\qecho " "do_execsql_test joinB-$n \{" 34867# echo "\\qecho X " $q1 34868# echo "\\qecho " "\} \{" 34869# puts $q1 34870# echo "\\qecho " "\}" 34871# } 34872# 34873# incr n 34874# set q1 "" 34875# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34876# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n" 34877# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" 34878# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 34879# append q1 " WHERE t2.x>0\n" 34880# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34881# 34882# echo "\\qecho " "do_execsql_test joinB-$n \{" 34883# echo "\\qecho X " $q1 34884# echo "\\qecho " "\} \{" 34885# puts $q1 34886# echo "\\qecho " "\}" 34887# 34888# incr n 34889# set q1 "" 34890# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34891# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n" 34892# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" 34893# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 34894# append q1 " WHERE (t2.x>0 OR t2.x IS NULL)\n" 34895# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34896# 34897# echo "\\qecho " "do_execsql_test joinB-$n \{" 34898# echo "\\qecho X " $q1 34899# echo "\\qecho " "\} \{" 34900# puts $q1 34901# echo "\\qecho " "\}" 34902# 34903# incr n 34904# set q1 "" 34905# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34906# append q1 " FROM t1 $j1 JOIN t2 ON true\n" 34907# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" 34908# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 34909# append q1 " WHERE t1.b=t2.b AND t2.x>0\n" 34910# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34911# 34912# echo "\\qecho " "do_execsql_test joinB-$n \{" 34913# echo "\\qecho X " $q1 34914# echo "\\qecho " "\} \{" 34915# puts $q1 34916# echo "\\qecho " "\}" 34917# 34918# incr n 34919# set q1 "" 34920# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34921# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" 34922# append q1 " $j2 JOIN t3 ON t1.c=t3.c\n" 34923# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 34924# append q1 " WHERE t3.y>0\n" 34925# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34926# 34927# echo "\\qecho " "do_execsql_test joinB-$n \{" 34928# echo "\\qecho X " $q1 34929# echo "\\qecho " "\} \{" 34930# puts $q1 34931# echo "\\qecho " "\}" 34932# 34933# incr n 34934# set q1 "" 34935# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34936# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" 34937# append q1 " $j2 JOIN t3 ON t1.c=t3.c\n" 34938# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 34939# append q1 " WHERE t3.y>0 OR t3.y IS NULL\n" 34940# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34941# 34942# echo "\\qecho " "do_execsql_test joinB-$n \{" 34943# echo "\\qecho X " $q1 34944# echo "\\qecho " "\} \{" 34945# puts $q1 34946# echo "\\qecho " "\}" 34947# 34948# incr n 34949# set q1 "" 34950# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34951# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" 34952# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" 34953# append q1 " $j3 JOIN t4 ON t1.d=t4.d\n" 34954# append q1 " WHERE t4.z>0\n" 34955# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34956# 34957# echo "\\qecho " "do_execsql_test joinB-$n \{" 34958# echo "\\qecho X " $q1 34959# echo "\\qecho " "\} \{" 34960# puts $q1 34961# echo "\\qecho " "\}" 34962# 34963# incr n 34964# set q1 "" 34965# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34966# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" 34967# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" 34968# append q1 " $j3 JOIN t4 ON t1.d=t4.d\n" 34969# append q1 " WHERE t4.z IS NULL OR t4.z>0\n" 34970# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34971# 34972# echo "\\qecho " "do_execsql_test joinB-$n \{" 34973# echo "\\qecho X " $q1 34974# echo "\\qecho " "\} \{" 34975# puts $q1 34976# echo "\\qecho " "\}" 34977# 34978# incr n 34979# set q1 "" 34980# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34981# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n" 34982# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" 34983# append q1 " $j3 JOIN t4 ON t1.d=t4.d\n" 34984# append q1 " WHERE t2.x>0 AND t4.z>0\n" 34985# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 34986# 34987# echo "\\qecho " "do_execsql_test joinB-$n \{" 34988# echo "\\qecho X " $q1 34989# echo "\\qecho " "\} \{" 34990# puts $q1 34991# echo "\\qecho " "\}" 34992# 34993# incr n 34994# set q1 "" 34995# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 34996# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" 34997# append q1 " $j2 JOIN t3 ON t1.c=t3.c\n" 34998# append q1 " $j3 JOIN t4 ON t1.d=t4.d\n" 34999# append q1 " WHERE t4.z>0 AND t3.y>0\n" 35000# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 35001# 35002# echo "\\qecho " "do_execsql_test joinB-$n \{" 35003# echo "\\qecho X " $q1 35004# echo "\\qecho " "\} \{" 35005# puts $q1 35006# echo "\\qecho " "\}" 35007# 35008# incr n 35009# set q1 "" 35010# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 35011# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n" 35012# append q1 " $j2 JOIN t3 ON t1.c=t3.c\n" 35013# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 35014# append q1 " WHERE t2.x>0 AND t3.y>0\n" 35015# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 35016# 35017# echo "\\qecho " "do_execsql_test joinB-$n \{" 35018# echo "\\qecho X " $q1 35019# echo "\\qecho " "\} \{" 35020# puts $q1 35021# echo "\\qecho " "\}" 35022# 35023# incr n 35024# set q1 "" 35025# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 35026# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n" 35027# append q1 " $j2 JOIN t3 ON t1.c=t3.c\n" 35028# append q1 " $j3 JOIN t4 ON t1.d=t4.d\n" 35029# append q1 " WHERE t2.x>0 AND t3.y>0 AND t4.z>0\n" 35030# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 35031# 35032# echo "\\qecho " "do_execsql_test joinB-$n \{" 35033# echo "\\qecho X " $q1 35034# echo "\\qecho " "\} \{" 35035# puts $q1 35036# echo "\\qecho " "\}" 35037# 35038# set op1 [expr {$j1=="FULL"?"=":"IS NOT DISTINCT FROM"}] 35039# set op2 [expr {$j2=="FULL"?"=":"IS NOT DISTINCT FROM"}] 35040# set op3 [expr {$j3=="FULL"?"=":"IS NOT DISTINCT FROM"}] 35041# incr n 35042# set q1 "" 35043# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 35044# append q1 " FROM t1 $j1 JOIN t2 ON t1.b $op1 t2.b AND t2.x>0\n" 35045# append q1 " $j2 JOIN t3 ON t1.c $op2 t3.c AND t3.y>0\n" 35046# append q1 " $j3 JOIN t4 ON t1.d $op3 t4.d AND t4.z>0\n" 35047# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 35048# 35049# echo "\\qecho " "do_execsql_test joinB-$n \{" 35050# echo "\\qecho X " $q1 35051# echo "\\qecho " "\} \{" 35052# puts $q1 35053# echo "\\qecho " "\}" 35054# 35055# incr n 35056# set q1 "" 35057# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 35058# append q1 " FROM t1 $j1 JOIN t2 ON t2.x>0\n" 35059# append q1 " $j2 JOIN t3 ON t1.c $op2 t3.c AND t3.y>0\n" 35060# append q1 " $j3 JOIN t4 ON t1.d $op3 t4.d AND t4.z>0\n" 35061# append q1 " WHERE t1.b $op1 t2.b\n" 35062# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 35063# 35064# echo "\\qecho " "do_execsql_test joinB-$n \{" 35065# echo "\\qecho X " $q1 35066# echo "\\qecho " "\} \{" 35067# puts $q1 35068# echo "\\qecho " "\}" 35069# 35070# incr n 35071# set q1 "" 35072# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 35073# append q1 " FROM t1 $j1 JOIN t2 ON t2.x>0\n" 35074# append q1 " $j2 JOIN t3 ON t3.y>0\n" 35075# append q1 " $j3 JOIN t4 ON t1.d $op3 t4.d AND t4.z>0\n" 35076# append q1 " WHERE t1.b $op1 t2.b AND t1.c $op2 t3.c\n" 35077# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 35078# 35079# echo "\\qecho " "do_execsql_test joinB-$n \{" 35080# echo "\\qecho X " $q1 35081# echo "\\qecho " "\} \{" 35082# puts $q1 35083# echo "\\qecho " "\}" 35084# 35085# incr n 35086# set q1 "" 35087# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 35088# append q1 " FROM t1 $j1 JOIN t2 ON t2.x>0\n" 35089# append q1 " $j2 JOIN t3 ON t1.c $op2 t3.c AND t3.y>0\n" 35090# append q1 " $j3 JOIN t4 ON t4.z>0\n" 35091# append q1 " WHERE t1.b $op1 t2.b AND t1.d $op3 t4.d\n" 35092# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 35093# 35094# echo "\\qecho " "do_execsql_test joinB-$n \{" 35095# echo "\\qecho X " $q1 35096# echo "\\qecho " "\} \{" 35097# puts $q1 35098# echo "\\qecho " "\}" 35099# 35100# if {$j1!="FULL"} { 35101# incr n 35102# set q1 "" 35103# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 35104# append q1 " FROM t1 $j1 JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0\n" 35105# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n" 35106# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 35107# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 35108# 35109# echo "\\qecho " "do_execsql_test joinB-$n \{" 35110# echo "\\qecho X " $q1 35111# echo "\\qecho " "\} \{" 35112# puts $q1 35113# echo "\\qecho " "\}" 35114# } 35115# 35116# if {$j2!="FULL"} { 35117# incr n 35118# set q1 "" 35119# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n" 35120# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n" 35121# append q1 " $j2 JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0\n" 35122# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n" 35123# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);" 35124# 35125# echo "\\qecho " "do_execsql_test joinB-$n \{" 35126# echo "\\qecho X " $q1 35127# echo "\\qecho " "\} \{" 35128# puts $q1 35129# echo "\\qecho " "\}" 35130# } 35131# } 35132# } 35133# } 35134# 35135