AryaWu/sqlite
0
1# 2022-04-192#3# The author disclaims copyright to this source code. In place of4# a legal notice, here is a blessing:5#6# May you do good and not evil.7# May you find forgiveness for yourself and forgive others.8# May you share freely, never taking more than you give.9#10#***********************************************************************11#12# This file implements tests for JOINs.13#14# The test case output is all generated by PostgreSQL 14. This test module15# was created as follows:16#17# 1. Run a TCL script (included at the bottom of this file) that18# generates an input script for "psql" that will run man19# diverse tests on joins.20#21# 2. Run the script from step (1) through psql and collect the22# output.23#24# 3. Make a few minor global search-and-replace operations to convert25# the psql output into a form suitable for this test module.26#27# 4. Add this header, and the script content at the footer.28#29set testdir [file dirname $argv0]30source $testdir/tester.tcl31db nullvalue -32db eval {33 DROP TABLE IF EXISTS t1;34 DROP TABLE IF EXISTS t2;35 DROP TABLE IF EXISTS t3;36 DROP TABLE IF EXISTS t4;37 DROP TABLE IF EXISTS t5;38 CREATE TABLE t1(a INT, b INT, c INT);39 CREATE TABLE t2(a INT, b INT, d INT);40 CREATE TABLE t3(a INT, b INT, e INT);41 CREATE TABLE t4(a INT, b INT, f INT);42 CREATE TABLE t5(a INT, b INT, g INT);43 INSERT INTO t1 VALUES(11,21,31),(12,22,32),(15,25,35),(17,27,37);44 INSERT INTO t2 VALUES(12,22,32),(13,23,33),(15,25,35),(18,28,38),45 (NULL,NULL,36);46 INSERT INTO t4 VALUES(11,21,31),(13,23,33),(15,25,35),(19,29,39);47 INSERT INTO t3 SELECT * FROM t1 UNION SELECT * FROM t2 UNION SELECT * FROM t4;48 INSERT INTO t5 SELECT * FROM t3 WHERE a>=15;49}50do_execsql_test joinC-1 {51 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a52 FROM t1 INNER JOIN (53 t2 INNER JOIN (54 t3 INNER JOIN (55 t4 INNER JOIN t5 USING(a)56 ) USING(a)57 ) USING(a)58 ) USING(a)59 ORDER BY 1 NULLS FIRST;60} {61 15 15 15 15 15 1562 63}64do_execsql_test joinC-2 {65 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a66 FROM t1 INNER JOIN (67 t2 INNER JOIN (68 t3 INNER JOIN (69 t4 LEFT JOIN t5 USING(a)70 ) USING(a)71 ) USING(a)72 ) USING(a)73 ORDER BY 1 NULLS FIRST;74} {75 15 15 15 15 15 1576 77}78do_execsql_test joinC-3 {79 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a80 FROM t1 INNER JOIN (81 t2 INNER JOIN (82 t3 INNER JOIN (83 t4 RIGHT JOIN t5 USING(a)84 ) USING(a)85 ) USING(a)86 ) USING(a)87 ORDER BY 1 NULLS FIRST;88} {89 15 15 15 15 15 1590 91}92do_execsql_test joinC-4 {93 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a94 FROM t1 INNER JOIN (95 t2 INNER JOIN (96 t3 INNER JOIN (97 t4 FULL JOIN t5 USING(a)98 ) USING(a)99 ) USING(a)100 ) USING(a)101 ORDER BY 1 NULLS FIRST;102} {103 15 15 15 15 15 15104 105}106do_execsql_test joinC-5 {107 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a108 FROM t1 INNER JOIN (109 t2 INNER JOIN (110 t3 LEFT JOIN (111 t4 INNER JOIN t5 USING(a)112 ) USING(a)113 ) USING(a)114 ) USING(a)115 ORDER BY 1 NULLS FIRST;116} {117 12 12 12 12 - -118 15 15 15 15 15 15119 120}121do_execsql_test joinC-6 {122 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a123 FROM t1 INNER JOIN (124 t2 INNER JOIN (125 t3 LEFT JOIN (126 t4 LEFT JOIN t5 USING(a)127 ) USING(a)128 ) USING(a)129 ) USING(a)130 ORDER BY 1 NULLS FIRST;131} {132 12 12 12 12 - -133 15 15 15 15 15 15134 135}136do_execsql_test joinC-7 {137 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a138 FROM t1 INNER JOIN (139 t2 INNER JOIN (140 t3 LEFT JOIN (141 t4 RIGHT JOIN t5 USING(a)142 ) USING(a)143 ) USING(a)144 ) USING(a)145 ORDER BY 1 NULLS FIRST;146} {147 12 12 12 12 - -148 15 15 15 15 15 15149 150}151do_execsql_test joinC-8 {152 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a153 FROM t1 INNER JOIN (154 t2 INNER JOIN (155 t3 LEFT JOIN (156 t4 FULL JOIN t5 USING(a)157 ) USING(a)158 ) USING(a)159 ) USING(a)160 ORDER BY 1 NULLS FIRST;161} {162 12 12 12 12 - -163 15 15 15 15 15 15164 165}166do_execsql_test joinC-9 {167 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a168 FROM t1 INNER JOIN (169 t2 INNER JOIN (170 t3 RIGHT JOIN (171 t4 INNER JOIN t5 USING(a)172 ) USING(a)173 ) USING(a)174 ) USING(a)175 ORDER BY 1 NULLS FIRST;176} {177 15 15 15 15 15 15178 179}180do_execsql_test joinC-10 {181 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a182 FROM t1 INNER JOIN (183 t2 INNER JOIN (184 t3 RIGHT JOIN (185 t4 LEFT JOIN t5 USING(a)186 ) USING(a)187 ) USING(a)188 ) USING(a)189 ORDER BY 1 NULLS FIRST;190} {191 15 15 15 15 15 15192 193}194do_execsql_test joinC-11 {195 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a196 FROM t1 INNER JOIN (197 t2 INNER JOIN (198 t3 RIGHT JOIN (199 t4 RIGHT JOIN t5 USING(a)200 ) USING(a)201 ) USING(a)202 ) USING(a)203 ORDER BY 1 NULLS FIRST;204} {205 15 15 15 15 15 15206 207}208do_execsql_test joinC-12 {209 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a210 FROM t1 INNER JOIN (211 t2 INNER JOIN (212 t3 RIGHT JOIN (213 t4 FULL JOIN t5 USING(a)214 ) USING(a)215 ) USING(a)216 ) USING(a)217 ORDER BY 1 NULLS FIRST;218} {219 15 15 15 15 15 15220 221}222do_execsql_test joinC-13 {223 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a224 FROM t1 INNER JOIN (225 t2 INNER JOIN (226 t3 FULL JOIN (227 t4 INNER JOIN t5 USING(a)228 ) USING(a)229 ) USING(a)230 ) USING(a)231 ORDER BY 1 NULLS FIRST;232} {233 12 12 12 12 - -234 15 15 15 15 15 15235 236}237do_execsql_test joinC-14 {238 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a239 FROM t1 INNER JOIN (240 t2 INNER JOIN (241 t3 FULL JOIN (242 t4 LEFT JOIN t5 USING(a)243 ) USING(a)244 ) USING(a)245 ) USING(a)246 ORDER BY 1 NULLS FIRST;247} {248 12 12 12 12 - -249 15 15 15 15 15 15250 251}252do_execsql_test joinC-15 {253 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a254 FROM t1 INNER JOIN (255 t2 INNER JOIN (256 t3 FULL JOIN (257 t4 RIGHT JOIN t5 USING(a)258 ) USING(a)259 ) USING(a)260 ) USING(a)261 ORDER BY 1 NULLS FIRST;262} {263 12 12 12 12 - -264 15 15 15 15 15 15265 266}267do_execsql_test joinC-16 {268 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a269 FROM t1 INNER JOIN (270 t2 INNER JOIN (271 t3 FULL JOIN (272 t4 FULL JOIN t5 USING(a)273 ) USING(a)274 ) USING(a)275 ) USING(a)276 ORDER BY 1 NULLS FIRST;277} {278 12 12 12 12 - -279 15 15 15 15 15 15280 281}282do_execsql_test joinC-17 {283 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a284 FROM t1 INNER JOIN (285 t2 LEFT JOIN (286 t3 INNER JOIN (287 t4 INNER JOIN t5 USING(a)288 ) USING(a)289 ) USING(a)290 ) USING(a)291 ORDER BY 1 NULLS FIRST;292} {293 12 12 12 - - -294 15 15 15 15 15 15295 296}297do_execsql_test joinC-18 {298 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a299 FROM t1 INNER JOIN (300 t2 LEFT JOIN (301 t3 INNER JOIN (302 t4 LEFT JOIN t5 USING(a)303 ) USING(a)304 ) USING(a)305 ) USING(a)306 ORDER BY 1 NULLS FIRST;307} {308 12 12 12 - - -309 15 15 15 15 15 15310 311}312do_execsql_test joinC-19 {313 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a314 FROM t1 INNER JOIN (315 t2 LEFT JOIN (316 t3 INNER JOIN (317 t4 RIGHT JOIN t5 USING(a)318 ) USING(a)319 ) USING(a)320 ) USING(a)321 ORDER BY 1 NULLS FIRST;322} {323 12 12 12 - - -324 15 15 15 15 15 15325 326}327do_execsql_test joinC-20 {328 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a329 FROM t1 INNER JOIN (330 t2 LEFT JOIN (331 t3 INNER JOIN (332 t4 FULL JOIN t5 USING(a)333 ) USING(a)334 ) USING(a)335 ) USING(a)336 ORDER BY 1 NULLS FIRST;337} {338 12 12 12 - - -339 15 15 15 15 15 15340 341}342do_execsql_test joinC-21 {343 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a344 FROM t1 INNER JOIN (345 t2 LEFT JOIN (346 t3 LEFT JOIN (347 t4 INNER JOIN t5 USING(a)348 ) USING(a)349 ) USING(a)350 ) USING(a)351 ORDER BY 1 NULLS FIRST;352} {353 12 12 12 12 - -354 15 15 15 15 15 15355 356}357do_execsql_test joinC-22 {358 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a359 FROM t1 INNER JOIN (360 t2 LEFT JOIN (361 t3 LEFT JOIN (362 t4 LEFT JOIN t5 USING(a)363 ) USING(a)364 ) USING(a)365 ) USING(a)366 ORDER BY 1 NULLS FIRST;367} {368 12 12 12 12 - -369 15 15 15 15 15 15370 371}372do_execsql_test joinC-23 {373 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a374 FROM t1 INNER JOIN (375 t2 LEFT JOIN (376 t3 LEFT JOIN (377 t4 RIGHT JOIN t5 USING(a)378 ) USING(a)379 ) USING(a)380 ) USING(a)381 ORDER BY 1 NULLS FIRST;382} {383 12 12 12 12 - -384 15 15 15 15 15 15385 386}387do_execsql_test joinC-24 {388 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a389 FROM t1 INNER JOIN (390 t2 LEFT JOIN (391 t3 LEFT JOIN (392 t4 FULL JOIN t5 USING(a)393 ) USING(a)394 ) USING(a)395 ) USING(a)396 ORDER BY 1 NULLS FIRST;397} {398 12 12 12 12 - -399 15 15 15 15 15 15400 401}402do_execsql_test joinC-25 {403 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a404 FROM t1 INNER JOIN (405 t2 LEFT JOIN (406 t3 RIGHT JOIN (407 t4 INNER JOIN t5 USING(a)408 ) USING(a)409 ) USING(a)410 ) USING(a)411 ORDER BY 1 NULLS FIRST;412} {413 12 12 12 - - -414 15 15 15 15 15 15415 416}417do_execsql_test joinC-26 {418 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a419 FROM t1 INNER JOIN (420 t2 LEFT JOIN (421 t3 RIGHT JOIN (422 t4 LEFT JOIN t5 USING(a)423 ) USING(a)424 ) USING(a)425 ) USING(a)426 ORDER BY 1 NULLS FIRST;427} {428 12 12 12 - - -429 15 15 15 15 15 15430 431}432do_execsql_test joinC-27 {433 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a434 FROM t1 INNER JOIN (435 t2 LEFT JOIN (436 t3 RIGHT JOIN (437 t4 RIGHT JOIN t5 USING(a)438 ) USING(a)439 ) USING(a)440 ) USING(a)441 ORDER BY 1 NULLS FIRST;442} {443 12 12 12 - - -444 15 15 15 15 15 15445 446}447do_execsql_test joinC-28 {448 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a449 FROM t1 INNER JOIN (450 t2 LEFT JOIN (451 t3 RIGHT JOIN (452 t4 FULL JOIN t5 USING(a)453 ) USING(a)454 ) USING(a)455 ) USING(a)456 ORDER BY 1 NULLS FIRST;457} {458 12 12 12 - - -459 15 15 15 15 15 15460 461}462do_execsql_test joinC-29 {463 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a464 FROM t1 INNER JOIN (465 t2 LEFT JOIN (466 t3 FULL JOIN (467 t4 INNER JOIN t5 USING(a)468 ) USING(a)469 ) USING(a)470 ) USING(a)471 ORDER BY 1 NULLS FIRST;472} {473 12 12 12 12 - -474 15 15 15 15 15 15475 476}477do_execsql_test joinC-30 {478 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a479 FROM t1 INNER JOIN (480 t2 LEFT JOIN (481 t3 FULL JOIN (482 t4 LEFT JOIN t5 USING(a)483 ) USING(a)484 ) USING(a)485 ) USING(a)486 ORDER BY 1 NULLS FIRST;487} {488 12 12 12 12 - -489 15 15 15 15 15 15490 491}492do_execsql_test joinC-31 {493 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a494 FROM t1 INNER JOIN (495 t2 LEFT JOIN (496 t3 FULL JOIN (497 t4 RIGHT JOIN t5 USING(a)498 ) USING(a)499 ) USING(a)500 ) USING(a)501 ORDER BY 1 NULLS FIRST;502} {503 12 12 12 12 - -504 15 15 15 15 15 15505 506}507do_execsql_test joinC-32 {508 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a509 FROM t1 INNER JOIN (510 t2 LEFT JOIN (511 t3 FULL JOIN (512 t4 FULL JOIN t5 USING(a)513 ) USING(a)514 ) USING(a)515 ) USING(a)516 ORDER BY 1 NULLS FIRST;517} {518 12 12 12 12 - -519 15 15 15 15 15 15520 521}522do_execsql_test joinC-33 {523 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a524 FROM t1 INNER JOIN (525 t2 RIGHT JOIN (526 t3 INNER JOIN (527 t4 INNER JOIN t5 USING(a)528 ) USING(a)529 ) USING(a)530 ) USING(a)531 ORDER BY 1 NULLS FIRST;532} {533 15 15 15 15 15 15534 535}536do_execsql_test joinC-34 {537 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a538 FROM t1 INNER JOIN (539 t2 RIGHT JOIN (540 t3 INNER JOIN (541 t4 LEFT JOIN t5 USING(a)542 ) USING(a)543 ) USING(a)544 ) USING(a)545 ORDER BY 1 NULLS FIRST;546} {547 11 11 - 11 11 -548 15 15 15 15 15 15549 550}551do_execsql_test joinC-35 {552 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a553 FROM t1 INNER JOIN (554 t2 RIGHT JOIN (555 t3 INNER JOIN (556 t4 RIGHT JOIN t5 USING(a)557 ) USING(a)558 ) USING(a)559 ) USING(a)560 ORDER BY 1 NULLS FIRST;561} {562 15 15 15 15 15 15563 17 17 - 17 - 17564 565}566do_execsql_test joinC-36 {567 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a568 FROM t1 INNER JOIN (569 t2 RIGHT JOIN (570 t3 INNER JOIN (571 t4 FULL JOIN t5 USING(a)572 ) USING(a)573 ) USING(a)574 ) USING(a)575 ORDER BY 1 NULLS FIRST;576} {577 11 11 - 11 11 -578 15 15 15 15 15 15579 17 17 - 17 - 17580 581}582do_execsql_test joinC-37 {583 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a584 FROM t1 INNER JOIN (585 t2 RIGHT JOIN (586 t3 LEFT JOIN (587 t4 INNER JOIN t5 USING(a)588 ) USING(a)589 ) USING(a)590 ) USING(a)591 ORDER BY 1 NULLS FIRST;592} {593 11 11 - 11 - -594 12 12 12 12 - -595 15 15 15 15 15 15596 17 17 - 17 - -597 598}599do_execsql_test joinC-38 {600 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a601 FROM t1 INNER JOIN (602 t2 RIGHT JOIN (603 t3 LEFT JOIN (604 t4 LEFT JOIN t5 USING(a)605 ) USING(a)606 ) USING(a)607 ) USING(a)608 ORDER BY 1 NULLS FIRST;609} {610 11 11 - 11 11 -611 12 12 12 12 - -612 15 15 15 15 15 15613 17 17 - 17 - -614 615}616do_execsql_test joinC-39 {617 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a618 FROM t1 INNER JOIN (619 t2 RIGHT JOIN (620 t3 LEFT JOIN (621 t4 RIGHT JOIN t5 USING(a)622 ) USING(a)623 ) USING(a)624 ) USING(a)625 ORDER BY 1 NULLS FIRST;626} {627 11 11 - 11 - -628 12 12 12 12 - -629 15 15 15 15 15 15630 17 17 - 17 - 17631 632}633do_execsql_test joinC-40 {634 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a635 FROM t1 INNER JOIN (636 t2 RIGHT JOIN (637 t3 LEFT JOIN (638 t4 FULL JOIN t5 USING(a)639 ) USING(a)640 ) USING(a)641 ) USING(a)642 ORDER BY 1 NULLS FIRST;643} {644 11 11 - 11 11 -645 12 12 12 12 - -646 15 15 15 15 15 15647 17 17 - 17 - 17648 649}650do_execsql_test joinC-41 {651 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a652 FROM t1 INNER JOIN (653 t2 RIGHT JOIN (654 t3 RIGHT JOIN (655 t4 INNER JOIN t5 USING(a)656 ) USING(a)657 ) USING(a)658 ) USING(a)659 ORDER BY 1 NULLS FIRST;660} {661 15 15 15 15 15 15662 663}664do_execsql_test joinC-42 {665 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a666 FROM t1 INNER JOIN (667 t2 RIGHT JOIN (668 t3 RIGHT JOIN (669 t4 LEFT JOIN t5 USING(a)670 ) USING(a)671 ) USING(a)672 ) USING(a)673 ORDER BY 1 NULLS FIRST;674} {675 11 11 - 11 11 -676 15 15 15 15 15 15677 678}679do_execsql_test joinC-43 {680 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a681 FROM t1 INNER JOIN (682 t2 RIGHT JOIN (683 t3 RIGHT JOIN (684 t4 RIGHT JOIN t5 USING(a)685 ) USING(a)686 ) USING(a)687 ) USING(a)688 ORDER BY 1 NULLS FIRST;689} {690 15 15 15 15 15 15691 17 17 - 17 - 17692 693}694do_execsql_test joinC-44 {695 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a696 FROM t1 INNER JOIN (697 t2 RIGHT JOIN (698 t3 RIGHT JOIN (699 t4 FULL JOIN t5 USING(a)700 ) USING(a)701 ) USING(a)702 ) USING(a)703 ORDER BY 1 NULLS FIRST;704} {705 11 11 - 11 11 -706 15 15 15 15 15 15707 17 17 - 17 - 17708 709}710do_execsql_test joinC-45 {711 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a712 FROM t1 INNER JOIN (713 t2 RIGHT JOIN (714 t3 FULL JOIN (715 t4 INNER JOIN t5 USING(a)716 ) USING(a)717 ) USING(a)718 ) USING(a)719 ORDER BY 1 NULLS FIRST;720} {721 11 11 - 11 - -722 12 12 12 12 - -723 15 15 15 15 15 15724 17 17 - 17 - -725 726}727do_execsql_test joinC-46 {728 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a729 FROM t1 INNER JOIN (730 t2 RIGHT JOIN (731 t3 FULL JOIN (732 t4 LEFT JOIN t5 USING(a)733 ) USING(a)734 ) USING(a)735 ) USING(a)736 ORDER BY 1 NULLS FIRST;737} {738 11 11 - 11 11 -739 12 12 12 12 - -740 15 15 15 15 15 15741 17 17 - 17 - -742 743}744do_execsql_test joinC-47 {745 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a746 FROM t1 INNER JOIN (747 t2 RIGHT JOIN (748 t3 FULL JOIN (749 t4 RIGHT JOIN t5 USING(a)750 ) USING(a)751 ) USING(a)752 ) USING(a)753 ORDER BY 1 NULLS FIRST;754} {755 11 11 - 11 - -756 12 12 12 12 - -757 15 15 15 15 15 15758 17 17 - 17 - 17759 760}761do_execsql_test joinC-48 {762 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a763 FROM t1 INNER JOIN (764 t2 RIGHT JOIN (765 t3 FULL JOIN (766 t4 FULL JOIN t5 USING(a)767 ) USING(a)768 ) USING(a)769 ) USING(a)770 ORDER BY 1 NULLS FIRST;771} {772 11 11 - 11 11 -773 12 12 12 12 - -774 15 15 15 15 15 15775 17 17 - 17 - 17776 777}778do_execsql_test joinC-49 {779 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a780 FROM t1 INNER JOIN (781 t2 FULL JOIN (782 t3 INNER JOIN (783 t4 INNER JOIN t5 USING(a)784 ) USING(a)785 ) USING(a)786 ) USING(a)787 ORDER BY 1 NULLS FIRST;788} {789 12 12 12 - - -790 15 15 15 15 15 15791 792}793do_execsql_test joinC-50 {794 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a795 FROM t1 INNER JOIN (796 t2 FULL JOIN (797 t3 INNER JOIN (798 t4 LEFT JOIN t5 USING(a)799 ) USING(a)800 ) USING(a)801 ) USING(a)802 ORDER BY 1 NULLS FIRST;803} {804 11 11 - 11 11 -805 12 12 12 - - -806 15 15 15 15 15 15807 808}809do_execsql_test joinC-51 {810 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a811 FROM t1 INNER JOIN (812 t2 FULL JOIN (813 t3 INNER JOIN (814 t4 RIGHT JOIN t5 USING(a)815 ) USING(a)816 ) USING(a)817 ) USING(a)818 ORDER BY 1 NULLS FIRST;819} {820 12 12 12 - - -821 15 15 15 15 15 15822 17 17 - 17 - 17823 824}825do_execsql_test joinC-52 {826 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a827 FROM t1 INNER JOIN (828 t2 FULL JOIN (829 t3 INNER JOIN (830 t4 FULL JOIN t5 USING(a)831 ) USING(a)832 ) USING(a)833 ) USING(a)834 ORDER BY 1 NULLS FIRST;835} {836 11 11 - 11 11 -837 12 12 12 - - -838 15 15 15 15 15 15839 17 17 - 17 - 17840 841}842do_execsql_test joinC-53 {843 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a844 FROM t1 INNER JOIN (845 t2 FULL JOIN (846 t3 LEFT JOIN (847 t4 INNER JOIN t5 USING(a)848 ) USING(a)849 ) USING(a)850 ) USING(a)851 ORDER BY 1 NULLS FIRST;852} {853 11 11 - 11 - -854 12 12 12 12 - -855 15 15 15 15 15 15856 17 17 - 17 - -857 858}859do_execsql_test joinC-54 {860 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a861 FROM t1 INNER JOIN (862 t2 FULL JOIN (863 t3 LEFT JOIN (864 t4 LEFT JOIN t5 USING(a)865 ) USING(a)866 ) USING(a)867 ) USING(a)868 ORDER BY 1 NULLS FIRST;869} {870 11 11 - 11 11 -871 12 12 12 12 - -872 15 15 15 15 15 15873 17 17 - 17 - -874 875}876do_execsql_test joinC-55 {877 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a878 FROM t1 INNER JOIN (879 t2 FULL JOIN (880 t3 LEFT JOIN (881 t4 RIGHT JOIN t5 USING(a)882 ) USING(a)883 ) USING(a)884 ) USING(a)885 ORDER BY 1 NULLS FIRST;886} {887 11 11 - 11 - -888 12 12 12 12 - -889 15 15 15 15 15 15890 17 17 - 17 - 17891 892}893do_execsql_test joinC-56 {894 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a895 FROM t1 INNER JOIN (896 t2 FULL JOIN (897 t3 LEFT JOIN (898 t4 FULL JOIN t5 USING(a)899 ) USING(a)900 ) USING(a)901 ) USING(a)902 ORDER BY 1 NULLS FIRST;903} {904 11 11 - 11 11 -905 12 12 12 12 - -906 15 15 15 15 15 15907 17 17 - 17 - 17908 909}910do_execsql_test joinC-57 {911 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a912 FROM t1 INNER JOIN (913 t2 FULL JOIN (914 t3 RIGHT JOIN (915 t4 INNER JOIN t5 USING(a)916 ) USING(a)917 ) USING(a)918 ) USING(a)919 ORDER BY 1 NULLS FIRST;920} {921 12 12 12 - - -922 15 15 15 15 15 15923 924}925do_execsql_test joinC-58 {926 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a927 FROM t1 INNER JOIN (928 t2 FULL JOIN (929 t3 RIGHT JOIN (930 t4 LEFT JOIN t5 USING(a)931 ) USING(a)932 ) USING(a)933 ) USING(a)934 ORDER BY 1 NULLS FIRST;935} {936 11 11 - 11 11 -937 12 12 12 - - -938 15 15 15 15 15 15939 940}941do_execsql_test joinC-59 {942 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a943 FROM t1 INNER JOIN (944 t2 FULL JOIN (945 t3 RIGHT JOIN (946 t4 RIGHT JOIN t5 USING(a)947 ) USING(a)948 ) USING(a)949 ) USING(a)950 ORDER BY 1 NULLS FIRST;951} {952 12 12 12 - - -953 15 15 15 15 15 15954 17 17 - 17 - 17955 956}957do_execsql_test joinC-60 {958 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a959 FROM t1 INNER JOIN (960 t2 FULL JOIN (961 t3 RIGHT JOIN (962 t4 FULL JOIN t5 USING(a)963 ) USING(a)964 ) USING(a)965 ) USING(a)966 ORDER BY 1 NULLS FIRST;967} {968 11 11 - 11 11 -969 12 12 12 - - -970 15 15 15 15 15 15971 17 17 - 17 - 17972 973}974do_execsql_test joinC-61 {975 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a976 FROM t1 INNER JOIN (977 t2 FULL JOIN (978 t3 FULL JOIN (979 t4 INNER JOIN t5 USING(a)980 ) USING(a)981 ) USING(a)982 ) USING(a)983 ORDER BY 1 NULLS FIRST;984} {985 11 11 - 11 - -986 12 12 12 12 - -987 15 15 15 15 15 15988 17 17 - 17 - -989 990}991do_execsql_test joinC-62 {992 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a993 FROM t1 INNER JOIN (994 t2 FULL JOIN (995 t3 FULL JOIN (996 t4 LEFT JOIN t5 USING(a)997 ) USING(a)998 ) USING(a)999 ) USING(a)1000 ORDER BY 1 NULLS FIRST;1001} {1002 11 11 - 11 11 -1003 12 12 12 12 - -1004 15 15 15 15 15 151005 17 17 - 17 - -1006 1007}1008do_execsql_test joinC-63 {1009 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a1010 FROM t1 INNER JOIN (1011 t2 FULL JOIN (1012 t3 FULL JOIN (1013 t4 RIGHT JOIN t5 USING(a)1014 ) USING(a)1015 ) USING(a)1016 ) USING(a)1017 ORDER BY 1 NULLS FIRST;1018} {1019 11 11 - 11 - -1020 12 12 12 12 - -1021 15 15 15 15 15 151022 17 17 - 17 - 171023 1024}1025do_execsql_test joinC-64 {1026 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a1027 FROM t1 INNER JOIN (1028 t2 FULL JOIN (1029 t3 FULL JOIN (1030 t4 FULL JOIN t5 USING(a)1031 ) USING(a)1032 ) USING(a)1033 ) USING(a)1034 ORDER BY 1 NULLS FIRST;1035} {1036 11 11 - 11 11 -1037 12 12 12 12 - -1038 15 15 15 15 15 151039 17 17 - 17 - 171040 1041}1042do_execsql_test joinC-65 {1043 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a1044 FROM t1 LEFT JOIN (1045 t2 INNER JOIN (1046 t3 INNER JOIN (1047 t4 INNER JOIN t5 USING(a)1048 ) USING(a)1049 ) USING(a)1050 ) USING(a)1051 ORDER BY 1 NULLS FIRST;1052} {1053 11 11 - - - -1054 12 12 - - - -1055 15 15 15 15 15 151056 17 17 - - - -1057 1058}1059do_execsql_test joinC-66 {1060 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a1061 FROM t1 LEFT JOIN (1062 t2 INNER JOIN (1063 t3 INNER JOIN (1064 t4 LEFT JOIN t5 USING(a)1065 ) USING(a)1066 ) USING(a)1067 ) USING(a)1068 ORDER BY 1 NULLS FIRST;1069} {1070 11 11 - - - -1071 12 12 - - - -1072 15 15 15 15 15 151073 17 17 - - - -1074 1075}1076do_execsql_test joinC-67 {1077 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a1078 FROM t1 LEFT JOIN (1079 t2 INNER JOIN (1080 t3 INNER JOIN (1081 t4 RIGHT JOIN t5 USING(a)1082 ) USING(a)1083 ) USING(a)1084 ) USING(a)1085 ORDER BY 1 NULLS FIRST;1086} {1087 11 11 - - - -1088 12 12 - - - -1089 15 15 15 15 15 151090 17 17 - - - -1091 1092}1093do_execsql_test joinC-68 {1094 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a1095 FROM t1 LEFT JOIN (1096 t2 INNER JOIN (1097 t3 INNER JOIN (1098 t4 FULL JOIN t5 USING(a)1099 ) USING(a)1100 ) USING(a)1101 ) USING(a)1102 ORDER BY 1 NULLS FIRST;1103} {1104 11 11 - - - -1105 12 12 - - - -1106 15 15 15 15 15 151107 17 17 - - - -1108 1109}1110do_execsql_test joinC-69 {1111 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a1112 FROM t1 LEFT JOIN (1113 t2 INNER JOIN (1114 t3 LEFT JOIN (1115 t4 INNER JOIN t5 USING(a)1116 ) USING(a)1117 ) USING(a)1118 ) USING(a)1119 ORDER BY 1 NULLS FIRST;1120} {1121 11 11 - - - -1122 12 12 12 12 - -1123 15 15 15 15 15 151124 17 17 - - - -1125 1126}1127do_execsql_test joinC-70 {1128 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a1129 FROM t1 LEFT JOIN (1130 t2 INNER JOIN (1131 t3 LEFT JOIN (1132 t4 LEFT JOIN t5 USING(a)1133 ) USING(a)1134 ) USING(a)1135 ) USING(a)1136 ORDER BY 1 NULLS FIRST;1137} {1138 11 11 - - - -1139 12 12 12 12 - -1140 15 15 15 15 15 151141 17 17 - - - -1142 1143}1144do_execsql_test joinC-71 {1145 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a1146 FROM t1 LEFT JOIN (1147 t2 INNER JOIN (1148 t3 LEFT JOIN (1149 t4 RIGHT JOIN t5 USING(a)1150 ) USING(a)1151 ) USING(a)1152 ) USING(a)1153 ORDER BY 1 NULLS FIRST;1154} {1155 11 11 - - - -1156 12 12 12 12 - -1157 15 15 15 15 15 151158 17 17 - - - -1159 1160}1161do_execsql_test joinC-72 {1162 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a1163 FROM t1 LEFT JOIN (1164 t2 INNER JOIN (1165 t3 LEFT JOIN (1166 t4 FULL JOIN t5 USING(a)1167 ) USING(a)1168 ) USING(a)1169 ) USING(a)1170 ORDER BY 1 NULLS FIRST;1171} {1172 11 11 - - - -1173 12 12 12 12 - -1174 15 15 15 15 15 151175 17 17 - - - -1176 1177}1178do_execsql_test joinC-73 {1179 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a1180 FROM t1 LEFT JOIN (1181 t2 INNER JOIN (1182 t3 RIGHT JOIN (1183 t4 INNER JOIN t5 USING(a)1184 ) USING(a)1185 ) USING(a)1186 ) USING(a)1187 ORDER BY 1 NULLS FIRST;1188} {1189 11 11 - - - -1190 12 12 - - - -1191 15 15 15 15 15 151192 17 17 - - - -1193 1194}1195do_execsql_test joinC-74 {1196 SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a1197 FROM t1 LEFT JOIN (1198 t2 INNER JOIN (1199 t3 RIGHT JOIN (1200 t4 LEFT JOIN t5 USING(a)