Add a test for the fixes on this branch.
[sqlite.git] / test / joinB.test
blobbaaeae677e919ae223290dd13b4a6f8832df5df2
1 set testdir [file dirname $argv0]
2 # 2022-04-19
4 # The author disclaims copyright to this source code.  In place of
5 # a legal notice, here is a blessing:
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.
11 #***********************************************************************
13 # This file implements tests for JOINs.
15 # The test case output is all generated by PostgreSQL 14.  This test module
16 # was created as follows:
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.
22 #   2.   Run the script from step (1) through psql and collect the
23 #        output.
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.
28 #   4.   Add this header, and the script content at the footer.
30 source $testdir/tester.tcl
31 db nullvalue -
32 db 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;
50 do_execsql_test joinB-1 {
51   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
52   FROM t1
53   INNER JOIN t2 USING(a)
54   INNER JOIN t3 USING(a)
55   INNER JOIN t4 USING(a)
56   INNER JOIN t5 USING(a)
57   ORDER BY 1 NULLS FIRST;
58 } {
59   15 15 15 15 15 15
61 do_execsql_test joinB-2 {
62   SELECT a, c, d, e, f, g
63   FROM t1
64   INNER JOIN t2 USING(a,b)
65   INNER JOIN t3 USING(a,b)
66   INNER JOIN t4 USING(a,b)
67   INNER JOIN t5 USING(a,b)
68   WHERE a<>13
69   ORDER BY 1 NULLS FIRST;
70 } {
71   15 35 35 35 35 35
73 do_execsql_test joinB-3 {
74   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
75   FROM t1
76   INNER JOIN t2 USING(a)
77   INNER JOIN t3 USING(a)
78   INNER JOIN t4 USING(a)
79   LEFT JOIN t5 USING(a)
80   ORDER BY 1 NULLS FIRST;
81 } {
82   15 15 15 15 15 15
84 do_execsql_test joinB-4 {
85   SELECT a, c, d, e, f, g
86   FROM t1
87   INNER JOIN (t2 INNER JOIN t3 USING(a)) USING(a)
88   INNER JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
89   WHERE a<=18
90   ORDER BY 1 NULLS FIRST;
91 } {
92   15 35 35 35 35 35
94 do_execsql_test joinB-5 {
95   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
96   FROM t1
97   INNER JOIN t2 USING(a)
98   INNER JOIN t3 USING(a)
99   INNER JOIN t4 USING(a)
100   RIGHT JOIN t5 USING(a)
101   ORDER BY 1 NULLS FIRST;
102 } {
103   15 15 15 15 15 15
104   17  -  -  -  - 17
105   18  -  -  -  - 18
106   19  -  -  -  - 19
108 do_execsql_test joinB-6 {
109   SELECT a, b, c, d, e, f, g
110   FROM t1
111   INNER JOIN t2 USING(a,b)
112   INNER JOIN t3 USING(a,b)
113   INNER JOIN t4 USING(a,b)
114   RIGHT JOIN t5 USING(a,b)
115   WHERE d<>33 OR d IS NULL
116   ORDER BY 1 NULLS FIRST;
117 } {
118   15 25 35 35 35 35 35
119   17 27  -  -  -  - 37
120   18 28  -  -  -  - 38
121   19 29  -  -  -  - 39
123 do_execsql_test joinB-7 {
124   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
125   FROM t1
126   INNER JOIN t2 USING(a)
127   INNER JOIN t3 USING(a)
128   INNER JOIN t4 USING(a)
129   FULL JOIN t5 USING(a)
130   ORDER BY 1 NULLS FIRST;
131 } {
132   15 15 15 15 15 15
133   17  -  -  -  - 17
134   18  -  -  -  - 18
135   19  -  -  -  - 19
137 do_execsql_test joinB-8 {
138   SELECT b, c, d, e, f, g
139   FROM t1
140   NATURAL INNER JOIN t2
141   NATURAL INNER JOIN t3
142   NATURAL INNER JOIN t4
143   NATURAL FULL JOIN t5
144   WHERE b BETWEEN 12 AND 17
145   ORDER BY 1 NULLS FIRST;
146 } {
148 do_execsql_test joinB-9 {
149   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
150   FROM t1
151   INNER JOIN t2 USING(a)
152   INNER JOIN t3 USING(a)
153   LEFT JOIN t4 USING(a)
154   INNER JOIN t5 USING(a)
155   ORDER BY 1 NULLS FIRST;
156 } {
157   15 15 15 15 15 15
159 do_execsql_test joinB-10 {
160   SELECT a, c, d, e, f, g
161   FROM t1
162   INNER JOIN t2 USING(a,b)
163   INNER JOIN t3 USING(a,b)
164   LEFT JOIN t4 USING(a,b)
165   INNER JOIN t5 USING(a,b)
166   WHERE a<>13
167   ORDER BY 1 NULLS FIRST;
168 } {
169   15 35 35 35 35 35
171 do_execsql_test joinB-11 {
172   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
173   FROM t1
174   INNER JOIN t2 USING(a)
175   INNER JOIN t3 USING(a)
176   LEFT JOIN t4 USING(a)
177   LEFT JOIN t5 USING(a)
178   ORDER BY 1 NULLS FIRST;
179 } {
180   12 12 12 12  -  -
181   15 15 15 15 15 15
183 do_execsql_test joinB-12 {
184   SELECT a, c, d, e, f, g
185   FROM t1
186   INNER JOIN (t2 INNER JOIN t3 USING(a)) USING(a)
187   LEFT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
188   WHERE a<=18
189   ORDER BY 1 NULLS FIRST;
190 } {
191   12 32 32 32  -  -
192   15 35 35 35 35 35
194 do_execsql_test joinB-13 {
195   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
196   FROM t1
197   INNER JOIN t2 USING(a)
198   INNER JOIN t3 USING(a)
199   LEFT JOIN t4 USING(a)
200   RIGHT JOIN t5 USING(a)
201   ORDER BY 1 NULLS FIRST;
202 } {
203   15 15 15 15 15 15
204   17  -  -  -  - 17
205   18  -  -  -  - 18
206   19  -  -  -  - 19
208 do_execsql_test joinB-14 {
209   SELECT a, b, c, d, e, f, g
210   FROM t1
211   INNER JOIN t2 USING(a,b)
212   INNER JOIN t3 USING(a,b)
213   LEFT JOIN t4 USING(a,b)
214   RIGHT JOIN t5 USING(a,b)
215   WHERE d<>33 OR d IS NULL
216   ORDER BY 1 NULLS FIRST;
217 } {
218   15 25 35 35 35 35 35
219   17 27  -  -  -  - 37
220   18 28  -  -  -  - 38
221   19 29  -  -  -  - 39
223 do_execsql_test joinB-15 {
224   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
225   FROM t1
226   INNER JOIN t2 USING(a)
227   INNER JOIN t3 USING(a)
228   LEFT JOIN t4 USING(a)
229   FULL JOIN t5 USING(a)
230   ORDER BY 1 NULLS FIRST;
231 } {
232   12 12 12 12  -  -
233   15 15 15 15 15 15
234   17  -  -  -  - 17
235   18  -  -  -  - 18
236   19  -  -  -  - 19
238 do_execsql_test joinB-16 {
239   SELECT b, c, d, e, f, g
240   FROM t1
241   NATURAL INNER JOIN t2
242   NATURAL INNER JOIN t3
243   NATURAL LEFT JOIN t4
244   NATURAL FULL JOIN t5
245   WHERE b BETWEEN 12 AND 17
246   ORDER BY 1 NULLS FIRST;
247 } {
249 do_execsql_test joinB-17 {
250   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
251   FROM t1
252   INNER JOIN t2 USING(a)
253   INNER JOIN t3 USING(a)
254   RIGHT JOIN t4 USING(a)
255   INNER JOIN t5 USING(a)
256   ORDER BY 1 NULLS FIRST;
257 } {
258   15 15 15 15 15 15
259   19  -  -  - 19 19
261 do_execsql_test joinB-18 {
262   SELECT a, c, d, e, f, g
263   FROM t1
264   INNER JOIN t2 USING(a,b)
265   INNER JOIN t3 USING(a,b)
266   RIGHT JOIN t4 USING(a,b)
267   INNER JOIN t5 USING(a,b)
268   WHERE a<>13
269   ORDER BY 1 NULLS FIRST;
270 } {
271   15 35 35 35 35 35
272   19  -  -  - 39 39
274 do_execsql_test joinB-19 {
275   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
276   FROM t1
277   INNER JOIN t2 USING(a)
278   INNER JOIN t3 USING(a)
279   RIGHT JOIN t4 USING(a)
280   LEFT JOIN t5 USING(a)
281   ORDER BY 1 NULLS FIRST;
282 } {
283   11  -  -  - 11  -
284   13  -  -  - 13  -
285   15 15 15 15 15 15
286   19  -  -  - 19 19
288 do_execsql_test joinB-20 {
289   SELECT a, c, d, e, f, g
290   FROM t1
291   INNER JOIN (t2 INNER JOIN t3 USING(a)) USING(a)
292   RIGHT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
293   WHERE a<=18
294   ORDER BY 1 NULLS FIRST;
295 } {
296   11  -  -  - 31  -
297   13  -  -  - 33  -
298   15 35 35 35 35 35
300 do_execsql_test joinB-21 {
301   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
302   FROM t1
303   INNER JOIN t2 USING(a)
304   INNER JOIN t3 USING(a)
305   RIGHT JOIN t4 USING(a)
306   RIGHT JOIN t5 USING(a)
307   ORDER BY 1 NULLS FIRST;
308 } {
309   15 15 15 15 15 15
310   17  -  -  -  - 17
311   18  -  -  -  - 18
312   19  -  -  - 19 19
314 do_execsql_test joinB-22 {
315   SELECT a, b, c, d, e, f, g
316   FROM t1
317   INNER JOIN t2 USING(a,b)
318   INNER JOIN t3 USING(a,b)
319   RIGHT JOIN t4 USING(a,b)
320   RIGHT JOIN t5 USING(a,b)
321   WHERE d<>33 OR d IS NULL
322   ORDER BY 1 NULLS FIRST;
323 } {
324   15 25 35 35 35 35 35
325   17 27  -  -  -  - 37
326   18 28  -  -  -  - 38
327   19 29  -  -  - 39 39
329 do_execsql_test joinB-23 {
330   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
331   FROM t1
332   INNER JOIN t2 USING(a)
333   INNER JOIN t3 USING(a)
334   RIGHT JOIN t4 USING(a)
335   FULL JOIN t5 USING(a)
336   ORDER BY 1 NULLS FIRST;
337 } {
338   11  -  -  - 11  -
339   13  -  -  - 13  -
340   15 15 15 15 15 15
341   17  -  -  -  - 17
342   18  -  -  -  - 18
343   19  -  -  - 19 19
345 do_execsql_test joinB-24 {
346   SELECT b, c, d, e, f, g
347   FROM t1
348   NATURAL INNER JOIN t2
349   NATURAL INNER JOIN t3
350   NATURAL RIGHT JOIN t4
351   NATURAL FULL JOIN t5
352   WHERE b BETWEEN 12 AND 17
353   ORDER BY 1 NULLS FIRST;
354 } {
356 do_execsql_test joinB-25 {
357   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
358   FROM t1
359   INNER JOIN t2 USING(a)
360   INNER JOIN t3 USING(a)
361   FULL JOIN t4 USING(a)
362   INNER JOIN t5 USING(a)
363   ORDER BY 1 NULLS FIRST;
364 } {
365   15 15 15 15 15 15
366   19  -  -  - 19 19
368 do_execsql_test joinB-26 {
369   SELECT a, c, d, e, f, g
370   FROM t1
371   INNER JOIN t2 USING(a,b)
372   INNER JOIN t3 USING(a,b)
373   FULL JOIN t4 USING(a,b)
374   INNER JOIN t5 USING(a,b)
375   WHERE a<>13
376   ORDER BY 1 NULLS FIRST;
377 } {
378   15 35 35 35 35 35
379   19  -  -  - 39 39
381 do_execsql_test joinB-27 {
382   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
383   FROM t1
384   INNER JOIN t2 USING(a)
385   INNER JOIN t3 USING(a)
386   FULL JOIN t4 USING(a)
387   LEFT JOIN t5 USING(a)
388   ORDER BY 1 NULLS FIRST;
389 } {
390   11  -  -  - 11  -
391   12 12 12 12  -  -
392   13  -  -  - 13  -
393   15 15 15 15 15 15
394   19  -  -  - 19 19
396 do_execsql_test joinB-28 {
397   SELECT a, c, d, e, f, g
398   FROM t1
399   INNER JOIN (t2 INNER JOIN t3 USING(a)) USING(a)
400   FULL JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
401   WHERE a<=18
402   ORDER BY 1 NULLS FIRST;
403 } {
404   11  -  -  - 31  -
405   12 32 32 32  -  -
406   13  -  -  - 33  -
407   15 35 35 35 35 35
409 do_execsql_test joinB-29 {
410   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
411   FROM t1
412   INNER JOIN t2 USING(a)
413   INNER JOIN t3 USING(a)
414   FULL JOIN t4 USING(a)
415   RIGHT JOIN t5 USING(a)
416   ORDER BY 1 NULLS FIRST;
417 } {
418   15 15 15 15 15 15
419   17  -  -  -  - 17
420   18  -  -  -  - 18
421   19  -  -  - 19 19
423 do_execsql_test joinB-30 {
424   SELECT a, b, c, d, e, f, g
425   FROM t1
426   INNER JOIN t2 USING(a,b)
427   INNER JOIN t3 USING(a,b)
428   FULL JOIN t4 USING(a,b)
429   RIGHT JOIN t5 USING(a,b)
430   WHERE d<>33 OR d IS NULL
431   ORDER BY 1 NULLS FIRST;
432 } {
433   15 25 35 35 35 35 35
434   17 27  -  -  -  - 37
435   18 28  -  -  -  - 38
436   19 29  -  -  - 39 39
438 do_execsql_test joinB-31 {
439   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
440   FROM t1
441   INNER JOIN t2 USING(a)
442   INNER JOIN t3 USING(a)
443   FULL JOIN t4 USING(a)
444   FULL JOIN t5 USING(a)
445   ORDER BY 1 NULLS FIRST;
446 } {
447   11  -  -  - 11  -
448   12 12 12 12  -  -
449   13  -  -  - 13  -
450   15 15 15 15 15 15
451   17  -  -  -  - 17
452   18  -  -  -  - 18
453   19  -  -  - 19 19
455 do_execsql_test joinB-32 {
456   SELECT b, c, d, e, f, g
457   FROM t1
458   NATURAL INNER JOIN t2
459   NATURAL INNER JOIN t3
460   NATURAL FULL JOIN t4
461   NATURAL FULL JOIN t5
462   WHERE b BETWEEN 12 AND 17
463   ORDER BY 1 NULLS FIRST;
464 } {
466 do_execsql_test joinB-33 {
467   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
468   FROM t1
469   INNER JOIN t2 USING(a)
470   LEFT JOIN t3 USING(a)
471   INNER JOIN t4 USING(a)
472   INNER JOIN t5 USING(a)
473   ORDER BY 1 NULLS FIRST;
474 } {
475   15 15 15 15 15 15
477 do_execsql_test joinB-34 {
478   SELECT a, c, d, e, f, g
479   FROM t1
480   INNER JOIN t2 USING(a,b)
481   LEFT JOIN t3 USING(a,b)
482   INNER JOIN t4 USING(a,b)
483   INNER JOIN t5 USING(a,b)
484   WHERE a<>13
485   ORDER BY 1 NULLS FIRST;
486 } {
487   15 35 35 35 35 35
489 do_execsql_test joinB-35 {
490   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
491   FROM t1
492   INNER JOIN t2 USING(a)
493   LEFT JOIN t3 USING(a)
494   INNER JOIN t4 USING(a)
495   LEFT JOIN t5 USING(a)
496   ORDER BY 1 NULLS FIRST;
497 } {
498   15 15 15 15 15 15
500 do_execsql_test joinB-36 {
501   SELECT a, c, d, e, f, g
502   FROM t1
503   INNER JOIN (t2 LEFT JOIN t3 USING(a)) USING(a)
504   INNER JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
505   WHERE a<=18
506   ORDER BY 1 NULLS FIRST;
507 } {
508   15 35 35 35 35 35
510 do_execsql_test joinB-37 {
511   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
512   FROM t1
513   INNER JOIN t2 USING(a)
514   LEFT JOIN t3 USING(a)
515   INNER JOIN t4 USING(a)
516   RIGHT JOIN t5 USING(a)
517   ORDER BY 1 NULLS FIRST;
518 } {
519   15 15 15 15 15 15
520   17  -  -  -  - 17
521   18  -  -  -  - 18
522   19  -  -  -  - 19
524 do_execsql_test joinB-38 {
525   SELECT a, b, c, d, e, f, g
526   FROM t1
527   INNER JOIN t2 USING(a,b)
528   LEFT JOIN t3 USING(a,b)
529   INNER JOIN t4 USING(a,b)
530   RIGHT JOIN t5 USING(a,b)
531   WHERE d<>33 OR d IS NULL
532   ORDER BY 1 NULLS FIRST;
533 } {
534   15 25 35 35 35 35 35
535   17 27  -  -  -  - 37
536   18 28  -  -  -  - 38
537   19 29  -  -  -  - 39
539 do_execsql_test joinB-39 {
540   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
541   FROM t1
542   INNER JOIN t2 USING(a)
543   LEFT JOIN t3 USING(a)
544   INNER JOIN t4 USING(a)
545   FULL JOIN t5 USING(a)
546   ORDER BY 1 NULLS FIRST;
547 } {
548   15 15 15 15 15 15
549   17  -  -  -  - 17
550   18  -  -  -  - 18
551   19  -  -  -  - 19
553 do_execsql_test joinB-40 {
554   SELECT b, c, d, e, f, g
555   FROM t1
556   NATURAL INNER JOIN t2
557   NATURAL LEFT JOIN t3
558   NATURAL INNER JOIN t4
559   NATURAL FULL JOIN t5
560   WHERE b BETWEEN 12 AND 17
561   ORDER BY 1 NULLS FIRST;
562 } {
564 do_execsql_test joinB-41 {
565   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
566   FROM t1
567   INNER JOIN t2 USING(a)
568   LEFT JOIN t3 USING(a)
569   LEFT JOIN t4 USING(a)
570   INNER JOIN t5 USING(a)
571   ORDER BY 1 NULLS FIRST;
572 } {
573   15 15 15 15 15 15
575 do_execsql_test joinB-42 {
576   SELECT a, c, d, e, f, g
577   FROM t1
578   INNER JOIN t2 USING(a,b)
579   LEFT JOIN t3 USING(a,b)
580   LEFT JOIN t4 USING(a,b)
581   INNER JOIN t5 USING(a,b)
582   WHERE a<>13
583   ORDER BY 1 NULLS FIRST;
584 } {
585   15 35 35 35 35 35
587 do_execsql_test joinB-43 {
588   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
589   FROM t1
590   INNER JOIN t2 USING(a)
591   LEFT JOIN t3 USING(a)
592   LEFT JOIN t4 USING(a)
593   LEFT JOIN t5 USING(a)
594   ORDER BY 1 NULLS FIRST;
595 } {
596   12 12 12 12  -  -
597   15 15 15 15 15 15
599 do_execsql_test joinB-44 {
600   SELECT a, c, d, e, f, g
601   FROM t1
602   INNER JOIN (t2 LEFT JOIN t3 USING(a)) USING(a)
603   LEFT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
604   WHERE a<=18
605   ORDER BY 1 NULLS FIRST;
606 } {
607   12 32 32 32  -  -
608   15 35 35 35 35 35
610 do_execsql_test joinB-45 {
611   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
612   FROM t1
613   INNER JOIN t2 USING(a)
614   LEFT JOIN t3 USING(a)
615   LEFT JOIN t4 USING(a)
616   RIGHT JOIN t5 USING(a)
617   ORDER BY 1 NULLS FIRST;
618 } {
619   15 15 15 15 15 15
620   17  -  -  -  - 17
621   18  -  -  -  - 18
622   19  -  -  -  - 19
624 do_execsql_test joinB-46 {
625   SELECT a, b, c, d, e, f, g
626   FROM t1
627   INNER JOIN t2 USING(a,b)
628   LEFT JOIN t3 USING(a,b)
629   LEFT JOIN t4 USING(a,b)
630   RIGHT JOIN t5 USING(a,b)
631   WHERE d<>33 OR d IS NULL
632   ORDER BY 1 NULLS FIRST;
633 } {
634   15 25 35 35 35 35 35
635   17 27  -  -  -  - 37
636   18 28  -  -  -  - 38
637   19 29  -  -  -  - 39
639 do_execsql_test joinB-47 {
640   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
641   FROM t1
642   INNER JOIN t2 USING(a)
643   LEFT JOIN t3 USING(a)
644   LEFT JOIN t4 USING(a)
645   FULL JOIN t5 USING(a)
646   ORDER BY 1 NULLS FIRST;
647 } {
648   12 12 12 12  -  -
649   15 15 15 15 15 15
650   17  -  -  -  - 17
651   18  -  -  -  - 18
652   19  -  -  -  - 19
654 do_execsql_test joinB-48 {
655   SELECT b, c, d, e, f, g
656   FROM t1
657   NATURAL INNER JOIN t2
658   NATURAL LEFT JOIN t3
659   NATURAL LEFT JOIN t4
660   NATURAL FULL JOIN t5
661   WHERE b BETWEEN 12 AND 17
662   ORDER BY 1 NULLS FIRST;
663 } {
665 do_execsql_test joinB-49 {
666   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
667   FROM t1
668   INNER JOIN t2 USING(a)
669   LEFT JOIN t3 USING(a)
670   RIGHT JOIN t4 USING(a)
671   INNER JOIN t5 USING(a)
672   ORDER BY 1 NULLS FIRST;
673 } {
674   15 15 15 15 15 15
675   19  -  -  - 19 19
677 do_execsql_test joinB-50 {
678   SELECT a, c, d, e, f, g
679   FROM t1
680   INNER JOIN t2 USING(a,b)
681   LEFT JOIN t3 USING(a,b)
682   RIGHT JOIN t4 USING(a,b)
683   INNER JOIN t5 USING(a,b)
684   WHERE a<>13
685   ORDER BY 1 NULLS FIRST;
686 } {
687   15 35 35 35 35 35
688   19  -  -  - 39 39
690 do_execsql_test joinB-51 {
691   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
692   FROM t1
693   INNER JOIN t2 USING(a)
694   LEFT JOIN t3 USING(a)
695   RIGHT JOIN t4 USING(a)
696   LEFT JOIN t5 USING(a)
697   ORDER BY 1 NULLS FIRST;
698 } {
699   11  -  -  - 11  -
700   13  -  -  - 13  -
701   15 15 15 15 15 15
702   19  -  -  - 19 19
704 do_execsql_test joinB-52 {
705   SELECT a, c, d, e, f, g
706   FROM t1
707   INNER JOIN (t2 LEFT JOIN t3 USING(a)) USING(a)
708   RIGHT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
709   WHERE a<=18
710   ORDER BY 1 NULLS FIRST;
711 } {
712   11  -  -  - 31  -
713   13  -  -  - 33  -
714   15 35 35 35 35 35
716 do_execsql_test joinB-53 {
717   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
718   FROM t1
719   INNER JOIN t2 USING(a)
720   LEFT JOIN t3 USING(a)
721   RIGHT JOIN t4 USING(a)
722   RIGHT JOIN t5 USING(a)
723   ORDER BY 1 NULLS FIRST;
724 } {
725   15 15 15 15 15 15
726   17  -  -  -  - 17
727   18  -  -  -  - 18
728   19  -  -  - 19 19
730 do_execsql_test joinB-54 {
731   SELECT a, b, c, d, e, f, g
732   FROM t1
733   INNER JOIN t2 USING(a,b)
734   LEFT JOIN t3 USING(a,b)
735   RIGHT JOIN t4 USING(a,b)
736   RIGHT JOIN t5 USING(a,b)
737   WHERE d<>33 OR d IS NULL
738   ORDER BY 1 NULLS FIRST;
739 } {
740   15 25 35 35 35 35 35
741   17 27  -  -  -  - 37
742   18 28  -  -  -  - 38
743   19 29  -  -  - 39 39
745 do_execsql_test joinB-55 {
746   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
747   FROM t1
748   INNER JOIN t2 USING(a)
749   LEFT JOIN t3 USING(a)
750   RIGHT JOIN t4 USING(a)
751   FULL JOIN t5 USING(a)
752   ORDER BY 1 NULLS FIRST;
753 } {
754   11  -  -  - 11  -
755   13  -  -  - 13  -
756   15 15 15 15 15 15
757   17  -  -  -  - 17
758   18  -  -  -  - 18
759   19  -  -  - 19 19
761 do_execsql_test joinB-56 {
762   SELECT b, c, d, e, f, g
763   FROM t1
764   NATURAL INNER JOIN t2
765   NATURAL LEFT JOIN t3
766   NATURAL RIGHT JOIN t4
767   NATURAL FULL JOIN t5
768   WHERE b BETWEEN 12 AND 17
769   ORDER BY 1 NULLS FIRST;
770 } {
772 do_execsql_test joinB-57 {
773   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
774   FROM t1
775   INNER JOIN t2 USING(a)
776   LEFT JOIN t3 USING(a)
777   FULL JOIN t4 USING(a)
778   INNER JOIN t5 USING(a)
779   ORDER BY 1 NULLS FIRST;
780 } {
781   15 15 15 15 15 15
782   19  -  -  - 19 19
784 do_execsql_test joinB-58 {
785   SELECT a, c, d, e, f, g
786   FROM t1
787   INNER JOIN t2 USING(a,b)
788   LEFT JOIN t3 USING(a,b)
789   FULL JOIN t4 USING(a,b)
790   INNER JOIN t5 USING(a,b)
791   WHERE a<>13
792   ORDER BY 1 NULLS FIRST;
793 } {
794   15 35 35 35 35 35
795   19  -  -  - 39 39
797 do_execsql_test joinB-59 {
798   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
799   FROM t1
800   INNER JOIN t2 USING(a)
801   LEFT JOIN t3 USING(a)
802   FULL JOIN t4 USING(a)
803   LEFT JOIN t5 USING(a)
804   ORDER BY 1 NULLS FIRST;
805 } {
806   11  -  -  - 11  -
807   12 12 12 12  -  -
808   13  -  -  - 13  -
809   15 15 15 15 15 15
810   19  -  -  - 19 19
812 do_execsql_test joinB-60 {
813   SELECT a, c, d, e, f, g
814   FROM t1
815   INNER JOIN (t2 LEFT JOIN t3 USING(a)) USING(a)
816   FULL JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
817   WHERE a<=18
818   ORDER BY 1 NULLS FIRST;
819 } {
820   11  -  -  - 31  -
821   12 32 32 32  -  -
822   13  -  -  - 33  -
823   15 35 35 35 35 35
825 do_execsql_test joinB-61 {
826   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
827   FROM t1
828   INNER JOIN t2 USING(a)
829   LEFT JOIN t3 USING(a)
830   FULL JOIN t4 USING(a)
831   RIGHT JOIN t5 USING(a)
832   ORDER BY 1 NULLS FIRST;
833 } {
834   15 15 15 15 15 15
835   17  -  -  -  - 17
836   18  -  -  -  - 18
837   19  -  -  - 19 19
839 do_execsql_test joinB-62 {
840   SELECT a, b, c, d, e, f, g
841   FROM t1
842   INNER JOIN t2 USING(a,b)
843   LEFT JOIN t3 USING(a,b)
844   FULL JOIN t4 USING(a,b)
845   RIGHT JOIN t5 USING(a,b)
846   WHERE d<>33 OR d IS NULL
847   ORDER BY 1 NULLS FIRST;
848 } {
849   15 25 35 35 35 35 35
850   17 27  -  -  -  - 37
851   18 28  -  -  -  - 38
852   19 29  -  -  - 39 39
854 do_execsql_test joinB-63 {
855   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
856   FROM t1
857   INNER JOIN t2 USING(a)
858   LEFT JOIN t3 USING(a)
859   FULL JOIN t4 USING(a)
860   FULL JOIN t5 USING(a)
861   ORDER BY 1 NULLS FIRST;
862 } {
863   11  -  -  - 11  -
864   12 12 12 12  -  -
865   13  -  -  - 13  -
866   15 15 15 15 15 15
867   17  -  -  -  - 17
868   18  -  -  -  - 18
869   19  -  -  - 19 19
871 do_execsql_test joinB-64 {
872   SELECT b, c, d, e, f, g
873   FROM t1
874   NATURAL INNER JOIN t2
875   NATURAL LEFT JOIN t3
876   NATURAL FULL JOIN t4
877   NATURAL FULL JOIN t5
878   WHERE b BETWEEN 12 AND 17
879   ORDER BY 1 NULLS FIRST;
880 } {
882 do_execsql_test joinB-65 {
883   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
884   FROM t1
885   INNER JOIN t2 USING(a)
886   RIGHT JOIN t3 USING(a)
887   INNER JOIN t4 USING(a)
888   INNER JOIN t5 USING(a)
889   ORDER BY 1 NULLS FIRST;
890 } {
891   15 15 15 15 15 15
892   19  -  - 19 19 19
894 do_execsql_test joinB-66 {
895   SELECT a, c, d, e, f, g
896   FROM t1
897   INNER JOIN t2 USING(a,b)
898   RIGHT JOIN t3 USING(a,b)
899   INNER JOIN t4 USING(a,b)
900   INNER JOIN t5 USING(a,b)
901   WHERE a<>13
902   ORDER BY 1 NULLS FIRST;
903 } {
904   15 35 35 35 35 35
905   19  -  - 39 39 39
907 do_execsql_test joinB-67 {
908   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
909   FROM t1
910   INNER JOIN t2 USING(a)
911   RIGHT JOIN t3 USING(a)
912   INNER JOIN t4 USING(a)
913   LEFT JOIN t5 USING(a)
914   ORDER BY 1 NULLS FIRST;
915 } {
916   11  -  - 11 11  -
917   13  -  - 13 13  -
918   15 15 15 15 15 15
919   19  -  - 19 19 19
921 do_execsql_test joinB-68 {
922   SELECT a, c, d, e, f, g
923   FROM t1
924   INNER JOIN (t2 RIGHT JOIN t3 USING(a)) USING(a)
925   INNER JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
926   WHERE a<=18
927   ORDER BY 1 NULLS FIRST;
928 } {
929   11 31  - 31 31  -
930   15 35 35 35 35 35
932 do_execsql_test joinB-69 {
933   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
934   FROM t1
935   INNER JOIN t2 USING(a)
936   RIGHT JOIN t3 USING(a)
937   INNER JOIN t4 USING(a)
938   RIGHT JOIN t5 USING(a)
939   ORDER BY 1 NULLS FIRST;
940 } {
941   15 15 15 15 15 15
942   17  -  -  -  - 17
943   18  -  -  -  - 18
944   19  -  - 19 19 19
946 do_execsql_test joinB-70 {
947   SELECT a, b, c, d, e, f, g
948   FROM t1
949   INNER JOIN t2 USING(a,b)
950   RIGHT JOIN t3 USING(a,b)
951   INNER JOIN t4 USING(a,b)
952   RIGHT JOIN t5 USING(a,b)
953   WHERE d<>33 OR d IS NULL
954   ORDER BY 1 NULLS FIRST;
955 } {
956   15 25 35 35 35 35 35
957   17 27  -  -  -  - 37
958   18 28  -  -  -  - 38
959   19 29  -  - 39 39 39
961 do_execsql_test joinB-71 {
962   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
963   FROM t1
964   INNER JOIN t2 USING(a)
965   RIGHT JOIN t3 USING(a)
966   INNER JOIN t4 USING(a)
967   FULL JOIN t5 USING(a)
968   ORDER BY 1 NULLS FIRST;
969 } {
970   11  -  - 11 11  -
971   13  -  - 13 13  -
972   15 15 15 15 15 15
973   17  -  -  -  - 17
974   18  -  -  -  - 18
975   19  -  - 19 19 19
977 do_execsql_test joinB-72 {
978   SELECT b, c, d, e, f, g
979   FROM t1
980   NATURAL INNER JOIN t2
981   NATURAL RIGHT JOIN t3
982   NATURAL INNER JOIN t4
983   NATURAL FULL JOIN t5
984   WHERE b BETWEEN 12 AND 17
985   ORDER BY 1 NULLS FIRST;
986 } {
988 do_execsql_test joinB-73 {
989   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
990   FROM t1
991   INNER JOIN t2 USING(a)
992   RIGHT JOIN t3 USING(a)
993   LEFT JOIN t4 USING(a)
994   INNER JOIN t5 USING(a)
995   ORDER BY 1 NULLS FIRST;
996 } {
997   15 15 15 15 15 15
998   17  -  - 17  - 17
999   18  -  - 18  - 18
1000   19  -  - 19 19 19
1002 do_execsql_test joinB-74 {
1003   SELECT a, c, d, e, f, g
1004   FROM t1
1005   INNER JOIN t2 USING(a,b)
1006   RIGHT JOIN t3 USING(a,b)
1007   LEFT JOIN t4 USING(a,b)
1008   INNER JOIN t5 USING(a,b)
1009   WHERE a<>13
1010   ORDER BY 1 NULLS FIRST;
1011 } {
1012   15 35 35 35 35 35
1013   17  -  - 37  - 37
1014   18  -  - 38  - 38
1015   19  -  - 39 39 39
1017 do_execsql_test joinB-75 {
1018   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1019   FROM t1
1020   INNER JOIN t2 USING(a)
1021   RIGHT JOIN t3 USING(a)
1022   LEFT JOIN t4 USING(a)
1023   LEFT JOIN t5 USING(a)
1024   ORDER BY 1 NULLS FIRST;
1025 } {
1026    -  -  -  -  -  -
1027   11  -  - 11 11  -
1028   12 12 12 12  -  -
1029   13  -  - 13 13  -
1030   15 15 15 15 15 15
1031   17  -  - 17  - 17
1032   18  -  - 18  - 18
1033   19  -  - 19 19 19
1035 do_execsql_test joinB-76 {
1036   SELECT a, c, d, e, f, g
1037   FROM t1
1038   INNER JOIN (t2 RIGHT JOIN t3 USING(a)) USING(a)
1039   LEFT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
1040   WHERE a<=18
1041   ORDER BY 1 NULLS FIRST;
1042 } {
1043   11 31  - 31 31  -
1044   12 32 32 32  -  -
1045   15 35 35 35 35 35
1046   17 37  - 37  -  -
1048 do_execsql_test joinB-77 {
1049   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1050   FROM t1
1051   INNER JOIN t2 USING(a)
1052   RIGHT JOIN t3 USING(a)
1053   LEFT JOIN t4 USING(a)
1054   RIGHT JOIN t5 USING(a)
1055   ORDER BY 1 NULLS FIRST;
1056 } {
1057   15 15 15 15 15 15
1058   17  -  - 17  - 17
1059   18  -  - 18  - 18
1060   19  -  - 19 19 19
1062 do_execsql_test joinB-78 {
1063   SELECT a, b, c, d, e, f, g
1064   FROM t1
1065   INNER JOIN t2 USING(a,b)
1066   RIGHT JOIN t3 USING(a,b)
1067   LEFT JOIN t4 USING(a,b)
1068   RIGHT JOIN t5 USING(a,b)
1069   WHERE d<>33 OR d IS NULL
1070   ORDER BY 1 NULLS FIRST;
1071 } {
1072   15 25 35 35 35 35 35
1073   17 27  -  - 37  - 37
1074   18 28  -  - 38  - 38
1075   19 29  -  - 39 39 39
1077 do_execsql_test joinB-79 {
1078   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1079   FROM t1
1080   INNER JOIN t2 USING(a)
1081   RIGHT JOIN t3 USING(a)
1082   LEFT JOIN t4 USING(a)
1083   FULL JOIN t5 USING(a)
1084   ORDER BY 1 NULLS FIRST;
1085 } {
1086    -  -  -  -  -  -
1087   11  -  - 11 11  -
1088   12 12 12 12  -  -
1089   13  -  - 13 13  -
1090   15 15 15 15 15 15
1091   17  -  - 17  - 17
1092   18  -  - 18  - 18
1093   19  -  - 19 19 19
1095 do_execsql_test joinB-80 {
1096   SELECT b, c, d, e, f, g
1097   FROM t1
1098   NATURAL INNER JOIN t2
1099   NATURAL RIGHT JOIN t3
1100   NATURAL LEFT JOIN t4
1101   NATURAL FULL JOIN t5
1102   WHERE b BETWEEN 12 AND 17
1103   ORDER BY 1 NULLS FIRST;
1104 } {
1106 do_execsql_test joinB-81 {
1107   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1108   FROM t1
1109   INNER JOIN t2 USING(a)
1110   RIGHT JOIN t3 USING(a)
1111   RIGHT JOIN t4 USING(a)
1112   INNER JOIN t5 USING(a)
1113   ORDER BY 1 NULLS FIRST;
1114 } {
1115   15 15 15 15 15 15
1116   19  -  - 19 19 19
1118 do_execsql_test joinB-82 {
1119   SELECT a, c, d, e, f, g
1120   FROM t1
1121   INNER JOIN t2 USING(a,b)
1122   RIGHT JOIN t3 USING(a,b)
1123   RIGHT JOIN t4 USING(a,b)
1124   INNER JOIN t5 USING(a,b)
1125   WHERE a<>13
1126   ORDER BY 1 NULLS FIRST;
1127 } {
1128   15 35 35 35 35 35
1129   19  -  - 39 39 39
1131 do_execsql_test joinB-83 {
1132   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1133   FROM t1
1134   INNER JOIN t2 USING(a)
1135   RIGHT JOIN t3 USING(a)
1136   RIGHT JOIN t4 USING(a)
1137   LEFT JOIN t5 USING(a)
1138   ORDER BY 1 NULLS FIRST;
1139 } {
1140   11  -  - 11 11  -
1141   13  -  - 13 13  -
1142   15 15 15 15 15 15
1143   19  -  - 19 19 19
1145 do_execsql_test joinB-84 {
1146   SELECT a, c, d, e, f, g
1147   FROM t1
1148   INNER JOIN (t2 RIGHT JOIN t3 USING(a)) USING(a)
1149   RIGHT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
1150   WHERE a<=18
1151   ORDER BY 1 NULLS FIRST;
1152 } {
1153   11 31  - 31 31  -
1154   13  -  -  - 33  -
1155   15 35 35 35 35 35
1157 do_execsql_test joinB-85 {
1158   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1159   FROM t1
1160   INNER JOIN t2 USING(a)
1161   RIGHT JOIN t3 USING(a)
1162   RIGHT JOIN t4 USING(a)
1163   RIGHT JOIN t5 USING(a)
1164   ORDER BY 1 NULLS FIRST;
1165 } {
1166   15 15 15 15 15 15
1167   17  -  -  -  - 17
1168   18  -  -  -  - 18
1169   19  -  - 19 19 19
1171 do_execsql_test joinB-86 {
1172   SELECT a, b, c, d, e, f, g
1173   FROM t1
1174   INNER JOIN t2 USING(a,b)
1175   RIGHT JOIN t3 USING(a,b)
1176   RIGHT JOIN t4 USING(a,b)
1177   RIGHT JOIN t5 USING(a,b)
1178   WHERE d<>33 OR d IS NULL
1179   ORDER BY 1 NULLS FIRST;
1180 } {
1181   15 25 35 35 35 35 35
1182   17 27  -  -  -  - 37
1183   18 28  -  -  -  - 38
1184   19 29  -  - 39 39 39
1186 do_execsql_test joinB-87 {
1187   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1188   FROM t1
1189   INNER JOIN t2 USING(a)
1190   RIGHT JOIN t3 USING(a)
1191   RIGHT JOIN t4 USING(a)
1192   FULL JOIN t5 USING(a)
1193   ORDER BY 1 NULLS FIRST;
1194 } {
1195   11  -  - 11 11  -
1196   13  -  - 13 13  -
1197   15 15 15 15 15 15
1198   17  -  -  -  - 17
1199   18  -  -  -  - 18
1200   19  -  - 19 19 19
1202 do_execsql_test joinB-88 {
1203   SELECT b, c, d, e, f, g
1204   FROM t1
1205   NATURAL INNER JOIN t2
1206   NATURAL RIGHT JOIN t3
1207   NATURAL RIGHT JOIN t4
1208   NATURAL FULL JOIN t5
1209   WHERE b BETWEEN 12 AND 17
1210   ORDER BY 1 NULLS FIRST;
1211 } {
1213 do_execsql_test joinB-89 {
1214   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1215   FROM t1
1216   INNER JOIN t2 USING(a)
1217   RIGHT JOIN t3 USING(a)
1218   FULL JOIN t4 USING(a)
1219   INNER JOIN t5 USING(a)
1220   ORDER BY 1 NULLS FIRST;
1221 } {
1222   15 15 15 15 15 15
1223   17  -  - 17  - 17
1224   18  -  - 18  - 18
1225   19  -  - 19 19 19
1227 do_execsql_test joinB-90 {
1228   SELECT a, c, d, e, f, g
1229   FROM t1
1230   INNER JOIN t2 USING(a,b)
1231   RIGHT JOIN t3 USING(a,b)
1232   FULL JOIN t4 USING(a,b)
1233   INNER JOIN t5 USING(a,b)
1234   WHERE a<>13
1235   ORDER BY 1 NULLS FIRST;
1236 } {
1237   15 35 35 35 35 35
1238   17  -  - 37  - 37
1239   18  -  - 38  - 38
1240   19  -  - 39 39 39
1242 do_execsql_test joinB-91 {
1243   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1244   FROM t1
1245   INNER JOIN t2 USING(a)
1246   RIGHT JOIN t3 USING(a)
1247   FULL JOIN t4 USING(a)
1248   LEFT JOIN t5 USING(a)
1249   ORDER BY 1 NULLS FIRST;
1250 } {
1251    -  -  -  -  -  -
1252   11  -  - 11 11  -
1253   12 12 12 12  -  -
1254   13  -  - 13 13  -
1255   15 15 15 15 15 15
1256   17  -  - 17  - 17
1257   18  -  - 18  - 18
1258   19  -  - 19 19 19
1260 do_execsql_test joinB-92 {
1261   SELECT a, c, d, e, f, g
1262   FROM t1
1263   INNER JOIN (t2 RIGHT JOIN t3 USING(a)) USING(a)
1264   FULL JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
1265   WHERE a<=18
1266   ORDER BY 1 NULLS FIRST;
1267 } {
1268   11 31  - 31 31  -
1269   12 32 32 32  -  -
1270   13  -  -  - 33  -
1271   15 35 35 35 35 35
1272   17 37  - 37  -  -
1274 do_execsql_test joinB-93 {
1275   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1276   FROM t1
1277   INNER JOIN t2 USING(a)
1278   RIGHT JOIN t3 USING(a)
1279   FULL JOIN t4 USING(a)
1280   RIGHT JOIN t5 USING(a)
1281   ORDER BY 1 NULLS FIRST;
1282 } {
1283   15 15 15 15 15 15
1284   17  -  - 17  - 17
1285   18  -  - 18  - 18
1286   19  -  - 19 19 19
1288 do_execsql_test joinB-94 {
1289   SELECT a, b, c, d, e, f, g
1290   FROM t1
1291   INNER JOIN t2 USING(a,b)
1292   RIGHT JOIN t3 USING(a,b)
1293   FULL JOIN t4 USING(a,b)
1294   RIGHT JOIN t5 USING(a,b)
1295   WHERE d<>33 OR d IS NULL
1296   ORDER BY 1 NULLS FIRST;
1297 } {
1298   15 25 35 35 35 35 35
1299   17 27  -  - 37  - 37
1300   18 28  -  - 38  - 38
1301   19 29  -  - 39 39 39
1303 do_execsql_test joinB-95 {
1304   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1305   FROM t1
1306   INNER JOIN t2 USING(a)
1307   RIGHT JOIN t3 USING(a)
1308   FULL JOIN t4 USING(a)
1309   FULL JOIN t5 USING(a)
1310   ORDER BY 1 NULLS FIRST;
1311 } {
1312    -  -  -  -  -  -
1313   11  -  - 11 11  -
1314   12 12 12 12  -  -
1315   13  -  - 13 13  -
1316   15 15 15 15 15 15
1317   17  -  - 17  - 17
1318   18  -  - 18  - 18
1319   19  -  - 19 19 19
1321 do_execsql_test joinB-96 {
1322   SELECT b, c, d, e, f, g
1323   FROM t1
1324   NATURAL INNER JOIN t2
1325   NATURAL RIGHT JOIN t3
1326   NATURAL FULL JOIN t4
1327   NATURAL FULL JOIN t5
1328   WHERE b BETWEEN 12 AND 17
1329   ORDER BY 1 NULLS FIRST;
1330 } {
1332 do_execsql_test joinB-97 {
1333   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1334   FROM t1
1335   INNER JOIN t2 USING(a)
1336   FULL JOIN t3 USING(a)
1337   INNER JOIN t4 USING(a)
1338   INNER JOIN t5 USING(a)
1339   ORDER BY 1 NULLS FIRST;
1340 } {
1341   15 15 15 15 15 15
1342   19  -  - 19 19 19
1344 do_execsql_test joinB-98 {
1345   SELECT a, c, d, e, f, g
1346   FROM t1
1347   INNER JOIN t2 USING(a,b)
1348   FULL JOIN t3 USING(a,b)
1349   INNER JOIN t4 USING(a,b)
1350   INNER JOIN t5 USING(a,b)
1351   WHERE a<>13
1352   ORDER BY 1 NULLS FIRST;
1353 } {
1354   15 35 35 35 35 35
1355   19  -  - 39 39 39
1357 do_execsql_test joinB-99 {
1358   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1359   FROM t1
1360   INNER JOIN t2 USING(a)
1361   FULL JOIN t3 USING(a)
1362   INNER JOIN t4 USING(a)
1363   LEFT JOIN t5 USING(a)
1364   ORDER BY 1 NULLS FIRST;
1365 } {
1366   11  -  - 11 11  -
1367   13  -  - 13 13  -
1368   15 15 15 15 15 15
1369   19  -  - 19 19 19
1371 do_execsql_test joinB-100 {
1372   SELECT a, c, d, e, f, g
1373   FROM t1
1374   INNER JOIN (t2 FULL JOIN t3 USING(a)) USING(a)
1375   INNER JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
1376   WHERE a<=18
1377   ORDER BY 1 NULLS FIRST;
1378 } {
1379   11 31  - 31 31  -
1380   15 35 35 35 35 35
1382 do_execsql_test joinB-101 {
1383   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1384   FROM t1
1385   INNER JOIN t2 USING(a)
1386   FULL JOIN t3 USING(a)
1387   INNER JOIN t4 USING(a)
1388   RIGHT JOIN t5 USING(a)
1389   ORDER BY 1 NULLS FIRST;
1390 } {
1391   15 15 15 15 15 15
1392   17  -  -  -  - 17
1393   18  -  -  -  - 18
1394   19  -  - 19 19 19
1396 do_execsql_test joinB-102 {
1397   SELECT a, b, c, d, e, f, g
1398   FROM t1
1399   INNER JOIN t2 USING(a,b)
1400   FULL JOIN t3 USING(a,b)
1401   INNER JOIN t4 USING(a,b)
1402   RIGHT JOIN t5 USING(a,b)
1403   WHERE d<>33 OR d IS NULL
1404   ORDER BY 1 NULLS FIRST;
1405 } {
1406   15 25 35 35 35 35 35
1407   17 27  -  -  -  - 37
1408   18 28  -  -  -  - 38
1409   19 29  -  - 39 39 39
1411 do_execsql_test joinB-103 {
1412   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1413   FROM t1
1414   INNER JOIN t2 USING(a)
1415   FULL JOIN t3 USING(a)
1416   INNER JOIN t4 USING(a)
1417   FULL JOIN t5 USING(a)
1418   ORDER BY 1 NULLS FIRST;
1419 } {
1420   11  -  - 11 11  -
1421   13  -  - 13 13  -
1422   15 15 15 15 15 15
1423   17  -  -  -  - 17
1424   18  -  -  -  - 18
1425   19  -  - 19 19 19
1427 do_execsql_test joinB-104 {
1428   SELECT b, c, d, e, f, g
1429   FROM t1
1430   NATURAL INNER JOIN t2
1431   NATURAL FULL JOIN t3
1432   NATURAL INNER JOIN t4
1433   NATURAL FULL JOIN t5
1434   WHERE b BETWEEN 12 AND 17
1435   ORDER BY 1 NULLS FIRST;
1436 } {
1438 do_execsql_test joinB-105 {
1439   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1440   FROM t1
1441   INNER JOIN t2 USING(a)
1442   FULL JOIN t3 USING(a)
1443   LEFT JOIN t4 USING(a)
1444   INNER JOIN t5 USING(a)
1445   ORDER BY 1 NULLS FIRST;
1446 } {
1447   15 15 15 15 15 15
1448   17  -  - 17  - 17
1449   18  -  - 18  - 18
1450   19  -  - 19 19 19
1452 do_execsql_test joinB-106 {
1453   SELECT a, c, d, e, f, g
1454   FROM t1
1455   INNER JOIN t2 USING(a,b)
1456   FULL JOIN t3 USING(a,b)
1457   LEFT JOIN t4 USING(a,b)
1458   INNER JOIN t5 USING(a,b)
1459   WHERE a<>13
1460   ORDER BY 1 NULLS FIRST;
1461 } {
1462   15 35 35 35 35 35
1463   17  -  - 37  - 37
1464   18  -  - 38  - 38
1465   19  -  - 39 39 39
1467 do_execsql_test joinB-107 {
1468   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1469   FROM t1
1470   INNER JOIN t2 USING(a)
1471   FULL JOIN t3 USING(a)
1472   LEFT JOIN t4 USING(a)
1473   LEFT JOIN t5 USING(a)
1474   ORDER BY 1 NULLS FIRST;
1475 } {
1476    -  -  -  -  -  -
1477   11  -  - 11 11  -
1478   12 12 12 12  -  -
1479   13  -  - 13 13  -
1480   15 15 15 15 15 15
1481   17  -  - 17  - 17
1482   18  -  - 18  - 18
1483   19  -  - 19 19 19
1485 do_execsql_test joinB-108 {
1486   SELECT a, c, d, e, f, g
1487   FROM t1
1488   INNER JOIN (t2 FULL JOIN t3 USING(a)) USING(a)
1489   LEFT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
1490   WHERE a<=18
1491   ORDER BY 1 NULLS FIRST;
1492 } {
1493   11 31  - 31 31  -
1494   12 32 32 32  -  -
1495   15 35 35 35 35 35
1496   17 37  - 37  -  -
1498 do_execsql_test joinB-109 {
1499   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1500   FROM t1
1501   INNER JOIN t2 USING(a)
1502   FULL JOIN t3 USING(a)
1503   LEFT JOIN t4 USING(a)
1504   RIGHT JOIN t5 USING(a)
1505   ORDER BY 1 NULLS FIRST;
1506 } {
1507   15 15 15 15 15 15
1508   17  -  - 17  - 17
1509   18  -  - 18  - 18
1510   19  -  - 19 19 19
1512 do_execsql_test joinB-110 {
1513   SELECT a, b, c, d, e, f, g
1514   FROM t1
1515   INNER JOIN t2 USING(a,b)
1516   FULL JOIN t3 USING(a,b)
1517   LEFT JOIN t4 USING(a,b)
1518   RIGHT JOIN t5 USING(a,b)
1519   WHERE d<>33 OR d IS NULL
1520   ORDER BY 1 NULLS FIRST;
1521 } {
1522   15 25 35 35 35 35 35
1523   17 27  -  - 37  - 37
1524   18 28  -  - 38  - 38
1525   19 29  -  - 39 39 39
1527 do_execsql_test joinB-111 {
1528   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1529   FROM t1
1530   INNER JOIN t2 USING(a)
1531   FULL JOIN t3 USING(a)
1532   LEFT JOIN t4 USING(a)
1533   FULL JOIN t5 USING(a)
1534   ORDER BY 1 NULLS FIRST;
1535 } {
1536    -  -  -  -  -  -
1537   11  -  - 11 11  -
1538   12 12 12 12  -  -
1539   13  -  - 13 13  -
1540   15 15 15 15 15 15
1541   17  -  - 17  - 17
1542   18  -  - 18  - 18
1543   19  -  - 19 19 19
1545 do_execsql_test joinB-112 {
1546   SELECT b, c, d, e, f, g
1547   FROM t1
1548   NATURAL INNER JOIN t2
1549   NATURAL FULL JOIN t3
1550   NATURAL LEFT JOIN t4
1551   NATURAL FULL JOIN t5
1552   WHERE b BETWEEN 12 AND 17
1553   ORDER BY 1 NULLS FIRST;
1554 } {
1556 do_execsql_test joinB-113 {
1557   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1558   FROM t1
1559   INNER JOIN t2 USING(a)
1560   FULL JOIN t3 USING(a)
1561   RIGHT JOIN t4 USING(a)
1562   INNER JOIN t5 USING(a)
1563   ORDER BY 1 NULLS FIRST;
1564 } {
1565   15 15 15 15 15 15
1566   19  -  - 19 19 19
1568 do_execsql_test joinB-114 {
1569   SELECT a, c, d, e, f, g
1570   FROM t1
1571   INNER JOIN t2 USING(a,b)
1572   FULL JOIN t3 USING(a,b)
1573   RIGHT JOIN t4 USING(a,b)
1574   INNER JOIN t5 USING(a,b)
1575   WHERE a<>13
1576   ORDER BY 1 NULLS FIRST;
1577 } {
1578   15 35 35 35 35 35
1579   19  -  - 39 39 39
1581 do_execsql_test joinB-115 {
1582   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1583   FROM t1
1584   INNER JOIN t2 USING(a)
1585   FULL JOIN t3 USING(a)
1586   RIGHT JOIN t4 USING(a)
1587   LEFT JOIN t5 USING(a)
1588   ORDER BY 1 NULLS FIRST;
1589 } {
1590   11  -  - 11 11  -
1591   13  -  - 13 13  -
1592   15 15 15 15 15 15
1593   19  -  - 19 19 19
1595 do_execsql_test joinB-116 {
1596   SELECT a, c, d, e, f, g
1597   FROM t1
1598   INNER JOIN (t2 FULL JOIN t3 USING(a)) USING(a)
1599   RIGHT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
1600   WHERE a<=18
1601   ORDER BY 1 NULLS FIRST;
1602 } {
1603   11 31  - 31 31  -
1604   13  -  -  - 33  -
1605   15 35 35 35 35 35
1607 do_execsql_test joinB-117 {
1608   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1609   FROM t1
1610   INNER JOIN t2 USING(a)
1611   FULL JOIN t3 USING(a)
1612   RIGHT JOIN t4 USING(a)
1613   RIGHT JOIN t5 USING(a)
1614   ORDER BY 1 NULLS FIRST;
1615 } {
1616   15 15 15 15 15 15
1617   17  -  -  -  - 17
1618   18  -  -  -  - 18
1619   19  -  - 19 19 19
1621 do_execsql_test joinB-118 {
1622   SELECT a, b, c, d, e, f, g
1623   FROM t1
1624   INNER JOIN t2 USING(a,b)
1625   FULL JOIN t3 USING(a,b)
1626   RIGHT JOIN t4 USING(a,b)
1627   RIGHT JOIN t5 USING(a,b)
1628   WHERE d<>33 OR d IS NULL
1629   ORDER BY 1 NULLS FIRST;
1630 } {
1631   15 25 35 35 35 35 35
1632   17 27  -  -  -  - 37
1633   18 28  -  -  -  - 38
1634   19 29  -  - 39 39 39
1636 do_execsql_test joinB-119 {
1637   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1638   FROM t1
1639   INNER JOIN t2 USING(a)
1640   FULL JOIN t3 USING(a)
1641   RIGHT JOIN t4 USING(a)
1642   FULL JOIN t5 USING(a)
1643   ORDER BY 1 NULLS FIRST;
1644 } {
1645   11  -  - 11 11  -
1646   13  -  - 13 13  -
1647   15 15 15 15 15 15
1648   17  -  -  -  - 17
1649   18  -  -  -  - 18
1650   19  -  - 19 19 19
1652 do_execsql_test joinB-120 {
1653   SELECT b, c, d, e, f, g
1654   FROM t1
1655   NATURAL INNER JOIN t2
1656   NATURAL FULL JOIN t3
1657   NATURAL RIGHT JOIN t4
1658   NATURAL FULL JOIN t5
1659   WHERE b BETWEEN 12 AND 17
1660   ORDER BY 1 NULLS FIRST;
1661 } {
1663 do_execsql_test joinB-121 {
1664   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1665   FROM t1
1666   INNER JOIN t2 USING(a)
1667   FULL JOIN t3 USING(a)
1668   FULL JOIN t4 USING(a)
1669   INNER JOIN t5 USING(a)
1670   ORDER BY 1 NULLS FIRST;
1671 } {
1672   15 15 15 15 15 15
1673   17  -  - 17  - 17
1674   18  -  - 18  - 18
1675   19  -  - 19 19 19
1677 do_execsql_test joinB-122 {
1678   SELECT a, c, d, e, f, g
1679   FROM t1
1680   INNER JOIN t2 USING(a,b)
1681   FULL JOIN t3 USING(a,b)
1682   FULL JOIN t4 USING(a,b)
1683   INNER JOIN t5 USING(a,b)
1684   WHERE a<>13
1685   ORDER BY 1 NULLS FIRST;
1686 } {
1687   15 35 35 35 35 35
1688   17  -  - 37  - 37
1689   18  -  - 38  - 38
1690   19  -  - 39 39 39
1692 do_execsql_test joinB-123 {
1693   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1694   FROM t1
1695   INNER JOIN t2 USING(a)
1696   FULL JOIN t3 USING(a)
1697   FULL JOIN t4 USING(a)
1698   LEFT JOIN t5 USING(a)
1699   ORDER BY 1 NULLS FIRST;
1700 } {
1701    -  -  -  -  -  -
1702   11  -  - 11 11  -
1703   12 12 12 12  -  -
1704   13  -  - 13 13  -
1705   15 15 15 15 15 15
1706   17  -  - 17  - 17
1707   18  -  - 18  - 18
1708   19  -  - 19 19 19
1710 do_execsql_test joinB-124 {
1711   SELECT a, c, d, e, f, g
1712   FROM t1
1713   INNER JOIN (t2 FULL JOIN t3 USING(a)) USING(a)
1714   FULL JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
1715   WHERE a<=18
1716   ORDER BY 1 NULLS FIRST;
1717 } {
1718   11 31  - 31 31  -
1719   12 32 32 32  -  -
1720   13  -  -  - 33  -
1721   15 35 35 35 35 35
1722   17 37  - 37  -  -
1724 do_execsql_test joinB-125 {
1725   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1726   FROM t1
1727   INNER JOIN t2 USING(a)
1728   FULL JOIN t3 USING(a)
1729   FULL JOIN t4 USING(a)
1730   RIGHT JOIN t5 USING(a)
1731   ORDER BY 1 NULLS FIRST;
1732 } {
1733   15 15 15 15 15 15
1734   17  -  - 17  - 17
1735   18  -  - 18  - 18
1736   19  -  - 19 19 19
1738 do_execsql_test joinB-126 {
1739   SELECT a, b, c, d, e, f, g
1740   FROM t1
1741   INNER JOIN t2 USING(a,b)
1742   FULL JOIN t3 USING(a,b)
1743   FULL JOIN t4 USING(a,b)
1744   RIGHT JOIN t5 USING(a,b)
1745   WHERE d<>33 OR d IS NULL
1746   ORDER BY 1 NULLS FIRST;
1747 } {
1748   15 25 35 35 35 35 35
1749   17 27  -  - 37  - 37
1750   18 28  -  - 38  - 38
1751   19 29  -  - 39 39 39
1753 do_execsql_test joinB-127 {
1754   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1755   FROM t1
1756   INNER JOIN t2 USING(a)
1757   FULL JOIN t3 USING(a)
1758   FULL JOIN t4 USING(a)
1759   FULL JOIN t5 USING(a)
1760   ORDER BY 1 NULLS FIRST;
1761 } {
1762    -  -  -  -  -  -
1763   11  -  - 11 11  -
1764   12 12 12 12  -  -
1765   13  -  - 13 13  -
1766   15 15 15 15 15 15
1767   17  -  - 17  - 17
1768   18  -  - 18  - 18
1769   19  -  - 19 19 19
1771 do_execsql_test joinB-128 {
1772   SELECT b, c, d, e, f, g
1773   FROM t1
1774   NATURAL INNER JOIN t2
1775   NATURAL FULL JOIN t3
1776   NATURAL FULL JOIN t4
1777   NATURAL FULL JOIN t5
1778   WHERE b BETWEEN 12 AND 17
1779   ORDER BY 1 NULLS FIRST;
1780 } {
1782 do_execsql_test joinB-129 {
1783   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1784   FROM t1
1785   LEFT JOIN t2 USING(a)
1786   INNER JOIN t3 USING(a)
1787   INNER JOIN t4 USING(a)
1788   INNER JOIN t5 USING(a)
1789   ORDER BY 1 NULLS FIRST;
1790 } {
1791   15 15 15 15 15 15
1793 do_execsql_test joinB-130 {
1794   SELECT a, c, d, e, f, g
1795   FROM t1
1796   LEFT JOIN t2 USING(a,b)
1797   INNER JOIN t3 USING(a,b)
1798   INNER JOIN t4 USING(a,b)
1799   INNER JOIN t5 USING(a,b)
1800   WHERE a<>13
1801   ORDER BY 1 NULLS FIRST;
1802 } {
1803   15 35 35 35 35 35
1805 do_execsql_test joinB-131 {
1806   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1807   FROM t1
1808   LEFT JOIN t2 USING(a)
1809   INNER JOIN t3 USING(a)
1810   INNER JOIN t4 USING(a)
1811   LEFT JOIN t5 USING(a)
1812   ORDER BY 1 NULLS FIRST;
1813 } {
1814   11 11  - 11 11  -
1815   15 15 15 15 15 15
1817 do_execsql_test joinB-132 {
1818   SELECT a, c, d, e, f, g
1819   FROM t1
1820   LEFT JOIN (t2 INNER JOIN t3 USING(a)) USING(a)
1821   INNER JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
1822   WHERE a<=18
1823   ORDER BY 1 NULLS FIRST;
1824 } {
1825   11 31  -  - 31  -
1826   15 35 35 35 35 35
1828 do_execsql_test joinB-133 {
1829   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1830   FROM t1
1831   LEFT JOIN t2 USING(a)
1832   INNER JOIN t3 USING(a)
1833   INNER JOIN t4 USING(a)
1834   RIGHT JOIN t5 USING(a)
1835   ORDER BY 1 NULLS FIRST;
1836 } {
1837   15 15 15 15 15 15
1838   17  -  -  -  - 17
1839   18  -  -  -  - 18
1840   19  -  -  -  - 19
1842 do_execsql_test joinB-134 {
1843   SELECT a, b, c, d, e, f, g
1844   FROM t1
1845   LEFT JOIN t2 USING(a,b)
1846   INNER JOIN t3 USING(a,b)
1847   INNER JOIN t4 USING(a,b)
1848   RIGHT JOIN t5 USING(a,b)
1849   WHERE d<>33 OR d IS NULL
1850   ORDER BY 1 NULLS FIRST;
1851 } {
1852   15 25 35 35 35 35 35
1853   17 27  -  -  -  - 37
1854   18 28  -  -  -  - 38
1855   19 29  -  -  -  - 39
1857 do_execsql_test joinB-135 {
1858   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1859   FROM t1
1860   LEFT JOIN t2 USING(a)
1861   INNER JOIN t3 USING(a)
1862   INNER JOIN t4 USING(a)
1863   FULL JOIN t5 USING(a)
1864   ORDER BY 1 NULLS FIRST;
1865 } {
1866   11 11  - 11 11  -
1867   15 15 15 15 15 15
1868   17  -  -  -  - 17
1869   18  -  -  -  - 18
1870   19  -  -  -  - 19
1872 do_execsql_test joinB-136 {
1873   SELECT b, c, d, e, f, g
1874   FROM t1
1875   NATURAL LEFT JOIN t2
1876   NATURAL INNER JOIN t3
1877   NATURAL INNER JOIN t4
1878   NATURAL FULL JOIN t5
1879   WHERE b BETWEEN 12 AND 17
1880   ORDER BY 1 NULLS FIRST;
1881 } {
1883 do_execsql_test joinB-137 {
1884   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1885   FROM t1
1886   LEFT JOIN t2 USING(a)
1887   INNER JOIN t3 USING(a)
1888   LEFT JOIN t4 USING(a)
1889   INNER JOIN t5 USING(a)
1890   ORDER BY 1 NULLS FIRST;
1891 } {
1892   15 15 15 15 15 15
1893   17 17  - 17  - 17
1895 do_execsql_test joinB-138 {
1896   SELECT a, c, d, e, f, g
1897   FROM t1
1898   LEFT JOIN t2 USING(a,b)
1899   INNER JOIN t3 USING(a,b)
1900   LEFT JOIN t4 USING(a,b)
1901   INNER JOIN t5 USING(a,b)
1902   WHERE a<>13
1903   ORDER BY 1 NULLS FIRST;
1904 } {
1905   15 35 35 35 35 35
1906   17 37  - 37  - 37
1908 do_execsql_test joinB-139 {
1909   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1910   FROM t1
1911   LEFT JOIN t2 USING(a)
1912   INNER JOIN t3 USING(a)
1913   LEFT JOIN t4 USING(a)
1914   LEFT JOIN t5 USING(a)
1915   ORDER BY 1 NULLS FIRST;
1916 } {
1917   11 11  - 11 11  -
1918   12 12 12 12  -  -
1919   15 15 15 15 15 15
1920   17 17  - 17  - 17
1922 do_execsql_test joinB-140 {
1923   SELECT a, c, d, e, f, g
1924   FROM t1
1925   LEFT JOIN (t2 INNER JOIN t3 USING(a)) USING(a)
1926   LEFT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
1927   WHERE a<=18
1928   ORDER BY 1 NULLS FIRST;
1929 } {
1930   11 31  -  - 31  -
1931   12 32 32 32  -  -
1932   15 35 35 35 35 35
1933   17 37  -  -  -  -
1935 do_execsql_test joinB-141 {
1936   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1937   FROM t1
1938   LEFT JOIN t2 USING(a)
1939   INNER JOIN t3 USING(a)
1940   LEFT JOIN t4 USING(a)
1941   RIGHT JOIN t5 USING(a)
1942   ORDER BY 1 NULLS FIRST;
1943 } {
1944   15 15 15 15 15 15
1945   17 17  - 17  - 17
1946   18  -  -  -  - 18
1947   19  -  -  -  - 19
1949 do_execsql_test joinB-142 {
1950   SELECT a, b, c, d, e, f, g
1951   FROM t1
1952   LEFT JOIN t2 USING(a,b)
1953   INNER JOIN t3 USING(a,b)
1954   LEFT JOIN t4 USING(a,b)
1955   RIGHT JOIN t5 USING(a,b)
1956   WHERE d<>33 OR d IS NULL
1957   ORDER BY 1 NULLS FIRST;
1958 } {
1959   15 25 35 35 35 35 35
1960   17 27 37  - 37  - 37
1961   18 28  -  -  -  - 38
1962   19 29  -  -  -  - 39
1964 do_execsql_test joinB-143 {
1965   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1966   FROM t1
1967   LEFT JOIN t2 USING(a)
1968   INNER JOIN t3 USING(a)
1969   LEFT JOIN t4 USING(a)
1970   FULL JOIN t5 USING(a)
1971   ORDER BY 1 NULLS FIRST;
1972 } {
1973   11 11  - 11 11  -
1974   12 12 12 12  -  -
1975   15 15 15 15 15 15
1976   17 17  - 17  - 17
1977   18  -  -  -  - 18
1978   19  -  -  -  - 19
1980 do_execsql_test joinB-144 {
1981   SELECT b, c, d, e, f, g
1982   FROM t1
1983   NATURAL LEFT JOIN t2
1984   NATURAL INNER JOIN t3
1985   NATURAL LEFT JOIN t4
1986   NATURAL FULL JOIN t5
1987   WHERE b BETWEEN 12 AND 17
1988   ORDER BY 1 NULLS FIRST;
1989 } {
1991 do_execsql_test joinB-145 {
1992   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
1993   FROM t1
1994   LEFT JOIN t2 USING(a)
1995   INNER JOIN t3 USING(a)
1996   RIGHT JOIN t4 USING(a)
1997   INNER JOIN t5 USING(a)
1998   ORDER BY 1 NULLS FIRST;
1999 } {
2000   15 15 15 15 15 15
2001   19  -  -  - 19 19
2003 do_execsql_test joinB-146 {
2004   SELECT a, c, d, e, f, g
2005   FROM t1
2006   LEFT JOIN t2 USING(a,b)
2007   INNER JOIN t3 USING(a,b)
2008   RIGHT JOIN t4 USING(a,b)
2009   INNER JOIN t5 USING(a,b)
2010   WHERE a<>13
2011   ORDER BY 1 NULLS FIRST;
2012 } {
2013   15 35 35 35 35 35
2014   19  -  -  - 39 39
2016 do_execsql_test joinB-147 {
2017   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2018   FROM t1
2019   LEFT JOIN t2 USING(a)
2020   INNER JOIN t3 USING(a)
2021   RIGHT JOIN t4 USING(a)
2022   LEFT JOIN t5 USING(a)
2023   ORDER BY 1 NULLS FIRST;
2024 } {
2025   11 11  - 11 11  -
2026   13  -  -  - 13  -
2027   15 15 15 15 15 15
2028   19  -  -  - 19 19
2030 do_execsql_test joinB-148 {
2031   SELECT a, c, d, e, f, g
2032   FROM t1
2033   LEFT JOIN (t2 INNER JOIN t3 USING(a)) USING(a)
2034   RIGHT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
2035   WHERE a<=18
2036   ORDER BY 1 NULLS FIRST;
2037 } {
2038   11 31  -  - 31  -
2039   13  -  -  - 33  -
2040   15 35 35 35 35 35
2042 do_execsql_test joinB-149 {
2043   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2044   FROM t1
2045   LEFT JOIN t2 USING(a)
2046   INNER JOIN t3 USING(a)
2047   RIGHT JOIN t4 USING(a)
2048   RIGHT JOIN t5 USING(a)
2049   ORDER BY 1 NULLS FIRST;
2050 } {
2051   15 15 15 15 15 15
2052   17  -  -  -  - 17
2053   18  -  -  -  - 18
2054   19  -  -  - 19 19
2056 do_execsql_test joinB-150 {
2057   SELECT a, b, c, d, e, f, g
2058   FROM t1
2059   LEFT JOIN t2 USING(a,b)
2060   INNER JOIN t3 USING(a,b)
2061   RIGHT JOIN t4 USING(a,b)
2062   RIGHT JOIN t5 USING(a,b)
2063   WHERE d<>33 OR d IS NULL
2064   ORDER BY 1 NULLS FIRST;
2065 } {
2066   15 25 35 35 35 35 35
2067   17 27  -  -  -  - 37
2068   18 28  -  -  -  - 38
2069   19 29  -  -  - 39 39
2071 do_execsql_test joinB-151 {
2072   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2073   FROM t1
2074   LEFT JOIN t2 USING(a)
2075   INNER JOIN t3 USING(a)
2076   RIGHT JOIN t4 USING(a)
2077   FULL JOIN t5 USING(a)
2078   ORDER BY 1 NULLS FIRST;
2079 } {
2080   11 11  - 11 11  -
2081   13  -  -  - 13  -
2082   15 15 15 15 15 15
2083   17  -  -  -  - 17
2084   18  -  -  -  - 18
2085   19  -  -  - 19 19
2087 do_execsql_test joinB-152 {
2088   SELECT b, c, d, e, f, g
2089   FROM t1
2090   NATURAL LEFT JOIN t2
2091   NATURAL INNER JOIN t3
2092   NATURAL RIGHT JOIN t4
2093   NATURAL FULL JOIN t5
2094   WHERE b BETWEEN 12 AND 17
2095   ORDER BY 1 NULLS FIRST;
2096 } {
2098 do_execsql_test joinB-153 {
2099   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2100   FROM t1
2101   LEFT JOIN t2 USING(a)
2102   INNER JOIN t3 USING(a)
2103   FULL JOIN t4 USING(a)
2104   INNER JOIN t5 USING(a)
2105   ORDER BY 1 NULLS FIRST;
2106 } {
2107   15 15 15 15 15 15
2108   17 17  - 17  - 17
2109   19  -  -  - 19 19
2111 do_execsql_test joinB-154 {
2112   SELECT a, c, d, e, f, g
2113   FROM t1
2114   LEFT JOIN t2 USING(a,b)
2115   INNER JOIN t3 USING(a,b)
2116   FULL JOIN t4 USING(a,b)
2117   INNER JOIN t5 USING(a,b)
2118   WHERE a<>13
2119   ORDER BY 1 NULLS FIRST;
2120 } {
2121   15 35 35 35 35 35
2122   17 37  - 37  - 37
2123   19  -  -  - 39 39
2125 do_execsql_test joinB-155 {
2126   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2127   FROM t1
2128   LEFT JOIN t2 USING(a)
2129   INNER JOIN t3 USING(a)
2130   FULL JOIN t4 USING(a)
2131   LEFT JOIN t5 USING(a)
2132   ORDER BY 1 NULLS FIRST;
2133 } {
2134   11 11  - 11 11  -
2135   12 12 12 12  -  -
2136   13  -  -  - 13  -
2137   15 15 15 15 15 15
2138   17 17  - 17  - 17
2139   19  -  -  - 19 19
2141 do_execsql_test joinB-156 {
2142   SELECT a, c, d, e, f, g
2143   FROM t1
2144   LEFT JOIN (t2 INNER JOIN t3 USING(a)) USING(a)
2145   FULL JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
2146   WHERE a<=18
2147   ORDER BY 1 NULLS FIRST;
2148 } {
2149   11 31  -  - 31  -
2150   12 32 32 32  -  -
2151   13  -  -  - 33  -
2152   15 35 35 35 35 35
2153   17 37  -  -  -  -
2155 do_execsql_test joinB-157 {
2156   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2157   FROM t1
2158   LEFT JOIN t2 USING(a)
2159   INNER JOIN t3 USING(a)
2160   FULL JOIN t4 USING(a)
2161   RIGHT JOIN t5 USING(a)
2162   ORDER BY 1 NULLS FIRST;
2163 } {
2164   15 15 15 15 15 15
2165   17 17  - 17  - 17
2166   18  -  -  -  - 18
2167   19  -  -  - 19 19
2169 do_execsql_test joinB-158 {
2170   SELECT a, b, c, d, e, f, g
2171   FROM t1
2172   LEFT JOIN t2 USING(a,b)
2173   INNER JOIN t3 USING(a,b)
2174   FULL JOIN t4 USING(a,b)
2175   RIGHT JOIN t5 USING(a,b)
2176   WHERE d<>33 OR d IS NULL
2177   ORDER BY 1 NULLS FIRST;
2178 } {
2179   15 25 35 35 35 35 35
2180   17 27 37  - 37  - 37
2181   18 28  -  -  -  - 38
2182   19 29  -  -  - 39 39
2184 do_execsql_test joinB-159 {
2185   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2186   FROM t1
2187   LEFT JOIN t2 USING(a)
2188   INNER JOIN t3 USING(a)
2189   FULL JOIN t4 USING(a)
2190   FULL JOIN t5 USING(a)
2191   ORDER BY 1 NULLS FIRST;
2192 } {
2193   11 11  - 11 11  -
2194   12 12 12 12  -  -
2195   13  -  -  - 13  -
2196   15 15 15 15 15 15
2197   17 17  - 17  - 17
2198   18  -  -  -  - 18
2199   19  -  -  - 19 19
2201 do_execsql_test joinB-160 {
2202   SELECT b, c, d, e, f, g
2203   FROM t1
2204   NATURAL LEFT JOIN t2
2205   NATURAL INNER JOIN t3
2206   NATURAL FULL JOIN t4
2207   NATURAL FULL JOIN t5
2208   WHERE b BETWEEN 12 AND 17
2209   ORDER BY 1 NULLS FIRST;
2210 } {
2212 do_execsql_test joinB-161 {
2213   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2214   FROM t1
2215   LEFT JOIN t2 USING(a)
2216   LEFT JOIN t3 USING(a)
2217   INNER JOIN t4 USING(a)
2218   INNER JOIN t5 USING(a)
2219   ORDER BY 1 NULLS FIRST;
2220 } {
2221   15 15 15 15 15 15
2223 do_execsql_test joinB-162 {
2224   SELECT a, c, d, e, f, g
2225   FROM t1
2226   LEFT JOIN t2 USING(a,b)
2227   LEFT JOIN t3 USING(a,b)
2228   INNER JOIN t4 USING(a,b)
2229   INNER JOIN t5 USING(a,b)
2230   WHERE a<>13
2231   ORDER BY 1 NULLS FIRST;
2232 } {
2233   15 35 35 35 35 35
2235 do_execsql_test joinB-163 {
2236   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2237   FROM t1
2238   LEFT JOIN t2 USING(a)
2239   LEFT JOIN t3 USING(a)
2240   INNER JOIN t4 USING(a)
2241   LEFT JOIN t5 USING(a)
2242   ORDER BY 1 NULLS FIRST;
2243 } {
2244   11 11  - 11 11  -
2245   15 15 15 15 15 15
2247 do_execsql_test joinB-164 {
2248   SELECT a, c, d, e, f, g
2249   FROM t1
2250   LEFT JOIN (t2 LEFT JOIN t3 USING(a)) USING(a)
2251   INNER JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
2252   WHERE a<=18
2253   ORDER BY 1 NULLS FIRST;
2254 } {
2255   11 31  -  - 31  -
2256   15 35 35 35 35 35
2258 do_execsql_test joinB-165 {
2259   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2260   FROM t1
2261   LEFT JOIN t2 USING(a)
2262   LEFT JOIN t3 USING(a)
2263   INNER JOIN t4 USING(a)
2264   RIGHT JOIN t5 USING(a)
2265   ORDER BY 1 NULLS FIRST;
2266 } {
2267   15 15 15 15 15 15
2268   17  -  -  -  - 17
2269   18  -  -  -  - 18
2270   19  -  -  -  - 19
2272 do_execsql_test joinB-166 {
2273   SELECT a, b, c, d, e, f, g
2274   FROM t1
2275   LEFT JOIN t2 USING(a,b)
2276   LEFT JOIN t3 USING(a,b)
2277   INNER JOIN t4 USING(a,b)
2278   RIGHT JOIN t5 USING(a,b)
2279   WHERE d<>33 OR d IS NULL
2280   ORDER BY 1 NULLS FIRST;
2281 } {
2282   15 25 35 35 35 35 35
2283   17 27  -  -  -  - 37
2284   18 28  -  -  -  - 38
2285   19 29  -  -  -  - 39
2287 do_execsql_test joinB-167 {
2288   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2289   FROM t1
2290   LEFT JOIN t2 USING(a)
2291   LEFT JOIN t3 USING(a)
2292   INNER JOIN t4 USING(a)
2293   FULL JOIN t5 USING(a)
2294   ORDER BY 1 NULLS FIRST;
2295 } {
2296   11 11  - 11 11  -
2297   15 15 15 15 15 15
2298   17  -  -  -  - 17
2299   18  -  -  -  - 18
2300   19  -  -  -  - 19
2302 do_execsql_test joinB-168 {
2303   SELECT b, c, d, e, f, g
2304   FROM t1
2305   NATURAL LEFT JOIN t2
2306   NATURAL LEFT JOIN t3
2307   NATURAL INNER JOIN t4
2308   NATURAL FULL JOIN t5
2309   WHERE b BETWEEN 12 AND 17
2310   ORDER BY 1 NULLS FIRST;
2311 } {
2313 do_execsql_test joinB-169 {
2314   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2315   FROM t1
2316   LEFT JOIN t2 USING(a)
2317   LEFT JOIN t3 USING(a)
2318   LEFT JOIN t4 USING(a)
2319   INNER JOIN t5 USING(a)
2320   ORDER BY 1 NULLS FIRST;
2321 } {
2322   15 15 15 15 15 15
2323   17 17  - 17  - 17
2325 do_execsql_test joinB-170 {
2326   SELECT a, c, d, e, f, g
2327   FROM t1
2328   LEFT JOIN t2 USING(a,b)
2329   LEFT JOIN t3 USING(a,b)
2330   LEFT JOIN t4 USING(a,b)
2331   INNER JOIN t5 USING(a,b)
2332   WHERE a<>13
2333   ORDER BY 1 NULLS FIRST;
2334 } {
2335   15 35 35 35 35 35
2336   17 37  - 37  - 37
2338 do_execsql_test joinB-171 {
2339   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2340   FROM t1
2341   LEFT JOIN t2 USING(a)
2342   LEFT JOIN t3 USING(a)
2343   LEFT JOIN t4 USING(a)
2344   LEFT JOIN t5 USING(a)
2345   ORDER BY 1 NULLS FIRST;
2346 } {
2347   11 11  - 11 11  -
2348   12 12 12 12  -  -
2349   15 15 15 15 15 15
2350   17 17  - 17  - 17
2352 do_execsql_test joinB-172 {
2353   SELECT a, c, d, e, f, g
2354   FROM t1
2355   LEFT JOIN (t2 LEFT JOIN t3 USING(a)) USING(a)
2356   LEFT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
2357   WHERE a<=18
2358   ORDER BY 1 NULLS FIRST;
2359 } {
2360   11 31  -  - 31  -
2361   12 32 32 32  -  -
2362   15 35 35 35 35 35
2363   17 37  -  -  -  -
2365 do_execsql_test joinB-173 {
2366   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2367   FROM t1
2368   LEFT JOIN t2 USING(a)
2369   LEFT JOIN t3 USING(a)
2370   LEFT JOIN t4 USING(a)
2371   RIGHT JOIN t5 USING(a)
2372   ORDER BY 1 NULLS FIRST;
2373 } {
2374   15 15 15 15 15 15
2375   17 17  - 17  - 17
2376   18  -  -  -  - 18
2377   19  -  -  -  - 19
2379 do_execsql_test joinB-174 {
2380   SELECT a, b, c, d, e, f, g
2381   FROM t1
2382   LEFT JOIN t2 USING(a,b)
2383   LEFT JOIN t3 USING(a,b)
2384   LEFT JOIN t4 USING(a,b)
2385   RIGHT JOIN t5 USING(a,b)
2386   WHERE d<>33 OR d IS NULL
2387   ORDER BY 1 NULLS FIRST;
2388 } {
2389   15 25 35 35 35 35 35
2390   17 27 37  - 37  - 37
2391   18 28  -  -  -  - 38
2392   19 29  -  -  -  - 39
2394 do_execsql_test joinB-175 {
2395   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2396   FROM t1
2397   LEFT JOIN t2 USING(a)
2398   LEFT JOIN t3 USING(a)
2399   LEFT JOIN t4 USING(a)
2400   FULL JOIN t5 USING(a)
2401   ORDER BY 1 NULLS FIRST;
2402 } {
2403   11 11  - 11 11  -
2404   12 12 12 12  -  -
2405   15 15 15 15 15 15
2406   17 17  - 17  - 17
2407   18  -  -  -  - 18
2408   19  -  -  -  - 19
2410 do_execsql_test joinB-176 {
2411   SELECT b, c, d, e, f, g
2412   FROM t1
2413   NATURAL LEFT JOIN t2
2414   NATURAL LEFT JOIN t3
2415   NATURAL LEFT JOIN t4
2416   NATURAL FULL JOIN t5
2417   WHERE b BETWEEN 12 AND 17
2418   ORDER BY 1 NULLS FIRST;
2419 } {
2421 do_execsql_test joinB-177 {
2422   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2423   FROM t1
2424   LEFT JOIN t2 USING(a)
2425   LEFT JOIN t3 USING(a)
2426   RIGHT JOIN t4 USING(a)
2427   INNER JOIN t5 USING(a)
2428   ORDER BY 1 NULLS FIRST;
2429 } {
2430   15 15 15 15 15 15
2431   19  -  -  - 19 19
2433 do_execsql_test joinB-178 {
2434   SELECT a, c, d, e, f, g
2435   FROM t1
2436   LEFT JOIN t2 USING(a,b)
2437   LEFT JOIN t3 USING(a,b)
2438   RIGHT JOIN t4 USING(a,b)
2439   INNER JOIN t5 USING(a,b)
2440   WHERE a<>13
2441   ORDER BY 1 NULLS FIRST;
2442 } {
2443   15 35 35 35 35 35
2444   19  -  -  - 39 39
2446 do_execsql_test joinB-179 {
2447   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2448   FROM t1
2449   LEFT JOIN t2 USING(a)
2450   LEFT JOIN t3 USING(a)
2451   RIGHT JOIN t4 USING(a)
2452   LEFT JOIN t5 USING(a)
2453   ORDER BY 1 NULLS FIRST;
2454 } {
2455   11 11  - 11 11  -
2456   13  -  -  - 13  -
2457   15 15 15 15 15 15
2458   19  -  -  - 19 19
2460 do_execsql_test joinB-180 {
2461   SELECT a, c, d, e, f, g
2462   FROM t1
2463   LEFT JOIN (t2 LEFT JOIN t3 USING(a)) USING(a)
2464   RIGHT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
2465   WHERE a<=18
2466   ORDER BY 1 NULLS FIRST;
2467 } {
2468   11 31  -  - 31  -
2469   13  -  -  - 33  -
2470   15 35 35 35 35 35
2472 do_execsql_test joinB-181 {
2473   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2474   FROM t1
2475   LEFT JOIN t2 USING(a)
2476   LEFT JOIN t3 USING(a)
2477   RIGHT JOIN t4 USING(a)
2478   RIGHT JOIN t5 USING(a)
2479   ORDER BY 1 NULLS FIRST;
2480 } {
2481   15 15 15 15 15 15
2482   17  -  -  -  - 17
2483   18  -  -  -  - 18
2484   19  -  -  - 19 19
2486 do_execsql_test joinB-182 {
2487   SELECT a, b, c, d, e, f, g
2488   FROM t1
2489   LEFT JOIN t2 USING(a,b)
2490   LEFT JOIN t3 USING(a,b)
2491   RIGHT JOIN t4 USING(a,b)
2492   RIGHT JOIN t5 USING(a,b)
2493   WHERE d<>33 OR d IS NULL
2494   ORDER BY 1 NULLS FIRST;
2495 } {
2496   15 25 35 35 35 35 35
2497   17 27  -  -  -  - 37
2498   18 28  -  -  -  - 38
2499   19 29  -  -  - 39 39
2501 do_execsql_test joinB-183 {
2502   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2503   FROM t1
2504   LEFT JOIN t2 USING(a)
2505   LEFT JOIN t3 USING(a)
2506   RIGHT JOIN t4 USING(a)
2507   FULL JOIN t5 USING(a)
2508   ORDER BY 1 NULLS FIRST;
2509 } {
2510   11 11  - 11 11  -
2511   13  -  -  - 13  -
2512   15 15 15 15 15 15
2513   17  -  -  -  - 17
2514   18  -  -  -  - 18
2515   19  -  -  - 19 19
2517 do_execsql_test joinB-184 {
2518   SELECT b, c, d, e, f, g
2519   FROM t1
2520   NATURAL LEFT JOIN t2
2521   NATURAL LEFT JOIN t3
2522   NATURAL RIGHT JOIN t4
2523   NATURAL FULL JOIN t5
2524   WHERE b BETWEEN 12 AND 17
2525   ORDER BY 1 NULLS FIRST;
2526 } {
2528 do_execsql_test joinB-185 {
2529   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2530   FROM t1
2531   LEFT JOIN t2 USING(a)
2532   LEFT JOIN t3 USING(a)
2533   FULL JOIN t4 USING(a)
2534   INNER JOIN t5 USING(a)
2535   ORDER BY 1 NULLS FIRST;
2536 } {
2537   15 15 15 15 15 15
2538   17 17  - 17  - 17
2539   19  -  -  - 19 19
2541 do_execsql_test joinB-186 {
2542   SELECT a, c, d, e, f, g
2543   FROM t1
2544   LEFT JOIN t2 USING(a,b)
2545   LEFT JOIN t3 USING(a,b)
2546   FULL JOIN t4 USING(a,b)
2547   INNER JOIN t5 USING(a,b)
2548   WHERE a<>13
2549   ORDER BY 1 NULLS FIRST;
2550 } {
2551   15 35 35 35 35 35
2552   17 37  - 37  - 37
2553   19  -  -  - 39 39
2555 do_execsql_test joinB-187 {
2556   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2557   FROM t1
2558   LEFT JOIN t2 USING(a)
2559   LEFT JOIN t3 USING(a)
2560   FULL JOIN t4 USING(a)
2561   LEFT JOIN t5 USING(a)
2562   ORDER BY 1 NULLS FIRST;
2563 } {
2564   11 11  - 11 11  -
2565   12 12 12 12  -  -
2566   13  -  -  - 13  -
2567   15 15 15 15 15 15
2568   17 17  - 17  - 17
2569   19  -  -  - 19 19
2571 do_execsql_test joinB-188 {
2572   SELECT a, c, d, e, f, g
2573   FROM t1
2574   LEFT JOIN (t2 LEFT JOIN t3 USING(a)) USING(a)
2575   FULL JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
2576   WHERE a<=18
2577   ORDER BY 1 NULLS FIRST;
2578 } {
2579   11 31  -  - 31  -
2580   12 32 32 32  -  -
2581   13  -  -  - 33  -
2582   15 35 35 35 35 35
2583   17 37  -  -  -  -
2585 do_execsql_test joinB-189 {
2586   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2587   FROM t1
2588   LEFT JOIN t2 USING(a)
2589   LEFT JOIN t3 USING(a)
2590   FULL JOIN t4 USING(a)
2591   RIGHT JOIN t5 USING(a)
2592   ORDER BY 1 NULLS FIRST;
2593 } {
2594   15 15 15 15 15 15
2595   17 17  - 17  - 17
2596   18  -  -  -  - 18
2597   19  -  -  - 19 19
2599 do_execsql_test joinB-190 {
2600   SELECT a, b, c, d, e, f, g
2601   FROM t1
2602   LEFT JOIN t2 USING(a,b)
2603   LEFT JOIN t3 USING(a,b)
2604   FULL JOIN t4 USING(a,b)
2605   RIGHT JOIN t5 USING(a,b)
2606   WHERE d<>33 OR d IS NULL
2607   ORDER BY 1 NULLS FIRST;
2608 } {
2609   15 25 35 35 35 35 35
2610   17 27 37  - 37  - 37
2611   18 28  -  -  -  - 38
2612   19 29  -  -  - 39 39
2614 do_execsql_test joinB-191 {
2615   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2616   FROM t1
2617   LEFT JOIN t2 USING(a)
2618   LEFT JOIN t3 USING(a)
2619   FULL JOIN t4 USING(a)
2620   FULL JOIN t5 USING(a)
2621   ORDER BY 1 NULLS FIRST;
2622 } {
2623   11 11  - 11 11  -
2624   12 12 12 12  -  -
2625   13  -  -  - 13  -
2626   15 15 15 15 15 15
2627   17 17  - 17  - 17
2628   18  -  -  -  - 18
2629   19  -  -  - 19 19
2631 do_execsql_test joinB-192 {
2632   SELECT b, c, d, e, f, g
2633   FROM t1
2634   NATURAL LEFT JOIN t2
2635   NATURAL LEFT JOIN t3
2636   NATURAL FULL JOIN t4
2637   NATURAL FULL JOIN t5
2638   WHERE b BETWEEN 12 AND 17
2639   ORDER BY 1 NULLS FIRST;
2640 } {
2642 do_execsql_test joinB-193 {
2643   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2644   FROM t1
2645   LEFT JOIN t2 USING(a)
2646   RIGHT JOIN t3 USING(a)
2647   INNER JOIN t4 USING(a)
2648   INNER JOIN t5 USING(a)
2649   ORDER BY 1 NULLS FIRST;
2650 } {
2651   15 15 15 15 15 15
2652   19  -  - 19 19 19
2654 do_execsql_test joinB-194 {
2655   SELECT a, c, d, e, f, g
2656   FROM t1
2657   LEFT JOIN t2 USING(a,b)
2658   RIGHT JOIN t3 USING(a,b)
2659   INNER JOIN t4 USING(a,b)
2660   INNER JOIN t5 USING(a,b)
2661   WHERE a<>13
2662   ORDER BY 1 NULLS FIRST;
2663 } {
2664   15 35 35 35 35 35
2665   19  -  - 39 39 39
2667 do_execsql_test joinB-195 {
2668   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2669   FROM t1
2670   LEFT JOIN t2 USING(a)
2671   RIGHT JOIN t3 USING(a)
2672   INNER JOIN t4 USING(a)
2673   LEFT JOIN t5 USING(a)
2674   ORDER BY 1 NULLS FIRST;
2675 } {
2676   11 11  - 11 11  -
2677   13  -  - 13 13  -
2678   15 15 15 15 15 15
2679   19  -  - 19 19 19
2681 do_execsql_test joinB-196 {
2682   SELECT a, c, d, e, f, g
2683   FROM t1
2684   LEFT JOIN (t2 RIGHT JOIN t3 USING(a)) USING(a)
2685   INNER JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
2686   WHERE a<=18
2687   ORDER BY 1 NULLS FIRST;
2688 } {
2689   11 31  - 31 31  -
2690   15 35 35 35 35 35
2692 do_execsql_test joinB-197 {
2693   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2694   FROM t1
2695   LEFT JOIN t2 USING(a)
2696   RIGHT JOIN t3 USING(a)
2697   INNER JOIN t4 USING(a)
2698   RIGHT JOIN t5 USING(a)
2699   ORDER BY 1 NULLS FIRST;
2700 } {
2701   15 15 15 15 15 15
2702   17  -  -  -  - 17
2703   18  -  -  -  - 18
2704   19  -  - 19 19 19
2706 do_execsql_test joinB-198 {
2707   SELECT a, b, c, d, e, f, g
2708   FROM t1
2709   LEFT JOIN t2 USING(a,b)
2710   RIGHT JOIN t3 USING(a,b)
2711   INNER JOIN t4 USING(a,b)
2712   RIGHT JOIN t5 USING(a,b)
2713   WHERE d<>33 OR d IS NULL
2714   ORDER BY 1 NULLS FIRST;
2715 } {
2716   15 25 35 35 35 35 35
2717   17 27  -  -  -  - 37
2718   18 28  -  -  -  - 38
2719   19 29  -  - 39 39 39
2721 do_execsql_test joinB-199 {
2722   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2723   FROM t1
2724   LEFT JOIN t2 USING(a)
2725   RIGHT JOIN t3 USING(a)
2726   INNER JOIN t4 USING(a)
2727   FULL JOIN t5 USING(a)
2728   ORDER BY 1 NULLS FIRST;
2729 } {
2730   11 11  - 11 11  -
2731   13  -  - 13 13  -
2732   15 15 15 15 15 15
2733   17  -  -  -  - 17
2734   18  -  -  -  - 18
2735   19  -  - 19 19 19
2737 do_execsql_test joinB-200 {
2738   SELECT b, c, d, e, f, g
2739   FROM t1
2740   NATURAL LEFT JOIN t2
2741   NATURAL RIGHT JOIN t3
2742   NATURAL INNER JOIN t4
2743   NATURAL FULL JOIN t5
2744   WHERE b BETWEEN 12 AND 17
2745   ORDER BY 1 NULLS FIRST;
2746 } {
2748 do_execsql_test joinB-201 {
2749   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2750   FROM t1
2751   LEFT JOIN t2 USING(a)
2752   RIGHT JOIN t3 USING(a)
2753   LEFT JOIN t4 USING(a)
2754   INNER JOIN t5 USING(a)
2755   ORDER BY 1 NULLS FIRST;
2756 } {
2757   15 15 15 15 15 15
2758   17 17  - 17  - 17
2759   18  -  - 18  - 18
2760   19  -  - 19 19 19
2762 do_execsql_test joinB-202 {
2763   SELECT a, c, d, e, f, g
2764   FROM t1
2765   LEFT JOIN t2 USING(a,b)
2766   RIGHT JOIN t3 USING(a,b)
2767   LEFT JOIN t4 USING(a,b)
2768   INNER JOIN t5 USING(a,b)
2769   WHERE a<>13
2770   ORDER BY 1 NULLS FIRST;
2771 } {
2772   15 35 35 35 35 35
2773   17 37  - 37  - 37
2774   18  -  - 38  - 38
2775   19  -  - 39 39 39
2777 do_execsql_test joinB-203 {
2778   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2779   FROM t1
2780   LEFT JOIN t2 USING(a)
2781   RIGHT JOIN t3 USING(a)
2782   LEFT JOIN t4 USING(a)
2783   LEFT JOIN t5 USING(a)
2784   ORDER BY 1 NULLS FIRST;
2785 } {
2786    -  -  -  -  -  -
2787   11 11  - 11 11  -
2788   12 12 12 12  -  -
2789   13  -  - 13 13  -
2790   15 15 15 15 15 15
2791   17 17  - 17  - 17
2792   18  -  - 18  - 18
2793   19  -  - 19 19 19
2795 do_execsql_test joinB-204 {
2796   SELECT a, c, d, e, f, g
2797   FROM t1
2798   LEFT JOIN (t2 RIGHT JOIN t3 USING(a)) USING(a)
2799   LEFT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
2800   WHERE a<=18
2801   ORDER BY 1 NULLS FIRST;
2802 } {
2803   11 31  - 31 31  -
2804   12 32 32 32  -  -
2805   15 35 35 35 35 35
2806   17 37  - 37  -  -
2808 do_execsql_test joinB-205 {
2809   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2810   FROM t1
2811   LEFT JOIN t2 USING(a)
2812   RIGHT JOIN t3 USING(a)
2813   LEFT JOIN t4 USING(a)
2814   RIGHT JOIN t5 USING(a)
2815   ORDER BY 1 NULLS FIRST;
2816 } {
2817   15 15 15 15 15 15
2818   17 17  - 17  - 17
2819   18  -  - 18  - 18
2820   19  -  - 19 19 19
2822 do_execsql_test joinB-206 {
2823   SELECT a, b, c, d, e, f, g
2824   FROM t1
2825   LEFT JOIN t2 USING(a,b)
2826   RIGHT JOIN t3 USING(a,b)
2827   LEFT JOIN t4 USING(a,b)
2828   RIGHT JOIN t5 USING(a,b)
2829   WHERE d<>33 OR d IS NULL
2830   ORDER BY 1 NULLS FIRST;
2831 } {
2832   15 25 35 35 35 35 35
2833   17 27 37  - 37  - 37
2834   18 28  -  - 38  - 38
2835   19 29  -  - 39 39 39
2837 do_execsql_test joinB-207 {
2838   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2839   FROM t1
2840   LEFT JOIN t2 USING(a)
2841   RIGHT JOIN t3 USING(a)
2842   LEFT JOIN t4 USING(a)
2843   FULL JOIN t5 USING(a)
2844   ORDER BY 1 NULLS FIRST;
2845 } {
2846    -  -  -  -  -  -
2847   11 11  - 11 11  -
2848   12 12 12 12  -  -
2849   13  -  - 13 13  -
2850   15 15 15 15 15 15
2851   17 17  - 17  - 17
2852   18  -  - 18  - 18
2853   19  -  - 19 19 19
2855 do_execsql_test joinB-208 {
2856   SELECT b, c, d, e, f, g
2857   FROM t1
2858   NATURAL LEFT JOIN t2
2859   NATURAL RIGHT JOIN t3
2860   NATURAL LEFT JOIN t4
2861   NATURAL FULL JOIN t5
2862   WHERE b BETWEEN 12 AND 17
2863   ORDER BY 1 NULLS FIRST;
2864 } {
2866 do_execsql_test joinB-209 {
2867   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2868   FROM t1
2869   LEFT JOIN t2 USING(a)
2870   RIGHT JOIN t3 USING(a)
2871   RIGHT JOIN t4 USING(a)
2872   INNER JOIN t5 USING(a)
2873   ORDER BY 1 NULLS FIRST;
2874 } {
2875   15 15 15 15 15 15
2876   19  -  - 19 19 19
2878 do_execsql_test joinB-210 {
2879   SELECT a, c, d, e, f, g
2880   FROM t1
2881   LEFT JOIN t2 USING(a,b)
2882   RIGHT JOIN t3 USING(a,b)
2883   RIGHT JOIN t4 USING(a,b)
2884   INNER JOIN t5 USING(a,b)
2885   WHERE a<>13
2886   ORDER BY 1 NULLS FIRST;
2887 } {
2888   15 35 35 35 35 35
2889   19  -  - 39 39 39
2891 do_execsql_test joinB-211 {
2892   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2893   FROM t1
2894   LEFT JOIN t2 USING(a)
2895   RIGHT JOIN t3 USING(a)
2896   RIGHT JOIN t4 USING(a)
2897   LEFT JOIN t5 USING(a)
2898   ORDER BY 1 NULLS FIRST;
2899 } {
2900   11 11  - 11 11  -
2901   13  -  - 13 13  -
2902   15 15 15 15 15 15
2903   19  -  - 19 19 19
2905 do_execsql_test joinB-212 {
2906   SELECT a, c, d, e, f, g
2907   FROM t1
2908   LEFT JOIN (t2 RIGHT JOIN t3 USING(a)) USING(a)
2909   RIGHT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
2910   WHERE a<=18
2911   ORDER BY 1 NULLS FIRST;
2912 } {
2913   11 31  - 31 31  -
2914   13  -  -  - 33  -
2915   15 35 35 35 35 35
2917 do_execsql_test joinB-213 {
2918   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2919   FROM t1
2920   LEFT JOIN t2 USING(a)
2921   RIGHT JOIN t3 USING(a)
2922   RIGHT JOIN t4 USING(a)
2923   RIGHT JOIN t5 USING(a)
2924   ORDER BY 1 NULLS FIRST;
2925 } {
2926   15 15 15 15 15 15
2927   17  -  -  -  - 17
2928   18  -  -  -  - 18
2929   19  -  - 19 19 19
2931 do_execsql_test joinB-214 {
2932   SELECT a, b, c, d, e, f, g
2933   FROM t1
2934   LEFT JOIN t2 USING(a,b)
2935   RIGHT JOIN t3 USING(a,b)
2936   RIGHT JOIN t4 USING(a,b)
2937   RIGHT JOIN t5 USING(a,b)
2938   WHERE d<>33 OR d IS NULL
2939   ORDER BY 1 NULLS FIRST;
2940 } {
2941   15 25 35 35 35 35 35
2942   17 27  -  -  -  - 37
2943   18 28  -  -  -  - 38
2944   19 29  -  - 39 39 39
2946 do_execsql_test joinB-215 {
2947   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2948   FROM t1
2949   LEFT JOIN t2 USING(a)
2950   RIGHT JOIN t3 USING(a)
2951   RIGHT JOIN t4 USING(a)
2952   FULL JOIN t5 USING(a)
2953   ORDER BY 1 NULLS FIRST;
2954 } {
2955   11 11  - 11 11  -
2956   13  -  - 13 13  -
2957   15 15 15 15 15 15
2958   17  -  -  -  - 17
2959   18  -  -  -  - 18
2960   19  -  - 19 19 19
2962 do_execsql_test joinB-216 {
2963   SELECT b, c, d, e, f, g
2964   FROM t1
2965   NATURAL LEFT JOIN t2
2966   NATURAL RIGHT JOIN t3
2967   NATURAL RIGHT JOIN t4
2968   NATURAL FULL JOIN t5
2969   WHERE b BETWEEN 12 AND 17
2970   ORDER BY 1 NULLS FIRST;
2971 } {
2973 do_execsql_test joinB-217 {
2974   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
2975   FROM t1
2976   LEFT JOIN t2 USING(a)
2977   RIGHT JOIN t3 USING(a)
2978   FULL JOIN t4 USING(a)
2979   INNER JOIN t5 USING(a)
2980   ORDER BY 1 NULLS FIRST;
2981 } {
2982   15 15 15 15 15 15
2983   17 17  - 17  - 17
2984   18  -  - 18  - 18
2985   19  -  - 19 19 19
2987 do_execsql_test joinB-218 {
2988   SELECT a, c, d, e, f, g
2989   FROM t1
2990   LEFT JOIN t2 USING(a,b)
2991   RIGHT JOIN t3 USING(a,b)
2992   FULL JOIN t4 USING(a,b)
2993   INNER JOIN t5 USING(a,b)
2994   WHERE a<>13
2995   ORDER BY 1 NULLS FIRST;
2996 } {
2997   15 35 35 35 35 35
2998   17 37  - 37  - 37
2999   18  -  - 38  - 38
3000   19  -  - 39 39 39
3002 do_execsql_test joinB-219 {
3003   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3004   FROM t1
3005   LEFT JOIN t2 USING(a)
3006   RIGHT JOIN t3 USING(a)
3007   FULL JOIN t4 USING(a)
3008   LEFT JOIN t5 USING(a)
3009   ORDER BY 1 NULLS FIRST;
3010 } {
3011    -  -  -  -  -  -
3012   11 11  - 11 11  -
3013   12 12 12 12  -  -
3014   13  -  - 13 13  -
3015   15 15 15 15 15 15
3016   17 17  - 17  - 17
3017   18  -  - 18  - 18
3018   19  -  - 19 19 19
3020 do_execsql_test joinB-220 {
3021   SELECT a, c, d, e, f, g
3022   FROM t1
3023   LEFT JOIN (t2 RIGHT JOIN t3 USING(a)) USING(a)
3024   FULL JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
3025   WHERE a<=18
3026   ORDER BY 1 NULLS FIRST;
3027 } {
3028   11 31  - 31 31  -
3029   12 32 32 32  -  -
3030   13  -  -  - 33  -
3031   15 35 35 35 35 35
3032   17 37  - 37  -  -
3034 do_execsql_test joinB-221 {
3035   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3036   FROM t1
3037   LEFT JOIN t2 USING(a)
3038   RIGHT JOIN t3 USING(a)
3039   FULL JOIN t4 USING(a)
3040   RIGHT JOIN t5 USING(a)
3041   ORDER BY 1 NULLS FIRST;
3042 } {
3043   15 15 15 15 15 15
3044   17 17  - 17  - 17
3045   18  -  - 18  - 18
3046   19  -  - 19 19 19
3048 do_execsql_test joinB-222 {
3049   SELECT a, b, c, d, e, f, g
3050   FROM t1
3051   LEFT JOIN t2 USING(a,b)
3052   RIGHT JOIN t3 USING(a,b)
3053   FULL JOIN t4 USING(a,b)
3054   RIGHT JOIN t5 USING(a,b)
3055   WHERE d<>33 OR d IS NULL
3056   ORDER BY 1 NULLS FIRST;
3057 } {
3058   15 25 35 35 35 35 35
3059   17 27 37  - 37  - 37
3060   18 28  -  - 38  - 38
3061   19 29  -  - 39 39 39
3063 do_execsql_test joinB-223 {
3064   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3065   FROM t1
3066   LEFT JOIN t2 USING(a)
3067   RIGHT JOIN t3 USING(a)
3068   FULL JOIN t4 USING(a)
3069   FULL JOIN t5 USING(a)
3070   ORDER BY 1 NULLS FIRST;
3071 } {
3072    -  -  -  -  -  -
3073   11 11  - 11 11  -
3074   12 12 12 12  -  -
3075   13  -  - 13 13  -
3076   15 15 15 15 15 15
3077   17 17  - 17  - 17
3078   18  -  - 18  - 18
3079   19  -  - 19 19 19
3081 do_execsql_test joinB-224 {
3082   SELECT b, c, d, e, f, g
3083   FROM t1
3084   NATURAL LEFT JOIN t2
3085   NATURAL RIGHT JOIN t3
3086   NATURAL FULL JOIN t4
3087   NATURAL FULL JOIN t5
3088   WHERE b BETWEEN 12 AND 17
3089   ORDER BY 1 NULLS FIRST;
3090 } {
3092 do_execsql_test joinB-225 {
3093   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3094   FROM t1
3095   LEFT JOIN t2 USING(a)
3096   FULL JOIN t3 USING(a)
3097   INNER JOIN t4 USING(a)
3098   INNER JOIN t5 USING(a)
3099   ORDER BY 1 NULLS FIRST;
3100 } {
3101   15 15 15 15 15 15
3102   19  -  - 19 19 19
3104 do_execsql_test joinB-226 {
3105   SELECT a, c, d, e, f, g
3106   FROM t1
3107   LEFT JOIN t2 USING(a,b)
3108   FULL JOIN t3 USING(a,b)
3109   INNER JOIN t4 USING(a,b)
3110   INNER JOIN t5 USING(a,b)
3111   WHERE a<>13
3112   ORDER BY 1 NULLS FIRST;
3113 } {
3114   15 35 35 35 35 35
3115   19  -  - 39 39 39
3117 do_execsql_test joinB-227 {
3118   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3119   FROM t1
3120   LEFT JOIN t2 USING(a)
3121   FULL JOIN t3 USING(a)
3122   INNER JOIN t4 USING(a)
3123   LEFT JOIN t5 USING(a)
3124   ORDER BY 1 NULLS FIRST;
3125 } {
3126   11 11  - 11 11  -
3127   13  -  - 13 13  -
3128   15 15 15 15 15 15
3129   19  -  - 19 19 19
3131 do_execsql_test joinB-228 {
3132   SELECT a, c, d, e, f, g
3133   FROM t1
3134   LEFT JOIN (t2 FULL JOIN t3 USING(a)) USING(a)
3135   INNER JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
3136   WHERE a<=18
3137   ORDER BY 1 NULLS FIRST;
3138 } {
3139   11 31  - 31 31  -
3140   15 35 35 35 35 35
3142 do_execsql_test joinB-229 {
3143   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3144   FROM t1
3145   LEFT JOIN t2 USING(a)
3146   FULL JOIN t3 USING(a)
3147   INNER JOIN t4 USING(a)
3148   RIGHT JOIN t5 USING(a)
3149   ORDER BY 1 NULLS FIRST;
3150 } {
3151   15 15 15 15 15 15
3152   17  -  -  -  - 17
3153   18  -  -  -  - 18
3154   19  -  - 19 19 19
3156 do_execsql_test joinB-230 {
3157   SELECT a, b, c, d, e, f, g
3158   FROM t1
3159   LEFT JOIN t2 USING(a,b)
3160   FULL JOIN t3 USING(a,b)
3161   INNER JOIN t4 USING(a,b)
3162   RIGHT JOIN t5 USING(a,b)
3163   WHERE d<>33 OR d IS NULL
3164   ORDER BY 1 NULLS FIRST;
3165 } {
3166   15 25 35 35 35 35 35
3167   17 27  -  -  -  - 37
3168   18 28  -  -  -  - 38
3169   19 29  -  - 39 39 39
3171 do_execsql_test joinB-231 {
3172   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3173   FROM t1
3174   LEFT JOIN t2 USING(a)
3175   FULL JOIN t3 USING(a)
3176   INNER JOIN t4 USING(a)
3177   FULL JOIN t5 USING(a)
3178   ORDER BY 1 NULLS FIRST;
3179 } {
3180   11 11  - 11 11  -
3181   13  -  - 13 13  -
3182   15 15 15 15 15 15
3183   17  -  -  -  - 17
3184   18  -  -  -  - 18
3185   19  -  - 19 19 19
3187 do_execsql_test joinB-232 {
3188   SELECT b, c, d, e, f, g
3189   FROM t1
3190   NATURAL LEFT JOIN t2
3191   NATURAL FULL JOIN t3
3192   NATURAL INNER JOIN t4
3193   NATURAL FULL JOIN t5
3194   WHERE b BETWEEN 12 AND 17
3195   ORDER BY 1 NULLS FIRST;
3196 } {
3198 do_execsql_test joinB-233 {
3199   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3200   FROM t1
3201   LEFT JOIN t2 USING(a)
3202   FULL JOIN t3 USING(a)
3203   LEFT JOIN t4 USING(a)
3204   INNER JOIN t5 USING(a)
3205   ORDER BY 1 NULLS FIRST;
3206 } {
3207   15 15 15 15 15 15
3208   17 17  - 17  - 17
3209   18  -  - 18  - 18
3210   19  -  - 19 19 19
3212 do_execsql_test joinB-234 {
3213   SELECT a, c, d, e, f, g
3214   FROM t1
3215   LEFT JOIN t2 USING(a,b)
3216   FULL JOIN t3 USING(a,b)
3217   LEFT JOIN t4 USING(a,b)
3218   INNER JOIN t5 USING(a,b)
3219   WHERE a<>13
3220   ORDER BY 1 NULLS FIRST;
3221 } {
3222   15 35 35 35 35 35
3223   17 37  - 37  - 37
3224   18  -  - 38  - 38
3225   19  -  - 39 39 39
3227 do_execsql_test joinB-235 {
3228   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3229   FROM t1
3230   LEFT JOIN t2 USING(a)
3231   FULL JOIN t3 USING(a)
3232   LEFT JOIN t4 USING(a)
3233   LEFT JOIN t5 USING(a)
3234   ORDER BY 1 NULLS FIRST;
3235 } {
3236    -  -  -  -  -  -
3237   11 11  - 11 11  -
3238   12 12 12 12  -  -
3239   13  -  - 13 13  -
3240   15 15 15 15 15 15
3241   17 17  - 17  - 17
3242   18  -  - 18  - 18
3243   19  -  - 19 19 19
3245 do_execsql_test joinB-236 {
3246   SELECT a, c, d, e, f, g
3247   FROM t1
3248   LEFT JOIN (t2 FULL JOIN t3 USING(a)) USING(a)
3249   LEFT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
3250   WHERE a<=18
3251   ORDER BY 1 NULLS FIRST;
3252 } {
3253   11 31  - 31 31  -
3254   12 32 32 32  -  -
3255   15 35 35 35 35 35
3256   17 37  - 37  -  -
3258 do_execsql_test joinB-237 {
3259   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3260   FROM t1
3261   LEFT JOIN t2 USING(a)
3262   FULL JOIN t3 USING(a)
3263   LEFT JOIN t4 USING(a)
3264   RIGHT JOIN t5 USING(a)
3265   ORDER BY 1 NULLS FIRST;
3266 } {
3267   15 15 15 15 15 15
3268   17 17  - 17  - 17
3269   18  -  - 18  - 18
3270   19  -  - 19 19 19
3272 do_execsql_test joinB-238 {
3273   SELECT a, b, c, d, e, f, g
3274   FROM t1
3275   LEFT JOIN t2 USING(a,b)
3276   FULL JOIN t3 USING(a,b)
3277   LEFT JOIN t4 USING(a,b)
3278   RIGHT JOIN t5 USING(a,b)
3279   WHERE d<>33 OR d IS NULL
3280   ORDER BY 1 NULLS FIRST;
3281 } {
3282   15 25 35 35 35 35 35
3283   17 27 37  - 37  - 37
3284   18 28  -  - 38  - 38
3285   19 29  -  - 39 39 39
3287 do_execsql_test joinB-239 {
3288   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3289   FROM t1
3290   LEFT JOIN t2 USING(a)
3291   FULL JOIN t3 USING(a)
3292   LEFT JOIN t4 USING(a)
3293   FULL JOIN t5 USING(a)
3294   ORDER BY 1 NULLS FIRST;
3295 } {
3296    -  -  -  -  -  -
3297   11 11  - 11 11  -
3298   12 12 12 12  -  -
3299   13  -  - 13 13  -
3300   15 15 15 15 15 15
3301   17 17  - 17  - 17
3302   18  -  - 18  - 18
3303   19  -  - 19 19 19
3305 do_execsql_test joinB-240 {
3306   SELECT b, c, d, e, f, g
3307   FROM t1
3308   NATURAL LEFT JOIN t2
3309   NATURAL FULL JOIN t3
3310   NATURAL LEFT JOIN t4
3311   NATURAL FULL JOIN t5
3312   WHERE b BETWEEN 12 AND 17
3313   ORDER BY 1 NULLS FIRST;
3314 } {
3316 do_execsql_test joinB-241 {
3317   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3318   FROM t1
3319   LEFT JOIN t2 USING(a)
3320   FULL JOIN t3 USING(a)
3321   RIGHT JOIN t4 USING(a)
3322   INNER JOIN t5 USING(a)
3323   ORDER BY 1 NULLS FIRST;
3324 } {
3325   15 15 15 15 15 15
3326   19  -  - 19 19 19
3328 do_execsql_test joinB-242 {
3329   SELECT a, c, d, e, f, g
3330   FROM t1
3331   LEFT JOIN t2 USING(a,b)
3332   FULL JOIN t3 USING(a,b)
3333   RIGHT JOIN t4 USING(a,b)
3334   INNER JOIN t5 USING(a,b)
3335   WHERE a<>13
3336   ORDER BY 1 NULLS FIRST;
3337 } {
3338   15 35 35 35 35 35
3339   19  -  - 39 39 39
3341 do_execsql_test joinB-243 {
3342   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3343   FROM t1
3344   LEFT JOIN t2 USING(a)
3345   FULL JOIN t3 USING(a)
3346   RIGHT JOIN t4 USING(a)
3347   LEFT JOIN t5 USING(a)
3348   ORDER BY 1 NULLS FIRST;
3349 } {
3350   11 11  - 11 11  -
3351   13  -  - 13 13  -
3352   15 15 15 15 15 15
3353   19  -  - 19 19 19
3355 do_execsql_test joinB-244 {
3356   SELECT a, c, d, e, f, g
3357   FROM t1
3358   LEFT JOIN (t2 FULL JOIN t3 USING(a)) USING(a)
3359   RIGHT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
3360   WHERE a<=18
3361   ORDER BY 1 NULLS FIRST;
3362 } {
3363   11 31  - 31 31  -
3364   13  -  -  - 33  -
3365   15 35 35 35 35 35
3367 do_execsql_test joinB-245 {
3368   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3369   FROM t1
3370   LEFT JOIN t2 USING(a)
3371   FULL JOIN t3 USING(a)
3372   RIGHT JOIN t4 USING(a)
3373   RIGHT JOIN t5 USING(a)
3374   ORDER BY 1 NULLS FIRST;
3375 } {
3376   15 15 15 15 15 15
3377   17  -  -  -  - 17
3378   18  -  -  -  - 18
3379   19  -  - 19 19 19
3381 do_execsql_test joinB-246 {
3382   SELECT a, b, c, d, e, f, g
3383   FROM t1
3384   LEFT JOIN t2 USING(a,b)
3385   FULL JOIN t3 USING(a,b)
3386   RIGHT JOIN t4 USING(a,b)
3387   RIGHT JOIN t5 USING(a,b)
3388   WHERE d<>33 OR d IS NULL
3389   ORDER BY 1 NULLS FIRST;
3390 } {
3391   15 25 35 35 35 35 35
3392   17 27  -  -  -  - 37
3393   18 28  -  -  -  - 38
3394   19 29  -  - 39 39 39
3396 do_execsql_test joinB-247 {
3397   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3398   FROM t1
3399   LEFT JOIN t2 USING(a)
3400   FULL JOIN t3 USING(a)
3401   RIGHT JOIN t4 USING(a)
3402   FULL JOIN t5 USING(a)
3403   ORDER BY 1 NULLS FIRST;
3404 } {
3405   11 11  - 11 11  -
3406   13  -  - 13 13  -
3407   15 15 15 15 15 15
3408   17  -  -  -  - 17
3409   18  -  -  -  - 18
3410   19  -  - 19 19 19
3412 do_execsql_test joinB-248 {
3413   SELECT b, c, d, e, f, g
3414   FROM t1
3415   NATURAL LEFT JOIN t2
3416   NATURAL FULL JOIN t3
3417   NATURAL RIGHT JOIN t4
3418   NATURAL FULL JOIN t5
3419   WHERE b BETWEEN 12 AND 17
3420   ORDER BY 1 NULLS FIRST;
3421 } {
3423 do_execsql_test joinB-249 {
3424   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3425   FROM t1
3426   LEFT JOIN t2 USING(a)
3427   FULL JOIN t3 USING(a)
3428   FULL JOIN t4 USING(a)
3429   INNER JOIN t5 USING(a)
3430   ORDER BY 1 NULLS FIRST;
3431 } {
3432   15 15 15 15 15 15
3433   17 17  - 17  - 17
3434   18  -  - 18  - 18
3435   19  -  - 19 19 19
3437 do_execsql_test joinB-250 {
3438   SELECT a, c, d, e, f, g
3439   FROM t1
3440   LEFT JOIN t2 USING(a,b)
3441   FULL JOIN t3 USING(a,b)
3442   FULL JOIN t4 USING(a,b)
3443   INNER JOIN t5 USING(a,b)
3444   WHERE a<>13
3445   ORDER BY 1 NULLS FIRST;
3446 } {
3447   15 35 35 35 35 35
3448   17 37  - 37  - 37
3449   18  -  - 38  - 38
3450   19  -  - 39 39 39
3452 do_execsql_test joinB-251 {
3453   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3454   FROM t1
3455   LEFT JOIN t2 USING(a)
3456   FULL JOIN t3 USING(a)
3457   FULL JOIN t4 USING(a)
3458   LEFT JOIN t5 USING(a)
3459   ORDER BY 1 NULLS FIRST;
3460 } {
3461    -  -  -  -  -  -
3462   11 11  - 11 11  -
3463   12 12 12 12  -  -
3464   13  -  - 13 13  -
3465   15 15 15 15 15 15
3466   17 17  - 17  - 17
3467   18  -  - 18  - 18
3468   19  -  - 19 19 19
3470 do_execsql_test joinB-252 {
3471   SELECT a, c, d, e, f, g
3472   FROM t1
3473   LEFT JOIN (t2 FULL JOIN t3 USING(a)) USING(a)
3474   FULL JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
3475   WHERE a<=18
3476   ORDER BY 1 NULLS FIRST;
3477 } {
3478   11 31  - 31 31  -
3479   12 32 32 32  -  -
3480   13  -  -  - 33  -
3481   15 35 35 35 35 35
3482   17 37  - 37  -  -
3484 do_execsql_test joinB-253 {
3485   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3486   FROM t1
3487   LEFT JOIN t2 USING(a)
3488   FULL JOIN t3 USING(a)
3489   FULL JOIN t4 USING(a)
3490   RIGHT JOIN t5 USING(a)
3491   ORDER BY 1 NULLS FIRST;
3492 } {
3493   15 15 15 15 15 15
3494   17 17  - 17  - 17
3495   18  -  - 18  - 18
3496   19  -  - 19 19 19
3498 do_execsql_test joinB-254 {
3499   SELECT a, b, c, d, e, f, g
3500   FROM t1
3501   LEFT JOIN t2 USING(a,b)
3502   FULL JOIN t3 USING(a,b)
3503   FULL JOIN t4 USING(a,b)
3504   RIGHT JOIN t5 USING(a,b)
3505   WHERE d<>33 OR d IS NULL
3506   ORDER BY 1 NULLS FIRST;
3507 } {
3508   15 25 35 35 35 35 35
3509   17 27 37  - 37  - 37
3510   18 28  -  - 38  - 38
3511   19 29  -  - 39 39 39
3513 do_execsql_test joinB-255 {
3514   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3515   FROM t1
3516   LEFT JOIN t2 USING(a)
3517   FULL JOIN t3 USING(a)
3518   FULL JOIN t4 USING(a)
3519   FULL JOIN t5 USING(a)
3520   ORDER BY 1 NULLS FIRST;
3521 } {
3522    -  -  -  -  -  -
3523   11 11  - 11 11  -
3524   12 12 12 12  -  -
3525   13  -  - 13 13  -
3526   15 15 15 15 15 15
3527   17 17  - 17  - 17
3528   18  -  - 18  - 18
3529   19  -  - 19 19 19
3531 do_execsql_test joinB-256 {
3532   SELECT b, c, d, e, f, g
3533   FROM t1
3534   NATURAL LEFT JOIN t2
3535   NATURAL FULL JOIN t3
3536   NATURAL FULL JOIN t4
3537   NATURAL FULL JOIN t5
3538   WHERE b BETWEEN 12 AND 17
3539   ORDER BY 1 NULLS FIRST;
3540 } {
3542 do_execsql_test joinB-257 {
3543   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3544   FROM t1
3545   RIGHT JOIN t2 USING(a)
3546   INNER JOIN t3 USING(a)
3547   INNER JOIN t4 USING(a)
3548   INNER JOIN t5 USING(a)
3549   ORDER BY 1 NULLS FIRST;
3550 } {
3551   15 15 15 15 15 15
3553 do_execsql_test joinB-258 {
3554   SELECT a, c, d, e, f, g
3555   FROM t1
3556   RIGHT JOIN t2 USING(a,b)
3557   INNER JOIN t3 USING(a,b)
3558   INNER JOIN t4 USING(a,b)
3559   INNER JOIN t5 USING(a,b)
3560   WHERE a<>13
3561   ORDER BY 1 NULLS FIRST;
3562 } {
3563   15 35 35 35 35 35
3565 do_execsql_test joinB-259 {
3566   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3567   FROM t1
3568   RIGHT JOIN t2 USING(a)
3569   INNER JOIN t3 USING(a)
3570   INNER JOIN t4 USING(a)
3571   LEFT JOIN t5 USING(a)
3572   ORDER BY 1 NULLS FIRST;
3573 } {
3574   13  - 13 13 13  -
3575   15 15 15 15 15 15
3577 do_execsql_test joinB-260 {
3578   SELECT a, c, d, e, f, g
3579   FROM t1
3580   RIGHT JOIN (t2 INNER JOIN t3 USING(a)) USING(a)
3581   INNER JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
3582   WHERE a<=18
3583   ORDER BY 1 NULLS FIRST;
3584 } {
3585   13  - 33 33 33  -
3586   15 35 35 35 35 35
3588 do_execsql_test joinB-261 {
3589   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3590   FROM t1
3591   RIGHT JOIN t2 USING(a)
3592   INNER JOIN t3 USING(a)
3593   INNER JOIN t4 USING(a)
3594   RIGHT JOIN t5 USING(a)
3595   ORDER BY 1 NULLS FIRST;
3596 } {
3597   15 15 15 15 15 15
3598   17  -  -  -  - 17
3599   18  -  -  -  - 18
3600   19  -  -  -  - 19
3602 do_execsql_test joinB-262 {
3603   SELECT a, b, c, d, e, f, g
3604   FROM t1
3605   RIGHT JOIN t2 USING(a,b)
3606   INNER JOIN t3 USING(a,b)
3607   INNER JOIN t4 USING(a,b)
3608   RIGHT JOIN t5 USING(a,b)
3609   WHERE d<>33 OR d IS NULL
3610   ORDER BY 1 NULLS FIRST;
3611 } {
3612   15 25 35 35 35 35 35
3613   17 27  -  -  -  - 37
3614   18 28  -  -  -  - 38
3615   19 29  -  -  -  - 39
3617 do_execsql_test joinB-263 {
3618   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3619   FROM t1
3620   RIGHT JOIN t2 USING(a)
3621   INNER JOIN t3 USING(a)
3622   INNER JOIN t4 USING(a)
3623   FULL JOIN t5 USING(a)
3624   ORDER BY 1 NULLS FIRST;
3625 } {
3626   13  - 13 13 13  -
3627   15 15 15 15 15 15
3628   17  -  -  -  - 17
3629   18  -  -  -  - 18
3630   19  -  -  -  - 19
3632 do_execsql_test joinB-264 {
3633   SELECT b, c, d, e, f, g
3634   FROM t1
3635   NATURAL RIGHT JOIN t2
3636   NATURAL INNER JOIN t3
3637   NATURAL INNER JOIN t4
3638   NATURAL FULL JOIN t5
3639   WHERE b BETWEEN 12 AND 17
3640   ORDER BY 1 NULLS FIRST;
3641 } {
3643 do_execsql_test joinB-265 {
3644   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3645   FROM t1
3646   RIGHT JOIN t2 USING(a)
3647   INNER JOIN t3 USING(a)
3648   LEFT JOIN t4 USING(a)
3649   INNER JOIN t5 USING(a)
3650   ORDER BY 1 NULLS FIRST;
3651 } {
3652   15 15 15 15 15 15
3653   18  - 18 18  - 18
3655 do_execsql_test joinB-266 {
3656   SELECT a, c, d, e, f, g
3657   FROM t1
3658   RIGHT JOIN t2 USING(a,b)
3659   INNER JOIN t3 USING(a,b)
3660   LEFT JOIN t4 USING(a,b)
3661   INNER JOIN t5 USING(a,b)
3662   WHERE a<>13
3663   ORDER BY 1 NULLS FIRST;
3664 } {
3665   15 35 35 35 35 35
3666   18  - 38 38  - 38
3668 do_execsql_test joinB-267 {
3669   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3670   FROM t1
3671   RIGHT JOIN t2 USING(a)
3672   INNER JOIN t3 USING(a)
3673   LEFT JOIN t4 USING(a)
3674   LEFT JOIN t5 USING(a)
3675   ORDER BY 1 NULLS FIRST;
3676 } {
3677   12 12 12 12  -  -
3678   13  - 13 13 13  -
3679   15 15 15 15 15 15
3680   18  - 18 18  - 18
3682 do_execsql_test joinB-268 {
3683   SELECT a, c, d, e, f, g
3684   FROM t1
3685   RIGHT JOIN (t2 INNER JOIN t3 USING(a)) USING(a)
3686   LEFT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
3687   WHERE a<=18
3688   ORDER BY 1 NULLS FIRST;
3689 } {
3690   12 32 32 32  -  -
3691   13  - 33 33 33  -
3692   15 35 35 35 35 35
3693   18  - 38 38  -  -
3695 do_execsql_test joinB-269 {
3696   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3697   FROM t1
3698   RIGHT JOIN t2 USING(a)
3699   INNER JOIN t3 USING(a)
3700   LEFT JOIN t4 USING(a)
3701   RIGHT JOIN t5 USING(a)
3702   ORDER BY 1 NULLS FIRST;
3703 } {
3704   15 15 15 15 15 15
3705   17  -  -  -  - 17
3706   18  - 18 18  - 18
3707   19  -  -  -  - 19
3709 do_execsql_test joinB-270 {
3710   SELECT a, b, c, d, e, f, g
3711   FROM t1
3712   RIGHT JOIN t2 USING(a,b)
3713   INNER JOIN t3 USING(a,b)
3714   LEFT JOIN t4 USING(a,b)
3715   RIGHT JOIN t5 USING(a,b)
3716   WHERE d<>33 OR d IS NULL
3717   ORDER BY 1 NULLS FIRST;
3718 } {
3719   15 25 35 35 35 35 35
3720   17 27  -  -  -  - 37
3721   18 28  - 38 38  - 38
3722   19 29  -  -  -  - 39
3724 do_execsql_test joinB-271 {
3725   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3726   FROM t1
3727   RIGHT JOIN t2 USING(a)
3728   INNER JOIN t3 USING(a)
3729   LEFT JOIN t4 USING(a)
3730   FULL JOIN t5 USING(a)
3731   ORDER BY 1 NULLS FIRST;
3732 } {
3733   12 12 12 12  -  -
3734   13  - 13 13 13  -
3735   15 15 15 15 15 15
3736   17  -  -  -  - 17
3737   18  - 18 18  - 18
3738   19  -  -  -  - 19
3740 do_execsql_test joinB-272 {
3741   SELECT b, c, d, e, f, g
3742   FROM t1
3743   NATURAL RIGHT JOIN t2
3744   NATURAL INNER JOIN t3
3745   NATURAL LEFT JOIN t4
3746   NATURAL FULL JOIN t5
3747   WHERE b BETWEEN 12 AND 17
3748   ORDER BY 1 NULLS FIRST;
3749 } {
3751 do_execsql_test joinB-273 {
3752   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3753   FROM t1
3754   RIGHT JOIN t2 USING(a)
3755   INNER JOIN t3 USING(a)
3756   RIGHT JOIN t4 USING(a)
3757   INNER JOIN t5 USING(a)
3758   ORDER BY 1 NULLS FIRST;
3759 } {
3760   15 15 15 15 15 15
3761   19  -  -  - 19 19
3763 do_execsql_test joinB-274 {
3764   SELECT a, c, d, e, f, g
3765   FROM t1
3766   RIGHT JOIN t2 USING(a,b)
3767   INNER JOIN t3 USING(a,b)
3768   RIGHT JOIN t4 USING(a,b)
3769   INNER JOIN t5 USING(a,b)
3770   WHERE a<>13
3771   ORDER BY 1 NULLS FIRST;
3772 } {
3773   15 35 35 35 35 35
3774   19  -  -  - 39 39
3776 do_execsql_test joinB-275 {
3777   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3778   FROM t1
3779   RIGHT JOIN t2 USING(a)
3780   INNER JOIN t3 USING(a)
3781   RIGHT JOIN t4 USING(a)
3782   LEFT JOIN t5 USING(a)
3783   ORDER BY 1 NULLS FIRST;
3784 } {
3785   11  -  -  - 11  -
3786   13  - 13 13 13  -
3787   15 15 15 15 15 15
3788   19  -  -  - 19 19
3790 do_execsql_test joinB-276 {
3791   SELECT a, c, d, e, f, g
3792   FROM t1
3793   RIGHT JOIN (t2 INNER JOIN t3 USING(a)) USING(a)
3794   RIGHT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
3795   WHERE a<=18
3796   ORDER BY 1 NULLS FIRST;
3797 } {
3798   11  -  -  - 31  -
3799   13  - 33 33 33  -
3800   15 35 35 35 35 35
3802 do_execsql_test joinB-277 {
3803   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3804   FROM t1
3805   RIGHT JOIN t2 USING(a)
3806   INNER JOIN t3 USING(a)
3807   RIGHT JOIN t4 USING(a)
3808   RIGHT JOIN t5 USING(a)
3809   ORDER BY 1 NULLS FIRST;
3810 } {
3811   15 15 15 15 15 15
3812   17  -  -  -  - 17
3813   18  -  -  -  - 18
3814   19  -  -  - 19 19
3816 do_execsql_test joinB-278 {
3817   SELECT a, b, c, d, e, f, g
3818   FROM t1
3819   RIGHT JOIN t2 USING(a,b)
3820   INNER JOIN t3 USING(a,b)
3821   RIGHT JOIN t4 USING(a,b)
3822   RIGHT JOIN t5 USING(a,b)
3823   WHERE d<>33 OR d IS NULL
3824   ORDER BY 1 NULLS FIRST;
3825 } {
3826   15 25 35 35 35 35 35
3827   17 27  -  -  -  - 37
3828   18 28  -  -  -  - 38
3829   19 29  -  -  - 39 39
3831 do_execsql_test joinB-279 {
3832   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3833   FROM t1
3834   RIGHT JOIN t2 USING(a)
3835   INNER JOIN t3 USING(a)
3836   RIGHT JOIN t4 USING(a)
3837   FULL JOIN t5 USING(a)
3838   ORDER BY 1 NULLS FIRST;
3839 } {
3840   11  -  -  - 11  -
3841   13  - 13 13 13  -
3842   15 15 15 15 15 15
3843   17  -  -  -  - 17
3844   18  -  -  -  - 18
3845   19  -  -  - 19 19
3847 do_execsql_test joinB-280 {
3848   SELECT b, c, d, e, f, g
3849   FROM t1
3850   NATURAL RIGHT JOIN t2
3851   NATURAL INNER JOIN t3
3852   NATURAL RIGHT JOIN t4
3853   NATURAL FULL JOIN t5
3854   WHERE b BETWEEN 12 AND 17
3855   ORDER BY 1 NULLS FIRST;
3856 } {
3858 do_execsql_test joinB-281 {
3859   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3860   FROM t1
3861   RIGHT JOIN t2 USING(a)
3862   INNER JOIN t3 USING(a)
3863   FULL JOIN t4 USING(a)
3864   INNER JOIN t5 USING(a)
3865   ORDER BY 1 NULLS FIRST;
3866 } {
3867   15 15 15 15 15 15
3868   18  - 18 18  - 18
3869   19  -  -  - 19 19
3871 do_execsql_test joinB-282 {
3872   SELECT a, c, d, e, f, g
3873   FROM t1
3874   RIGHT JOIN t2 USING(a,b)
3875   INNER JOIN t3 USING(a,b)
3876   FULL JOIN t4 USING(a,b)
3877   INNER JOIN t5 USING(a,b)
3878   WHERE a<>13
3879   ORDER BY 1 NULLS FIRST;
3880 } {
3881   15 35 35 35 35 35
3882   18  - 38 38  - 38
3883   19  -  -  - 39 39
3885 do_execsql_test joinB-283 {
3886   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3887   FROM t1
3888   RIGHT JOIN t2 USING(a)
3889   INNER JOIN t3 USING(a)
3890   FULL JOIN t4 USING(a)
3891   LEFT JOIN t5 USING(a)
3892   ORDER BY 1 NULLS FIRST;
3893 } {
3894   11  -  -  - 11  -
3895   12 12 12 12  -  -
3896   13  - 13 13 13  -
3897   15 15 15 15 15 15
3898   18  - 18 18  - 18
3899   19  -  -  - 19 19
3901 do_execsql_test joinB-284 {
3902   SELECT a, c, d, e, f, g
3903   FROM t1
3904   RIGHT JOIN (t2 INNER JOIN t3 USING(a)) USING(a)
3905   FULL JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
3906   WHERE a<=18
3907   ORDER BY 1 NULLS FIRST;
3908 } {
3909   11  -  -  - 31  -
3910   12 32 32 32  -  -
3911   13  - 33 33 33  -
3912   15 35 35 35 35 35
3913   18  - 38 38  -  -
3915 do_execsql_test joinB-285 {
3916   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3917   FROM t1
3918   RIGHT JOIN t2 USING(a)
3919   INNER JOIN t3 USING(a)
3920   FULL JOIN t4 USING(a)
3921   RIGHT JOIN t5 USING(a)
3922   ORDER BY 1 NULLS FIRST;
3923 } {
3924   15 15 15 15 15 15
3925   17  -  -  -  - 17
3926   18  - 18 18  - 18
3927   19  -  -  - 19 19
3929 do_execsql_test joinB-286 {
3930   SELECT a, b, c, d, e, f, g
3931   FROM t1
3932   RIGHT JOIN t2 USING(a,b)
3933   INNER JOIN t3 USING(a,b)
3934   FULL JOIN t4 USING(a,b)
3935   RIGHT JOIN t5 USING(a,b)
3936   WHERE d<>33 OR d IS NULL
3937   ORDER BY 1 NULLS FIRST;
3938 } {
3939   15 25 35 35 35 35 35
3940   17 27  -  -  -  - 37
3941   18 28  - 38 38  - 38
3942   19 29  -  -  - 39 39
3944 do_execsql_test joinB-287 {
3945   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3946   FROM t1
3947   RIGHT JOIN t2 USING(a)
3948   INNER JOIN t3 USING(a)
3949   FULL JOIN t4 USING(a)
3950   FULL JOIN t5 USING(a)
3951   ORDER BY 1 NULLS FIRST;
3952 } {
3953   11  -  -  - 11  -
3954   12 12 12 12  -  -
3955   13  - 13 13 13  -
3956   15 15 15 15 15 15
3957   17  -  -  -  - 17
3958   18  - 18 18  - 18
3959   19  -  -  - 19 19
3961 do_execsql_test joinB-288 {
3962   SELECT b, c, d, e, f, g
3963   FROM t1
3964   NATURAL RIGHT JOIN t2
3965   NATURAL INNER JOIN t3
3966   NATURAL FULL JOIN t4
3967   NATURAL FULL JOIN t5
3968   WHERE b BETWEEN 12 AND 17
3969   ORDER BY 1 NULLS FIRST;
3970 } {
3972 do_execsql_test joinB-289 {
3973   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3974   FROM t1
3975   RIGHT JOIN t2 USING(a)
3976   LEFT JOIN t3 USING(a)
3977   INNER JOIN t4 USING(a)
3978   INNER JOIN t5 USING(a)
3979   ORDER BY 1 NULLS FIRST;
3980 } {
3981   15 15 15 15 15 15
3983 do_execsql_test joinB-290 {
3984   SELECT a, c, d, e, f, g
3985   FROM t1
3986   RIGHT JOIN t2 USING(a,b)
3987   LEFT JOIN t3 USING(a,b)
3988   INNER JOIN t4 USING(a,b)
3989   INNER JOIN t5 USING(a,b)
3990   WHERE a<>13
3991   ORDER BY 1 NULLS FIRST;
3992 } {
3993   15 35 35 35 35 35
3995 do_execsql_test joinB-291 {
3996   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
3997   FROM t1
3998   RIGHT JOIN t2 USING(a)
3999   LEFT JOIN t3 USING(a)
4000   INNER JOIN t4 USING(a)
4001   LEFT JOIN t5 USING(a)
4002   ORDER BY 1 NULLS FIRST;
4003 } {
4004   13  - 13 13 13  -
4005   15 15 15 15 15 15
4007 do_execsql_test joinB-292 {
4008   SELECT a, c, d, e, f, g
4009   FROM t1
4010   RIGHT JOIN (t2 LEFT JOIN t3 USING(a)) USING(a)
4011   INNER JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
4012   WHERE a<=18
4013   ORDER BY 1 NULLS FIRST;
4014 } {
4015   13  - 33 33 33  -
4016   15 35 35 35 35 35
4018 do_execsql_test joinB-293 {
4019   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4020   FROM t1
4021   RIGHT JOIN t2 USING(a)
4022   LEFT JOIN t3 USING(a)
4023   INNER JOIN t4 USING(a)
4024   RIGHT JOIN t5 USING(a)
4025   ORDER BY 1 NULLS FIRST;
4026 } {
4027   15 15 15 15 15 15
4028   17  -  -  -  - 17
4029   18  -  -  -  - 18
4030   19  -  -  -  - 19
4032 do_execsql_test joinB-294 {
4033   SELECT a, b, c, d, e, f, g
4034   FROM t1
4035   RIGHT JOIN t2 USING(a,b)
4036   LEFT JOIN t3 USING(a,b)
4037   INNER JOIN t4 USING(a,b)
4038   RIGHT JOIN t5 USING(a,b)
4039   WHERE d<>33 OR d IS NULL
4040   ORDER BY 1 NULLS FIRST;
4041 } {
4042   15 25 35 35 35 35 35
4043   17 27  -  -  -  - 37
4044   18 28  -  -  -  - 38
4045   19 29  -  -  -  - 39
4047 do_execsql_test joinB-295 {
4048   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4049   FROM t1
4050   RIGHT JOIN t2 USING(a)
4051   LEFT JOIN t3 USING(a)
4052   INNER JOIN t4 USING(a)
4053   FULL JOIN t5 USING(a)
4054   ORDER BY 1 NULLS FIRST;
4055 } {
4056   13  - 13 13 13  -
4057   15 15 15 15 15 15
4058   17  -  -  -  - 17
4059   18  -  -  -  - 18
4060   19  -  -  -  - 19
4062 do_execsql_test joinB-296 {
4063   SELECT b, c, d, e, f, g
4064   FROM t1
4065   NATURAL RIGHT JOIN t2
4066   NATURAL LEFT JOIN t3
4067   NATURAL INNER JOIN t4
4068   NATURAL FULL JOIN t5
4069   WHERE b BETWEEN 12 AND 17
4070   ORDER BY 1 NULLS FIRST;
4071 } {
4073 do_execsql_test joinB-297 {
4074   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4075   FROM t1
4076   RIGHT JOIN t2 USING(a)
4077   LEFT JOIN t3 USING(a)
4078   LEFT JOIN t4 USING(a)
4079   INNER JOIN t5 USING(a)
4080   ORDER BY 1 NULLS FIRST;
4081 } {
4082   15 15 15 15 15 15
4083   18  - 18 18  - 18
4085 do_execsql_test joinB-298 {
4086   SELECT a, c, d, e, f, g
4087   FROM t1
4088   RIGHT JOIN t2 USING(a,b)
4089   LEFT JOIN t3 USING(a,b)
4090   LEFT JOIN t4 USING(a,b)
4091   INNER JOIN t5 USING(a,b)
4092   WHERE a<>13
4093   ORDER BY 1 NULLS FIRST;
4094 } {
4095   15 35 35 35 35 35
4096   18  - 38 38  - 38
4098 do_execsql_test joinB-299 {
4099   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4100   FROM t1
4101   RIGHT JOIN t2 USING(a)
4102   LEFT JOIN t3 USING(a)
4103   LEFT JOIN t4 USING(a)
4104   LEFT JOIN t5 USING(a)
4105   ORDER BY 1 NULLS FIRST;
4106 } {
4107    -  -  -  -  -  -
4108   12 12 12 12  -  -
4109   13  - 13 13 13  -
4110   15 15 15 15 15 15
4111   18  - 18 18  - 18
4113 do_execsql_test joinB-300 {
4114   SELECT a, c, d, e, f, g
4115   FROM t1
4116   RIGHT JOIN (t2 LEFT JOIN t3 USING(a)) USING(a)
4117   LEFT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
4118   WHERE a<=18
4119   ORDER BY 1 NULLS FIRST;
4120 } {
4121   12 32 32 32  -  -
4122   13  - 33 33 33  -
4123   15 35 35 35 35 35
4124   18  - 38 38  -  -
4126 do_execsql_test joinB-301 {
4127   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4128   FROM t1
4129   RIGHT JOIN t2 USING(a)
4130   LEFT JOIN t3 USING(a)
4131   LEFT JOIN t4 USING(a)
4132   RIGHT JOIN t5 USING(a)
4133   ORDER BY 1 NULLS FIRST;
4134 } {
4135   15 15 15 15 15 15
4136   17  -  -  -  - 17
4137   18  - 18 18  - 18
4138   19  -  -  -  - 19
4140 do_execsql_test joinB-302 {
4141   SELECT a, b, c, d, e, f, g
4142   FROM t1
4143   RIGHT JOIN t2 USING(a,b)
4144   LEFT JOIN t3 USING(a,b)
4145   LEFT JOIN t4 USING(a,b)
4146   RIGHT JOIN t5 USING(a,b)
4147   WHERE d<>33 OR d IS NULL
4148   ORDER BY 1 NULLS FIRST;
4149 } {
4150   15 25 35 35 35 35 35
4151   17 27  -  -  -  - 37
4152   18 28  - 38 38  - 38
4153   19 29  -  -  -  - 39
4155 do_execsql_test joinB-303 {
4156   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4157   FROM t1
4158   RIGHT JOIN t2 USING(a)
4159   LEFT JOIN t3 USING(a)
4160   LEFT JOIN t4 USING(a)
4161   FULL JOIN t5 USING(a)
4162   ORDER BY 1 NULLS FIRST;
4163 } {
4164    -  -  -  -  -  -
4165   12 12 12 12  -  -
4166   13  - 13 13 13  -
4167   15 15 15 15 15 15
4168   17  -  -  -  - 17
4169   18  - 18 18  - 18
4170   19  -  -  -  - 19
4172 do_execsql_test joinB-304 {
4173   SELECT b, c, d, e, f, g
4174   FROM t1
4175   NATURAL RIGHT JOIN t2
4176   NATURAL LEFT JOIN t3
4177   NATURAL LEFT JOIN t4
4178   NATURAL FULL JOIN t5
4179   WHERE b BETWEEN 12 AND 17
4180   ORDER BY 1 NULLS FIRST;
4181 } {
4183 do_execsql_test joinB-305 {
4184   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4185   FROM t1
4186   RIGHT JOIN t2 USING(a)
4187   LEFT JOIN t3 USING(a)
4188   RIGHT JOIN t4 USING(a)
4189   INNER JOIN t5 USING(a)
4190   ORDER BY 1 NULLS FIRST;
4191 } {
4192   15 15 15 15 15 15
4193   19  -  -  - 19 19
4195 do_execsql_test joinB-306 {
4196   SELECT a, c, d, e, f, g
4197   FROM t1
4198   RIGHT JOIN t2 USING(a,b)
4199   LEFT JOIN t3 USING(a,b)
4200   RIGHT JOIN t4 USING(a,b)
4201   INNER JOIN t5 USING(a,b)
4202   WHERE a<>13
4203   ORDER BY 1 NULLS FIRST;
4204 } {
4205   15 35 35 35 35 35
4206   19  -  -  - 39 39
4208 do_execsql_test joinB-307 {
4209   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4210   FROM t1
4211   RIGHT JOIN t2 USING(a)
4212   LEFT JOIN t3 USING(a)
4213   RIGHT JOIN t4 USING(a)
4214   LEFT JOIN t5 USING(a)
4215   ORDER BY 1 NULLS FIRST;
4216 } {
4217   11  -  -  - 11  -
4218   13  - 13 13 13  -
4219   15 15 15 15 15 15
4220   19  -  -  - 19 19
4222 do_execsql_test joinB-308 {
4223   SELECT a, c, d, e, f, g
4224   FROM t1
4225   RIGHT JOIN (t2 LEFT JOIN t3 USING(a)) USING(a)
4226   RIGHT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
4227   WHERE a<=18
4228   ORDER BY 1 NULLS FIRST;
4229 } {
4230   11  -  -  - 31  -
4231   13  - 33 33 33  -
4232   15 35 35 35 35 35
4234 do_execsql_test joinB-309 {
4235   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4236   FROM t1
4237   RIGHT JOIN t2 USING(a)
4238   LEFT JOIN t3 USING(a)
4239   RIGHT JOIN t4 USING(a)
4240   RIGHT JOIN t5 USING(a)
4241   ORDER BY 1 NULLS FIRST;
4242 } {
4243   15 15 15 15 15 15
4244   17  -  -  -  - 17
4245   18  -  -  -  - 18
4246   19  -  -  - 19 19
4248 do_execsql_test joinB-310 {
4249   SELECT a, b, c, d, e, f, g
4250   FROM t1
4251   RIGHT JOIN t2 USING(a,b)
4252   LEFT JOIN t3 USING(a,b)
4253   RIGHT JOIN t4 USING(a,b)
4254   RIGHT JOIN t5 USING(a,b)
4255   WHERE d<>33 OR d IS NULL
4256   ORDER BY 1 NULLS FIRST;
4257 } {
4258   15 25 35 35 35 35 35
4259   17 27  -  -  -  - 37
4260   18 28  -  -  -  - 38
4261   19 29  -  -  - 39 39
4263 do_execsql_test joinB-311 {
4264   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4265   FROM t1
4266   RIGHT JOIN t2 USING(a)
4267   LEFT JOIN t3 USING(a)
4268   RIGHT JOIN t4 USING(a)
4269   FULL JOIN t5 USING(a)
4270   ORDER BY 1 NULLS FIRST;
4271 } {
4272   11  -  -  - 11  -
4273   13  - 13 13 13  -
4274   15 15 15 15 15 15
4275   17  -  -  -  - 17
4276   18  -  -  -  - 18
4277   19  -  -  - 19 19
4279 do_execsql_test joinB-312 {
4280   SELECT b, c, d, e, f, g
4281   FROM t1
4282   NATURAL RIGHT JOIN t2
4283   NATURAL LEFT JOIN t3
4284   NATURAL RIGHT JOIN t4
4285   NATURAL FULL JOIN t5
4286   WHERE b BETWEEN 12 AND 17
4287   ORDER BY 1 NULLS FIRST;
4288 } {
4290 do_execsql_test joinB-313 {
4291   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4292   FROM t1
4293   RIGHT JOIN t2 USING(a)
4294   LEFT JOIN t3 USING(a)
4295   FULL JOIN t4 USING(a)
4296   INNER JOIN t5 USING(a)
4297   ORDER BY 1 NULLS FIRST;
4298 } {
4299   15 15 15 15 15 15
4300   18  - 18 18  - 18
4301   19  -  -  - 19 19
4303 do_execsql_test joinB-314 {
4304   SELECT a, c, d, e, f, g
4305   FROM t1
4306   RIGHT JOIN t2 USING(a,b)
4307   LEFT JOIN t3 USING(a,b)
4308   FULL JOIN t4 USING(a,b)
4309   INNER JOIN t5 USING(a,b)
4310   WHERE a<>13
4311   ORDER BY 1 NULLS FIRST;
4312 } {
4313   15 35 35 35 35 35
4314   18  - 38 38  - 38
4315   19  -  -  - 39 39
4317 do_execsql_test joinB-315 {
4318   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4319   FROM t1
4320   RIGHT JOIN t2 USING(a)
4321   LEFT JOIN t3 USING(a)
4322   FULL JOIN t4 USING(a)
4323   LEFT JOIN t5 USING(a)
4324   ORDER BY 1 NULLS FIRST;
4325 } {
4326    -  -  -  -  -  -
4327   11  -  -  - 11  -
4328   12 12 12 12  -  -
4329   13  - 13 13 13  -
4330   15 15 15 15 15 15
4331   18  - 18 18  - 18
4332   19  -  -  - 19 19
4334 do_execsql_test joinB-316 {
4335   SELECT a, c, d, e, f, g
4336   FROM t1
4337   RIGHT JOIN (t2 LEFT JOIN t3 USING(a)) USING(a)
4338   FULL JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
4339   WHERE a<=18
4340   ORDER BY 1 NULLS FIRST;
4341 } {
4342   11  -  -  - 31  -
4343   12 32 32 32  -  -
4344   13  - 33 33 33  -
4345   15 35 35 35 35 35
4346   18  - 38 38  -  -
4348 do_execsql_test joinB-317 {
4349   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4350   FROM t1
4351   RIGHT JOIN t2 USING(a)
4352   LEFT JOIN t3 USING(a)
4353   FULL JOIN t4 USING(a)
4354   RIGHT JOIN t5 USING(a)
4355   ORDER BY 1 NULLS FIRST;
4356 } {
4357   15 15 15 15 15 15
4358   17  -  -  -  - 17
4359   18  - 18 18  - 18
4360   19  -  -  - 19 19
4362 do_execsql_test joinB-318 {
4363   SELECT a, b, c, d, e, f, g
4364   FROM t1
4365   RIGHT JOIN t2 USING(a,b)
4366   LEFT JOIN t3 USING(a,b)
4367   FULL JOIN t4 USING(a,b)
4368   RIGHT JOIN t5 USING(a,b)
4369   WHERE d<>33 OR d IS NULL
4370   ORDER BY 1 NULLS FIRST;
4371 } {
4372   15 25 35 35 35 35 35
4373   17 27  -  -  -  - 37
4374   18 28  - 38 38  - 38
4375   19 29  -  -  - 39 39
4377 do_execsql_test joinB-319 {
4378   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4379   FROM t1
4380   RIGHT JOIN t2 USING(a)
4381   LEFT JOIN t3 USING(a)
4382   FULL JOIN t4 USING(a)
4383   FULL JOIN t5 USING(a)
4384   ORDER BY 1 NULLS FIRST;
4385 } {
4386    -  -  -  -  -  -
4387   11  -  -  - 11  -
4388   12 12 12 12  -  -
4389   13  - 13 13 13  -
4390   15 15 15 15 15 15
4391   17  -  -  -  - 17
4392   18  - 18 18  - 18
4393   19  -  -  - 19 19
4395 do_execsql_test joinB-320 {
4396   SELECT b, c, d, e, f, g
4397   FROM t1
4398   NATURAL RIGHT JOIN t2
4399   NATURAL LEFT JOIN t3
4400   NATURAL FULL JOIN t4
4401   NATURAL FULL JOIN t5
4402   WHERE b BETWEEN 12 AND 17
4403   ORDER BY 1 NULLS FIRST;
4404 } {
4406 do_execsql_test joinB-321 {
4407   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4408   FROM t1
4409   RIGHT JOIN t2 USING(a)
4410   RIGHT JOIN t3 USING(a)
4411   INNER JOIN t4 USING(a)
4412   INNER JOIN t5 USING(a)
4413   ORDER BY 1 NULLS FIRST;
4414 } {
4415   15 15 15 15 15 15
4416   19  -  - 19 19 19
4418 do_execsql_test joinB-322 {
4419   SELECT a, c, d, e, f, g
4420   FROM t1
4421   RIGHT JOIN t2 USING(a,b)
4422   RIGHT JOIN t3 USING(a,b)
4423   INNER JOIN t4 USING(a,b)
4424   INNER JOIN t5 USING(a,b)
4425   WHERE a<>13
4426   ORDER BY 1 NULLS FIRST;
4427 } {
4428   15 35 35 35 35 35
4429   19  -  - 39 39 39
4431 do_execsql_test joinB-323 {
4432   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4433   FROM t1
4434   RIGHT JOIN t2 USING(a)
4435   RIGHT JOIN t3 USING(a)
4436   INNER JOIN t4 USING(a)
4437   LEFT JOIN t5 USING(a)
4438   ORDER BY 1 NULLS FIRST;
4439 } {
4440   11  -  - 11 11  -
4441   13  - 13 13 13  -
4442   15 15 15 15 15 15
4443   19  -  - 19 19 19
4445 do_execsql_test joinB-324 {
4446   SELECT a, c, d, e, f, g
4447   FROM t1
4448   RIGHT JOIN (t2 RIGHT JOIN t3 USING(a)) USING(a)
4449   INNER JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
4450   WHERE a<=18
4451   ORDER BY 1 NULLS FIRST;
4452 } {
4453   11 31  - 31 31  -
4454   13  - 33 33 33  -
4455   15 35 35 35 35 35
4457 do_execsql_test joinB-325 {
4458   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4459   FROM t1
4460   RIGHT JOIN t2 USING(a)
4461   RIGHT JOIN t3 USING(a)
4462   INNER JOIN t4 USING(a)
4463   RIGHT JOIN t5 USING(a)
4464   ORDER BY 1 NULLS FIRST;
4465 } {
4466   15 15 15 15 15 15
4467   17  -  -  -  - 17
4468   18  -  -  -  - 18
4469   19  -  - 19 19 19
4471 do_execsql_test joinB-326 {
4472   SELECT a, b, c, d, e, f, g
4473   FROM t1
4474   RIGHT JOIN t2 USING(a,b)
4475   RIGHT JOIN t3 USING(a,b)
4476   INNER JOIN t4 USING(a,b)
4477   RIGHT JOIN t5 USING(a,b)
4478   WHERE d<>33 OR d IS NULL
4479   ORDER BY 1 NULLS FIRST;
4480 } {
4481   15 25 35 35 35 35 35
4482   17 27  -  -  -  - 37
4483   18 28  -  -  -  - 38
4484   19 29  -  - 39 39 39
4486 do_execsql_test joinB-327 {
4487   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4488   FROM t1
4489   RIGHT JOIN t2 USING(a)
4490   RIGHT JOIN t3 USING(a)
4491   INNER JOIN t4 USING(a)
4492   FULL JOIN t5 USING(a)
4493   ORDER BY 1 NULLS FIRST;
4494 } {
4495   11  -  - 11 11  -
4496   13  - 13 13 13  -
4497   15 15 15 15 15 15
4498   17  -  -  -  - 17
4499   18  -  -  -  - 18
4500   19  -  - 19 19 19
4502 do_execsql_test joinB-328 {
4503   SELECT b, c, d, e, f, g
4504   FROM t1
4505   NATURAL RIGHT JOIN t2
4506   NATURAL RIGHT JOIN t3
4507   NATURAL INNER JOIN t4
4508   NATURAL FULL JOIN t5
4509   WHERE b BETWEEN 12 AND 17
4510   ORDER BY 1 NULLS FIRST;
4511 } {
4513 do_execsql_test joinB-329 {
4514   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4515   FROM t1
4516   RIGHT JOIN t2 USING(a)
4517   RIGHT JOIN t3 USING(a)
4518   LEFT JOIN t4 USING(a)
4519   INNER JOIN t5 USING(a)
4520   ORDER BY 1 NULLS FIRST;
4521 } {
4522   15 15 15 15 15 15
4523   17  -  - 17  - 17
4524   18  - 18 18  - 18
4525   19  -  - 19 19 19
4527 do_execsql_test joinB-330 {
4528   SELECT a, c, d, e, f, g
4529   FROM t1
4530   RIGHT JOIN t2 USING(a,b)
4531   RIGHT JOIN t3 USING(a,b)
4532   LEFT JOIN t4 USING(a,b)
4533   INNER JOIN t5 USING(a,b)
4534   WHERE a<>13
4535   ORDER BY 1 NULLS FIRST;
4536 } {
4537   15 35 35 35 35 35
4538   17  -  - 37  - 37
4539   18  - 38 38  - 38
4540   19  -  - 39 39 39
4542 do_execsql_test joinB-331 {
4543   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4544   FROM t1
4545   RIGHT JOIN t2 USING(a)
4546   RIGHT JOIN t3 USING(a)
4547   LEFT JOIN t4 USING(a)
4548   LEFT JOIN t5 USING(a)
4549   ORDER BY 1 NULLS FIRST;
4550 } {
4551    -  -  -  -  -  -
4552   11  -  - 11 11  -
4553   12 12 12 12  -  -
4554   13  - 13 13 13  -
4555   15 15 15 15 15 15
4556   17  -  - 17  - 17
4557   18  - 18 18  - 18
4558   19  -  - 19 19 19
4560 do_execsql_test joinB-332 {
4561   SELECT a, c, d, e, f, g
4562   FROM t1
4563   RIGHT JOIN (t2 RIGHT JOIN t3 USING(a)) USING(a)
4564   LEFT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
4565   WHERE a<=18
4566   ORDER BY 1 NULLS FIRST;
4567 } {
4568   11 31  - 31 31  -
4569   12 32 32 32  -  -
4570   13  - 33 33 33  -
4571   15 35 35 35 35 35
4572   17 37  - 37  -  -
4573   18  - 38 38  -  -
4575 do_execsql_test joinB-333 {
4576   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4577   FROM t1
4578   RIGHT JOIN t2 USING(a)
4579   RIGHT JOIN t3 USING(a)
4580   LEFT JOIN t4 USING(a)
4581   RIGHT JOIN t5 USING(a)
4582   ORDER BY 1 NULLS FIRST;
4583 } {
4584   15 15 15 15 15 15
4585   17  -  - 17  - 17
4586   18  - 18 18  - 18
4587   19  -  - 19 19 19
4589 do_execsql_test joinB-334 {
4590   SELECT a, b, c, d, e, f, g
4591   FROM t1
4592   RIGHT JOIN t2 USING(a,b)
4593   RIGHT JOIN t3 USING(a,b)
4594   LEFT JOIN t4 USING(a,b)
4595   RIGHT JOIN t5 USING(a,b)
4596   WHERE d<>33 OR d IS NULL
4597   ORDER BY 1 NULLS FIRST;
4598 } {
4599   15 25 35 35 35 35 35
4600   17 27  -  - 37  - 37
4601   18 28  - 38 38  - 38
4602   19 29  -  - 39 39 39
4604 do_execsql_test joinB-335 {
4605   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4606   FROM t1
4607   RIGHT JOIN t2 USING(a)
4608   RIGHT JOIN t3 USING(a)
4609   LEFT JOIN t4 USING(a)
4610   FULL JOIN t5 USING(a)
4611   ORDER BY 1 NULLS FIRST;
4612 } {
4613    -  -  -  -  -  -
4614   11  -  - 11 11  -
4615   12 12 12 12  -  -
4616   13  - 13 13 13  -
4617   15 15 15 15 15 15
4618   17  -  - 17  - 17
4619   18  - 18 18  - 18
4620   19  -  - 19 19 19
4622 do_execsql_test joinB-336 {
4623   SELECT b, c, d, e, f, g
4624   FROM t1
4625   NATURAL RIGHT JOIN t2
4626   NATURAL RIGHT JOIN t3
4627   NATURAL LEFT JOIN t4
4628   NATURAL FULL JOIN t5
4629   WHERE b BETWEEN 12 AND 17
4630   ORDER BY 1 NULLS FIRST;
4631 } {
4633 do_execsql_test joinB-337 {
4634   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4635   FROM t1
4636   RIGHT JOIN t2 USING(a)
4637   RIGHT JOIN t3 USING(a)
4638   RIGHT JOIN t4 USING(a)
4639   INNER JOIN t5 USING(a)
4640   ORDER BY 1 NULLS FIRST;
4641 } {
4642   15 15 15 15 15 15
4643   19  -  - 19 19 19
4645 do_execsql_test joinB-338 {
4646   SELECT a, c, d, e, f, g
4647   FROM t1
4648   RIGHT JOIN t2 USING(a,b)
4649   RIGHT JOIN t3 USING(a,b)
4650   RIGHT JOIN t4 USING(a,b)
4651   INNER JOIN t5 USING(a,b)
4652   WHERE a<>13
4653   ORDER BY 1 NULLS FIRST;
4654 } {
4655   15 35 35 35 35 35
4656   19  -  - 39 39 39
4658 do_execsql_test joinB-339 {
4659   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4660   FROM t1
4661   RIGHT JOIN t2 USING(a)
4662   RIGHT JOIN t3 USING(a)
4663   RIGHT JOIN t4 USING(a)
4664   LEFT JOIN t5 USING(a)
4665   ORDER BY 1 NULLS FIRST;
4666 } {
4667   11  -  - 11 11  -
4668   13  - 13 13 13  -
4669   15 15 15 15 15 15
4670   19  -  - 19 19 19
4672 do_execsql_test joinB-340 {
4673   SELECT a, c, d, e, f, g
4674   FROM t1
4675   RIGHT JOIN (t2 RIGHT JOIN t3 USING(a)) USING(a)
4676   RIGHT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
4677   WHERE a<=18
4678   ORDER BY 1 NULLS FIRST;
4679 } {
4680   11 31  - 31 31  -
4681   13  - 33 33 33  -
4682   15 35 35 35 35 35
4684 do_execsql_test joinB-341 {
4685   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4686   FROM t1
4687   RIGHT JOIN t2 USING(a)
4688   RIGHT JOIN t3 USING(a)
4689   RIGHT JOIN t4 USING(a)
4690   RIGHT JOIN t5 USING(a)
4691   ORDER BY 1 NULLS FIRST;
4692 } {
4693   15 15 15 15 15 15
4694   17  -  -  -  - 17
4695   18  -  -  -  - 18
4696   19  -  - 19 19 19
4698 do_execsql_test joinB-342 {
4699   SELECT a, b, c, d, e, f, g
4700   FROM t1
4701   RIGHT JOIN t2 USING(a,b)
4702   RIGHT JOIN t3 USING(a,b)
4703   RIGHT JOIN t4 USING(a,b)
4704   RIGHT JOIN t5 USING(a,b)
4705   WHERE d<>33 OR d IS NULL
4706   ORDER BY 1 NULLS FIRST;
4707 } {
4708   15 25 35 35 35 35 35
4709   17 27  -  -  -  - 37
4710   18 28  -  -  -  - 38
4711   19 29  -  - 39 39 39
4713 do_execsql_test joinB-343 {
4714   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4715   FROM t1
4716   RIGHT JOIN t2 USING(a)
4717   RIGHT JOIN t3 USING(a)
4718   RIGHT JOIN t4 USING(a)
4719   FULL JOIN t5 USING(a)
4720   ORDER BY 1 NULLS FIRST;
4721 } {
4722   11  -  - 11 11  -
4723   13  - 13 13 13  -
4724   15 15 15 15 15 15
4725   17  -  -  -  - 17
4726   18  -  -  -  - 18
4727   19  -  - 19 19 19
4729 do_execsql_test joinB-344 {
4730   SELECT b, c, d, e, f, g
4731   FROM t1
4732   NATURAL RIGHT JOIN t2
4733   NATURAL RIGHT JOIN t3
4734   NATURAL RIGHT JOIN t4
4735   NATURAL FULL JOIN t5
4736   WHERE b BETWEEN 12 AND 17
4737   ORDER BY 1 NULLS FIRST;
4738 } {
4740 do_execsql_test joinB-345 {
4741   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4742   FROM t1
4743   RIGHT JOIN t2 USING(a)
4744   RIGHT JOIN t3 USING(a)
4745   FULL JOIN t4 USING(a)
4746   INNER JOIN t5 USING(a)
4747   ORDER BY 1 NULLS FIRST;
4748 } {
4749   15 15 15 15 15 15
4750   17  -  - 17  - 17
4751   18  - 18 18  - 18
4752   19  -  - 19 19 19
4754 do_execsql_test joinB-346 {
4755   SELECT a, c, d, e, f, g
4756   FROM t1
4757   RIGHT JOIN t2 USING(a,b)
4758   RIGHT JOIN t3 USING(a,b)
4759   FULL JOIN t4 USING(a,b)
4760   INNER JOIN t5 USING(a,b)
4761   WHERE a<>13
4762   ORDER BY 1 NULLS FIRST;
4763 } {
4764   15 35 35 35 35 35
4765   17  -  - 37  - 37
4766   18  - 38 38  - 38
4767   19  -  - 39 39 39
4769 do_execsql_test joinB-347 {
4770   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4771   FROM t1
4772   RIGHT JOIN t2 USING(a)
4773   RIGHT JOIN t3 USING(a)
4774   FULL JOIN t4 USING(a)
4775   LEFT JOIN t5 USING(a)
4776   ORDER BY 1 NULLS FIRST;
4777 } {
4778    -  -  -  -  -  -
4779   11  -  - 11 11  -
4780   12 12 12 12  -  -
4781   13  - 13 13 13  -
4782   15 15 15 15 15 15
4783   17  -  - 17  - 17
4784   18  - 18 18  - 18
4785   19  -  - 19 19 19
4787 do_execsql_test joinB-348 {
4788   SELECT a, c, d, e, f, g
4789   FROM t1
4790   RIGHT JOIN (t2 RIGHT JOIN t3 USING(a)) USING(a)
4791   FULL JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
4792   WHERE a<=18
4793   ORDER BY 1 NULLS FIRST;
4794 } {
4795   11 31  - 31 31  -
4796   12 32 32 32  -  -
4797   13  - 33 33 33  -
4798   15 35 35 35 35 35
4799   17 37  - 37  -  -
4800   18  - 38 38  -  -
4802 do_execsql_test joinB-349 {
4803   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4804   FROM t1
4805   RIGHT JOIN t2 USING(a)
4806   RIGHT JOIN t3 USING(a)
4807   FULL JOIN t4 USING(a)
4808   RIGHT JOIN t5 USING(a)
4809   ORDER BY 1 NULLS FIRST;
4810 } {
4811   15 15 15 15 15 15
4812   17  -  - 17  - 17
4813   18  - 18 18  - 18
4814   19  -  - 19 19 19
4816 do_execsql_test joinB-350 {
4817   SELECT a, b, c, d, e, f, g
4818   FROM t1
4819   RIGHT JOIN t2 USING(a,b)
4820   RIGHT JOIN t3 USING(a,b)
4821   FULL JOIN t4 USING(a,b)
4822   RIGHT JOIN t5 USING(a,b)
4823   WHERE d<>33 OR d IS NULL
4824   ORDER BY 1 NULLS FIRST;
4825 } {
4826   15 25 35 35 35 35 35
4827   17 27  -  - 37  - 37
4828   18 28  - 38 38  - 38
4829   19 29  -  - 39 39 39
4831 do_execsql_test joinB-351 {
4832   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4833   FROM t1
4834   RIGHT JOIN t2 USING(a)
4835   RIGHT JOIN t3 USING(a)
4836   FULL JOIN t4 USING(a)
4837   FULL JOIN t5 USING(a)
4838   ORDER BY 1 NULLS FIRST;
4839 } {
4840    -  -  -  -  -  -
4841   11  -  - 11 11  -
4842   12 12 12 12  -  -
4843   13  - 13 13 13  -
4844   15 15 15 15 15 15
4845   17  -  - 17  - 17
4846   18  - 18 18  - 18
4847   19  -  - 19 19 19
4849 do_execsql_test joinB-352 {
4850   SELECT b, c, d, e, f, g
4851   FROM t1
4852   NATURAL RIGHT JOIN t2
4853   NATURAL RIGHT JOIN t3
4854   NATURAL FULL JOIN t4
4855   NATURAL FULL JOIN t5
4856   WHERE b BETWEEN 12 AND 17
4857   ORDER BY 1 NULLS FIRST;
4858 } {
4860 do_execsql_test joinB-353 {
4861   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4862   FROM t1
4863   RIGHT JOIN t2 USING(a)
4864   FULL JOIN t3 USING(a)
4865   INNER JOIN t4 USING(a)
4866   INNER JOIN t5 USING(a)
4867   ORDER BY 1 NULLS FIRST;
4868 } {
4869   15 15 15 15 15 15
4870   19  -  - 19 19 19
4872 do_execsql_test joinB-354 {
4873   SELECT a, c, d, e, f, g
4874   FROM t1
4875   RIGHT JOIN t2 USING(a,b)
4876   FULL JOIN t3 USING(a,b)
4877   INNER JOIN t4 USING(a,b)
4878   INNER JOIN t5 USING(a,b)
4879   WHERE a<>13
4880   ORDER BY 1 NULLS FIRST;
4881 } {
4882   15 35 35 35 35 35
4883   19  -  - 39 39 39
4885 do_execsql_test joinB-355 {
4886   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4887   FROM t1
4888   RIGHT JOIN t2 USING(a)
4889   FULL JOIN t3 USING(a)
4890   INNER JOIN t4 USING(a)
4891   LEFT JOIN t5 USING(a)
4892   ORDER BY 1 NULLS FIRST;
4893 } {
4894   11  -  - 11 11  -
4895   13  - 13 13 13  -
4896   15 15 15 15 15 15
4897   19  -  - 19 19 19
4899 do_execsql_test joinB-356 {
4900   SELECT a, c, d, e, f, g
4901   FROM t1
4902   RIGHT JOIN (t2 FULL JOIN t3 USING(a)) USING(a)
4903   INNER JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
4904   WHERE a<=18
4905   ORDER BY 1 NULLS FIRST;
4906 } {
4907   11 31  - 31 31  -
4908   13  - 33 33 33  -
4909   15 35 35 35 35 35
4911 do_execsql_test joinB-357 {
4912   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4913   FROM t1
4914   RIGHT JOIN t2 USING(a)
4915   FULL JOIN t3 USING(a)
4916   INNER JOIN t4 USING(a)
4917   RIGHT JOIN t5 USING(a)
4918   ORDER BY 1 NULLS FIRST;
4919 } {
4920   15 15 15 15 15 15
4921   17  -  -  -  - 17
4922   18  -  -  -  - 18
4923   19  -  - 19 19 19
4925 do_execsql_test joinB-358 {
4926   SELECT a, b, c, d, e, f, g
4927   FROM t1
4928   RIGHT JOIN t2 USING(a,b)
4929   FULL JOIN t3 USING(a,b)
4930   INNER JOIN t4 USING(a,b)
4931   RIGHT JOIN t5 USING(a,b)
4932   WHERE d<>33 OR d IS NULL
4933   ORDER BY 1 NULLS FIRST;
4934 } {
4935   15 25 35 35 35 35 35
4936   17 27  -  -  -  - 37
4937   18 28  -  -  -  - 38
4938   19 29  -  - 39 39 39
4940 do_execsql_test joinB-359 {
4941   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4942   FROM t1
4943   RIGHT JOIN t2 USING(a)
4944   FULL JOIN t3 USING(a)
4945   INNER JOIN t4 USING(a)
4946   FULL JOIN t5 USING(a)
4947   ORDER BY 1 NULLS FIRST;
4948 } {
4949   11  -  - 11 11  -
4950   13  - 13 13 13  -
4951   15 15 15 15 15 15
4952   17  -  -  -  - 17
4953   18  -  -  -  - 18
4954   19  -  - 19 19 19
4956 do_execsql_test joinB-360 {
4957   SELECT b, c, d, e, f, g
4958   FROM t1
4959   NATURAL RIGHT JOIN t2
4960   NATURAL FULL JOIN t3
4961   NATURAL INNER JOIN t4
4962   NATURAL FULL JOIN t5
4963   WHERE b BETWEEN 12 AND 17
4964   ORDER BY 1 NULLS FIRST;
4965 } {
4967 do_execsql_test joinB-361 {
4968   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4969   FROM t1
4970   RIGHT JOIN t2 USING(a)
4971   FULL JOIN t3 USING(a)
4972   LEFT JOIN t4 USING(a)
4973   INNER JOIN t5 USING(a)
4974   ORDER BY 1 NULLS FIRST;
4975 } {
4976   15 15 15 15 15 15
4977   17  -  - 17  - 17
4978   18  - 18 18  - 18
4979   19  -  - 19 19 19
4981 do_execsql_test joinB-362 {
4982   SELECT a, c, d, e, f, g
4983   FROM t1
4984   RIGHT JOIN t2 USING(a,b)
4985   FULL JOIN t3 USING(a,b)
4986   LEFT JOIN t4 USING(a,b)
4987   INNER JOIN t5 USING(a,b)
4988   WHERE a<>13
4989   ORDER BY 1 NULLS FIRST;
4990 } {
4991   15 35 35 35 35 35
4992   17  -  - 37  - 37
4993   18  - 38 38  - 38
4994   19  -  - 39 39 39
4996 do_execsql_test joinB-363 {
4997   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
4998   FROM t1
4999   RIGHT JOIN t2 USING(a)
5000   FULL JOIN t3 USING(a)
5001   LEFT JOIN t4 USING(a)
5002   LEFT JOIN t5 USING(a)
5003   ORDER BY 1 NULLS FIRST;
5004 } {
5005    -  -  -  -  -  -
5006    -  -  -  -  -  -
5007   11  -  - 11 11  -
5008   12 12 12 12  -  -
5009   13  - 13 13 13  -
5010   15 15 15 15 15 15
5011   17  -  - 17  - 17
5012   18  - 18 18  - 18
5013   19  -  - 19 19 19
5015 do_execsql_test joinB-364 {
5016   SELECT a, c, d, e, f, g
5017   FROM t1
5018   RIGHT JOIN (t2 FULL JOIN t3 USING(a)) USING(a)
5019   LEFT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
5020   WHERE a<=18
5021   ORDER BY 1 NULLS FIRST;
5022 } {
5023   11 31  - 31 31  -
5024   12 32 32 32  -  -
5025   13  - 33 33 33  -
5026   15 35 35 35 35 35
5027   17 37  - 37  -  -
5028   18  - 38 38  -  -
5030 do_execsql_test joinB-365 {
5031   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5032   FROM t1
5033   RIGHT JOIN t2 USING(a)
5034   FULL JOIN t3 USING(a)
5035   LEFT JOIN t4 USING(a)
5036   RIGHT JOIN t5 USING(a)
5037   ORDER BY 1 NULLS FIRST;
5038 } {
5039   15 15 15 15 15 15
5040   17  -  - 17  - 17
5041   18  - 18 18  - 18
5042   19  -  - 19 19 19
5044 do_execsql_test joinB-366 {
5045   SELECT a, b, c, d, e, f, g
5046   FROM t1
5047   RIGHT JOIN t2 USING(a,b)
5048   FULL JOIN t3 USING(a,b)
5049   LEFT JOIN t4 USING(a,b)
5050   RIGHT JOIN t5 USING(a,b)
5051   WHERE d<>33 OR d IS NULL
5052   ORDER BY 1 NULLS FIRST;
5053 } {
5054   15 25 35 35 35 35 35
5055   17 27  -  - 37  - 37
5056   18 28  - 38 38  - 38
5057   19 29  -  - 39 39 39
5059 do_execsql_test joinB-367 {
5060   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5061   FROM t1
5062   RIGHT JOIN t2 USING(a)
5063   FULL JOIN t3 USING(a)
5064   LEFT JOIN t4 USING(a)
5065   FULL JOIN t5 USING(a)
5066   ORDER BY 1 NULLS FIRST;
5067 } {
5068    -  -  -  -  -  -
5069    -  -  -  -  -  -
5070   11  -  - 11 11  -
5071   12 12 12 12  -  -
5072   13  - 13 13 13  -
5073   15 15 15 15 15 15
5074   17  -  - 17  - 17
5075   18  - 18 18  - 18
5076   19  -  - 19 19 19
5078 do_execsql_test joinB-368 {
5079   SELECT b, c, d, e, f, g
5080   FROM t1
5081   NATURAL RIGHT JOIN t2
5082   NATURAL FULL JOIN t3
5083   NATURAL LEFT JOIN t4
5084   NATURAL FULL JOIN t5
5085   WHERE b BETWEEN 12 AND 17
5086   ORDER BY 1 NULLS FIRST;
5087 } {
5089 do_execsql_test joinB-369 {
5090   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5091   FROM t1
5092   RIGHT JOIN t2 USING(a)
5093   FULL JOIN t3 USING(a)
5094   RIGHT JOIN t4 USING(a)
5095   INNER JOIN t5 USING(a)
5096   ORDER BY 1 NULLS FIRST;
5097 } {
5098   15 15 15 15 15 15
5099   19  -  - 19 19 19
5101 do_execsql_test joinB-370 {
5102   SELECT a, c, d, e, f, g
5103   FROM t1
5104   RIGHT JOIN t2 USING(a,b)
5105   FULL JOIN t3 USING(a,b)
5106   RIGHT JOIN t4 USING(a,b)
5107   INNER JOIN t5 USING(a,b)
5108   WHERE a<>13
5109   ORDER BY 1 NULLS FIRST;
5110 } {
5111   15 35 35 35 35 35
5112   19  -  - 39 39 39
5114 do_execsql_test joinB-371 {
5115   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5116   FROM t1
5117   RIGHT JOIN t2 USING(a)
5118   FULL JOIN t3 USING(a)
5119   RIGHT JOIN t4 USING(a)
5120   LEFT JOIN t5 USING(a)
5121   ORDER BY 1 NULLS FIRST;
5122 } {
5123   11  -  - 11 11  -
5124   13  - 13 13 13  -
5125   15 15 15 15 15 15
5126   19  -  - 19 19 19
5128 do_execsql_test joinB-372 {
5129   SELECT a, c, d, e, f, g
5130   FROM t1
5131   RIGHT JOIN (t2 FULL JOIN t3 USING(a)) USING(a)
5132   RIGHT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
5133   WHERE a<=18
5134   ORDER BY 1 NULLS FIRST;
5135 } {
5136   11 31  - 31 31  -
5137   13  - 33 33 33  -
5138   15 35 35 35 35 35
5140 do_execsql_test joinB-373 {
5141   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5142   FROM t1
5143   RIGHT JOIN t2 USING(a)
5144   FULL JOIN t3 USING(a)
5145   RIGHT JOIN t4 USING(a)
5146   RIGHT JOIN t5 USING(a)
5147   ORDER BY 1 NULLS FIRST;
5148 } {
5149   15 15 15 15 15 15
5150   17  -  -  -  - 17
5151   18  -  -  -  - 18
5152   19  -  - 19 19 19
5154 do_execsql_test joinB-374 {
5155   SELECT a, b, c, d, e, f, g
5156   FROM t1
5157   RIGHT JOIN t2 USING(a,b)
5158   FULL JOIN t3 USING(a,b)
5159   RIGHT JOIN t4 USING(a,b)
5160   RIGHT JOIN t5 USING(a,b)
5161   WHERE d<>33 OR d IS NULL
5162   ORDER BY 1 NULLS FIRST;
5163 } {
5164   15 25 35 35 35 35 35
5165   17 27  -  -  -  - 37
5166   18 28  -  -  -  - 38
5167   19 29  -  - 39 39 39
5169 do_execsql_test joinB-375 {
5170   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5171   FROM t1
5172   RIGHT JOIN t2 USING(a)
5173   FULL JOIN t3 USING(a)
5174   RIGHT JOIN t4 USING(a)
5175   FULL JOIN t5 USING(a)
5176   ORDER BY 1 NULLS FIRST;
5177 } {
5178   11  -  - 11 11  -
5179   13  - 13 13 13  -
5180   15 15 15 15 15 15
5181   17  -  -  -  - 17
5182   18  -  -  -  - 18
5183   19  -  - 19 19 19
5185 do_execsql_test joinB-376 {
5186   SELECT b, c, d, e, f, g
5187   FROM t1
5188   NATURAL RIGHT JOIN t2
5189   NATURAL FULL JOIN t3
5190   NATURAL RIGHT JOIN t4
5191   NATURAL FULL JOIN t5
5192   WHERE b BETWEEN 12 AND 17
5193   ORDER BY 1 NULLS FIRST;
5194 } {
5196 do_execsql_test joinB-377 {
5197   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5198   FROM t1
5199   RIGHT JOIN t2 USING(a)
5200   FULL JOIN t3 USING(a)
5201   FULL JOIN t4 USING(a)
5202   INNER JOIN t5 USING(a)
5203   ORDER BY 1 NULLS FIRST;
5204 } {
5205   15 15 15 15 15 15
5206   17  -  - 17  - 17
5207   18  - 18 18  - 18
5208   19  -  - 19 19 19
5210 do_execsql_test joinB-378 {
5211   SELECT a, c, d, e, f, g
5212   FROM t1
5213   RIGHT JOIN t2 USING(a,b)
5214   FULL JOIN t3 USING(a,b)
5215   FULL JOIN t4 USING(a,b)
5216   INNER JOIN t5 USING(a,b)
5217   WHERE a<>13
5218   ORDER BY 1 NULLS FIRST;
5219 } {
5220   15 35 35 35 35 35
5221   17  -  - 37  - 37
5222   18  - 38 38  - 38
5223   19  -  - 39 39 39
5225 do_execsql_test joinB-379 {
5226   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5227   FROM t1
5228   RIGHT JOIN t2 USING(a)
5229   FULL JOIN t3 USING(a)
5230   FULL JOIN t4 USING(a)
5231   LEFT JOIN t5 USING(a)
5232   ORDER BY 1 NULLS FIRST;
5233 } {
5234    -  -  -  -  -  -
5235    -  -  -  -  -  -
5236   11  -  - 11 11  -
5237   12 12 12 12  -  -
5238   13  - 13 13 13  -
5239   15 15 15 15 15 15
5240   17  -  - 17  - 17
5241   18  - 18 18  - 18
5242   19  -  - 19 19 19
5244 do_execsql_test joinB-380 {
5245   SELECT a, c, d, e, f, g
5246   FROM t1
5247   RIGHT JOIN (t2 FULL JOIN t3 USING(a)) USING(a)
5248   FULL JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
5249   WHERE a<=18
5250   ORDER BY 1 NULLS FIRST;
5251 } {
5252   11 31  - 31 31  -
5253   12 32 32 32  -  -
5254   13  - 33 33 33  -
5255   15 35 35 35 35 35
5256   17 37  - 37  -  -
5257   18  - 38 38  -  -
5259 do_execsql_test joinB-381 {
5260   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5261   FROM t1
5262   RIGHT JOIN t2 USING(a)
5263   FULL JOIN t3 USING(a)
5264   FULL JOIN t4 USING(a)
5265   RIGHT JOIN t5 USING(a)
5266   ORDER BY 1 NULLS FIRST;
5267 } {
5268   15 15 15 15 15 15
5269   17  -  - 17  - 17
5270   18  - 18 18  - 18
5271   19  -  - 19 19 19
5273 do_execsql_test joinB-382 {
5274   SELECT a, b, c, d, e, f, g
5275   FROM t1
5276   RIGHT JOIN t2 USING(a,b)
5277   FULL JOIN t3 USING(a,b)
5278   FULL JOIN t4 USING(a,b)
5279   RIGHT JOIN t5 USING(a,b)
5280   WHERE d<>33 OR d IS NULL
5281   ORDER BY 1 NULLS FIRST;
5282 } {
5283   15 25 35 35 35 35 35
5284   17 27  -  - 37  - 37
5285   18 28  - 38 38  - 38
5286   19 29  -  - 39 39 39
5288 do_execsql_test joinB-383 {
5289   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5290   FROM t1
5291   RIGHT JOIN t2 USING(a)
5292   FULL JOIN t3 USING(a)
5293   FULL JOIN t4 USING(a)
5294   FULL JOIN t5 USING(a)
5295   ORDER BY 1 NULLS FIRST;
5296 } {
5297    -  -  -  -  -  -
5298    -  -  -  -  -  -
5299   11  -  - 11 11  -
5300   12 12 12 12  -  -
5301   13  - 13 13 13  -
5302   15 15 15 15 15 15
5303   17  -  - 17  - 17
5304   18  - 18 18  - 18
5305   19  -  - 19 19 19
5307 do_execsql_test joinB-384 {
5308   SELECT b, c, d, e, f, g
5309   FROM t1
5310   NATURAL RIGHT JOIN t2
5311   NATURAL FULL JOIN t3
5312   NATURAL FULL JOIN t4
5313   NATURAL FULL JOIN t5
5314   WHERE b BETWEEN 12 AND 17
5315   ORDER BY 1 NULLS FIRST;
5316 } {
5318 do_execsql_test joinB-385 {
5319   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5320   FROM t1
5321   FULL JOIN t2 USING(a)
5322   INNER JOIN t3 USING(a)
5323   INNER JOIN t4 USING(a)
5324   INNER JOIN t5 USING(a)
5325   ORDER BY 1 NULLS FIRST;
5326 } {
5327   15 15 15 15 15 15
5329 do_execsql_test joinB-386 {
5330   SELECT a, c, d, e, f, g
5331   FROM t1
5332   FULL JOIN t2 USING(a,b)
5333   INNER JOIN t3 USING(a,b)
5334   INNER JOIN t4 USING(a,b)
5335   INNER JOIN t5 USING(a,b)
5336   WHERE a<>13
5337   ORDER BY 1 NULLS FIRST;
5338 } {
5339   15 35 35 35 35 35
5341 do_execsql_test joinB-387 {
5342   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5343   FROM t1
5344   FULL JOIN t2 USING(a)
5345   INNER JOIN t3 USING(a)
5346   INNER JOIN t4 USING(a)
5347   LEFT JOIN t5 USING(a)
5348   ORDER BY 1 NULLS FIRST;
5349 } {
5350   11 11  - 11 11  -
5351   13  - 13 13 13  -
5352   15 15 15 15 15 15
5354 do_execsql_test joinB-388 {
5355   SELECT a, c, d, e, f, g
5356   FROM t1
5357   FULL JOIN (t2 INNER JOIN t3 USING(a)) USING(a)
5358   INNER JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
5359   WHERE a<=18
5360   ORDER BY 1 NULLS FIRST;
5361 } {
5362   11 31  -  - 31  -
5363   13  - 33 33 33  -
5364   15 35 35 35 35 35
5366 do_execsql_test joinB-389 {
5367   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5368   FROM t1
5369   FULL JOIN t2 USING(a)
5370   INNER JOIN t3 USING(a)
5371   INNER JOIN t4 USING(a)
5372   RIGHT JOIN t5 USING(a)
5373   ORDER BY 1 NULLS FIRST;
5374 } {
5375   15 15 15 15 15 15
5376   17  -  -  -  - 17
5377   18  -  -  -  - 18
5378   19  -  -  -  - 19
5380 do_execsql_test joinB-390 {
5381   SELECT a, b, c, d, e, f, g
5382   FROM t1
5383   FULL JOIN t2 USING(a,b)
5384   INNER JOIN t3 USING(a,b)
5385   INNER JOIN t4 USING(a,b)
5386   RIGHT JOIN t5 USING(a,b)
5387   WHERE d<>33 OR d IS NULL
5388   ORDER BY 1 NULLS FIRST;
5389 } {
5390   15 25 35 35 35 35 35
5391   17 27  -  -  -  - 37
5392   18 28  -  -  -  - 38
5393   19 29  -  -  -  - 39
5395 do_execsql_test joinB-391 {
5396   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5397   FROM t1
5398   FULL JOIN t2 USING(a)
5399   INNER JOIN t3 USING(a)
5400   INNER JOIN t4 USING(a)
5401   FULL JOIN t5 USING(a)
5402   ORDER BY 1 NULLS FIRST;
5403 } {
5404   11 11  - 11 11  -
5405   13  - 13 13 13  -
5406   15 15 15 15 15 15
5407   17  -  -  -  - 17
5408   18  -  -  -  - 18
5409   19  -  -  -  - 19
5411 do_execsql_test joinB-392 {
5412   SELECT b, c, d, e, f, g
5413   FROM t1
5414   NATURAL FULL JOIN t2
5415   NATURAL INNER JOIN t3
5416   NATURAL INNER JOIN t4
5417   NATURAL FULL JOIN t5
5418   WHERE b BETWEEN 12 AND 17
5419   ORDER BY 1 NULLS FIRST;
5420 } {
5422 do_execsql_test joinB-393 {
5423   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5424   FROM t1
5425   FULL JOIN t2 USING(a)
5426   INNER JOIN t3 USING(a)
5427   LEFT JOIN t4 USING(a)
5428   INNER JOIN t5 USING(a)
5429   ORDER BY 1 NULLS FIRST;
5430 } {
5431   15 15 15 15 15 15
5432   17 17  - 17  - 17
5433   18  - 18 18  - 18
5435 do_execsql_test joinB-394 {
5436   SELECT a, c, d, e, f, g
5437   FROM t1
5438   FULL JOIN t2 USING(a,b)
5439   INNER JOIN t3 USING(a,b)
5440   LEFT JOIN t4 USING(a,b)
5441   INNER JOIN t5 USING(a,b)
5442   WHERE a<>13
5443   ORDER BY 1 NULLS FIRST;
5444 } {
5445   15 35 35 35 35 35
5446   17 37  - 37  - 37
5447   18  - 38 38  - 38
5449 do_execsql_test joinB-395 {
5450   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5451   FROM t1
5452   FULL JOIN t2 USING(a)
5453   INNER JOIN t3 USING(a)
5454   LEFT JOIN t4 USING(a)
5455   LEFT JOIN t5 USING(a)
5456   ORDER BY 1 NULLS FIRST;
5457 } {
5458   11 11  - 11 11  -
5459   12 12 12 12  -  -
5460   13  - 13 13 13  -
5461   15 15 15 15 15 15
5462   17 17  - 17  - 17
5463   18  - 18 18  - 18
5465 do_execsql_test joinB-396 {
5466   SELECT a, c, d, e, f, g
5467   FROM t1
5468   FULL JOIN (t2 INNER JOIN t3 USING(a)) USING(a)
5469   LEFT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
5470   WHERE a<=18
5471   ORDER BY 1 NULLS FIRST;
5472 } {
5473   11 31  -  - 31  -
5474   12 32 32 32  -  -
5475   13  - 33 33 33  -
5476   15 35 35 35 35 35
5477   17 37  -  -  -  -
5478   18  - 38 38  -  -
5480 do_execsql_test joinB-397 {
5481   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5482   FROM t1
5483   FULL JOIN t2 USING(a)
5484   INNER JOIN t3 USING(a)
5485   LEFT JOIN t4 USING(a)
5486   RIGHT JOIN t5 USING(a)
5487   ORDER BY 1 NULLS FIRST;
5488 } {
5489   15 15 15 15 15 15
5490   17 17  - 17  - 17
5491   18  - 18 18  - 18
5492   19  -  -  -  - 19
5494 do_execsql_test joinB-398 {
5495   SELECT a, b, c, d, e, f, g
5496   FROM t1
5497   FULL JOIN t2 USING(a,b)
5498   INNER JOIN t3 USING(a,b)
5499   LEFT JOIN t4 USING(a,b)
5500   RIGHT JOIN t5 USING(a,b)
5501   WHERE d<>33 OR d IS NULL
5502   ORDER BY 1 NULLS FIRST;
5503 } {
5504   15 25 35 35 35 35 35
5505   17 27 37  - 37  - 37
5506   18 28  - 38 38  - 38
5507   19 29  -  -  -  - 39
5509 do_execsql_test joinB-399 {
5510   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5511   FROM t1
5512   FULL JOIN t2 USING(a)
5513   INNER JOIN t3 USING(a)
5514   LEFT JOIN t4 USING(a)
5515   FULL JOIN t5 USING(a)
5516   ORDER BY 1 NULLS FIRST;
5517 } {
5518   11 11  - 11 11  -
5519   12 12 12 12  -  -
5520   13  - 13 13 13  -
5521   15 15 15 15 15 15
5522   17 17  - 17  - 17
5523   18  - 18 18  - 18
5524   19  -  -  -  - 19
5526 do_execsql_test joinB-400 {
5527   SELECT b, c, d, e, f, g
5528   FROM t1
5529   NATURAL FULL JOIN t2
5530   NATURAL INNER JOIN t3
5531   NATURAL LEFT JOIN t4
5532   NATURAL FULL JOIN t5
5533   WHERE b BETWEEN 12 AND 17
5534   ORDER BY 1 NULLS FIRST;
5535 } {
5537 do_execsql_test joinB-401 {
5538   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5539   FROM t1
5540   FULL JOIN t2 USING(a)
5541   INNER JOIN t3 USING(a)
5542   RIGHT JOIN t4 USING(a)
5543   INNER JOIN t5 USING(a)
5544   ORDER BY 1 NULLS FIRST;
5545 } {
5546   15 15 15 15 15 15
5547   19  -  -  - 19 19
5549 do_execsql_test joinB-402 {
5550   SELECT a, c, d, e, f, g
5551   FROM t1
5552   FULL JOIN t2 USING(a,b)
5553   INNER JOIN t3 USING(a,b)
5554   RIGHT JOIN t4 USING(a,b)
5555   INNER JOIN t5 USING(a,b)
5556   WHERE a<>13
5557   ORDER BY 1 NULLS FIRST;
5558 } {
5559   15 35 35 35 35 35
5560   19  -  -  - 39 39
5562 do_execsql_test joinB-403 {
5563   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5564   FROM t1
5565   FULL JOIN t2 USING(a)
5566   INNER JOIN t3 USING(a)
5567   RIGHT JOIN t4 USING(a)
5568   LEFT JOIN t5 USING(a)
5569   ORDER BY 1 NULLS FIRST;
5570 } {
5571   11 11  - 11 11  -
5572   13  - 13 13 13  -
5573   15 15 15 15 15 15
5574   19  -  -  - 19 19
5576 do_execsql_test joinB-404 {
5577   SELECT a, c, d, e, f, g
5578   FROM t1
5579   FULL JOIN (t2 INNER JOIN t3 USING(a)) USING(a)
5580   RIGHT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
5581   WHERE a<=18
5582   ORDER BY 1 NULLS FIRST;
5583 } {
5584   11 31  -  - 31  -
5585   13  - 33 33 33  -
5586   15 35 35 35 35 35
5588 do_execsql_test joinB-405 {
5589   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5590   FROM t1
5591   FULL JOIN t2 USING(a)
5592   INNER JOIN t3 USING(a)
5593   RIGHT JOIN t4 USING(a)
5594   RIGHT JOIN t5 USING(a)
5595   ORDER BY 1 NULLS FIRST;
5596 } {
5597   15 15 15 15 15 15
5598   17  -  -  -  - 17
5599   18  -  -  -  - 18
5600   19  -  -  - 19 19
5602 do_execsql_test joinB-406 {
5603   SELECT a, b, c, d, e, f, g
5604   FROM t1
5605   FULL JOIN t2 USING(a,b)
5606   INNER JOIN t3 USING(a,b)
5607   RIGHT JOIN t4 USING(a,b)
5608   RIGHT JOIN t5 USING(a,b)
5609   WHERE d<>33 OR d IS NULL
5610   ORDER BY 1 NULLS FIRST;
5611 } {
5612   15 25 35 35 35 35 35
5613   17 27  -  -  -  - 37
5614   18 28  -  -  -  - 38
5615   19 29  -  -  - 39 39
5617 do_execsql_test joinB-407 {
5618   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5619   FROM t1
5620   FULL JOIN t2 USING(a)
5621   INNER JOIN t3 USING(a)
5622   RIGHT JOIN t4 USING(a)
5623   FULL JOIN t5 USING(a)
5624   ORDER BY 1 NULLS FIRST;
5625 } {
5626   11 11  - 11 11  -
5627   13  - 13 13 13  -
5628   15 15 15 15 15 15
5629   17  -  -  -  - 17
5630   18  -  -  -  - 18
5631   19  -  -  - 19 19
5633 do_execsql_test joinB-408 {
5634   SELECT b, c, d, e, f, g
5635   FROM t1
5636   NATURAL FULL JOIN t2
5637   NATURAL INNER JOIN t3
5638   NATURAL RIGHT JOIN t4
5639   NATURAL FULL JOIN t5
5640   WHERE b BETWEEN 12 AND 17
5641   ORDER BY 1 NULLS FIRST;
5642 } {
5644 do_execsql_test joinB-409 {
5645   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5646   FROM t1
5647   FULL JOIN t2 USING(a)
5648   INNER JOIN t3 USING(a)
5649   FULL JOIN t4 USING(a)
5650   INNER JOIN t5 USING(a)
5651   ORDER BY 1 NULLS FIRST;
5652 } {
5653   15 15 15 15 15 15
5654   17 17  - 17  - 17
5655   18  - 18 18  - 18
5656   19  -  -  - 19 19
5658 do_execsql_test joinB-410 {
5659   SELECT a, c, d, e, f, g
5660   FROM t1
5661   FULL JOIN t2 USING(a,b)
5662   INNER JOIN t3 USING(a,b)
5663   FULL JOIN t4 USING(a,b)
5664   INNER JOIN t5 USING(a,b)
5665   WHERE a<>13
5666   ORDER BY 1 NULLS FIRST;
5667 } {
5668   15 35 35 35 35 35
5669   17 37  - 37  - 37
5670   18  - 38 38  - 38
5671   19  -  -  - 39 39
5673 do_execsql_test joinB-411 {
5674   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5675   FROM t1
5676   FULL JOIN t2 USING(a)
5677   INNER JOIN t3 USING(a)
5678   FULL JOIN t4 USING(a)
5679   LEFT JOIN t5 USING(a)
5680   ORDER BY 1 NULLS FIRST;
5681 } {
5682   11 11  - 11 11  -
5683   12 12 12 12  -  -
5684   13  - 13 13 13  -
5685   15 15 15 15 15 15
5686   17 17  - 17  - 17
5687   18  - 18 18  - 18
5688   19  -  -  - 19 19
5690 do_execsql_test joinB-412 {
5691   SELECT a, c, d, e, f, g
5692   FROM t1
5693   FULL JOIN (t2 INNER JOIN t3 USING(a)) USING(a)
5694   FULL JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
5695   WHERE a<=18
5696   ORDER BY 1 NULLS FIRST;
5697 } {
5698   11 31  -  - 31  -
5699   12 32 32 32  -  -
5700   13  - 33 33 33  -
5701   15 35 35 35 35 35
5702   17 37  -  -  -  -
5703   18  - 38 38  -  -
5705 do_execsql_test joinB-413 {
5706   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5707   FROM t1
5708   FULL JOIN t2 USING(a)
5709   INNER JOIN t3 USING(a)
5710   FULL JOIN t4 USING(a)
5711   RIGHT JOIN t5 USING(a)
5712   ORDER BY 1 NULLS FIRST;
5713 } {
5714   15 15 15 15 15 15
5715   17 17  - 17  - 17
5716   18  - 18 18  - 18
5717   19  -  -  - 19 19
5719 do_execsql_test joinB-414 {
5720   SELECT a, b, c, d, e, f, g
5721   FROM t1
5722   FULL JOIN t2 USING(a,b)
5723   INNER JOIN t3 USING(a,b)
5724   FULL JOIN t4 USING(a,b)
5725   RIGHT JOIN t5 USING(a,b)
5726   WHERE d<>33 OR d IS NULL
5727   ORDER BY 1 NULLS FIRST;
5728 } {
5729   15 25 35 35 35 35 35
5730   17 27 37  - 37  - 37
5731   18 28  - 38 38  - 38
5732   19 29  -  -  - 39 39
5734 do_execsql_test joinB-415 {
5735   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5736   FROM t1
5737   FULL JOIN t2 USING(a)
5738   INNER JOIN t3 USING(a)
5739   FULL JOIN t4 USING(a)
5740   FULL JOIN t5 USING(a)
5741   ORDER BY 1 NULLS FIRST;
5742 } {
5743   11 11  - 11 11  -
5744   12 12 12 12  -  -
5745   13  - 13 13 13  -
5746   15 15 15 15 15 15
5747   17 17  - 17  - 17
5748   18  - 18 18  - 18
5749   19  -  -  - 19 19
5751 do_execsql_test joinB-416 {
5752   SELECT b, c, d, e, f, g
5753   FROM t1
5754   NATURAL FULL JOIN t2
5755   NATURAL INNER JOIN t3
5756   NATURAL FULL JOIN t4
5757   NATURAL FULL JOIN t5
5758   WHERE b BETWEEN 12 AND 17
5759   ORDER BY 1 NULLS FIRST;
5760 } {
5762 do_execsql_test joinB-417 {
5763   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5764   FROM t1
5765   FULL JOIN t2 USING(a)
5766   LEFT JOIN t3 USING(a)
5767   INNER JOIN t4 USING(a)
5768   INNER JOIN t5 USING(a)
5769   ORDER BY 1 NULLS FIRST;
5770 } {
5771   15 15 15 15 15 15
5773 do_execsql_test joinB-418 {
5774   SELECT a, c, d, e, f, g
5775   FROM t1
5776   FULL JOIN t2 USING(a,b)
5777   LEFT JOIN t3 USING(a,b)
5778   INNER JOIN t4 USING(a,b)
5779   INNER JOIN t5 USING(a,b)
5780   WHERE a<>13
5781   ORDER BY 1 NULLS FIRST;
5782 } {
5783   15 35 35 35 35 35
5785 do_execsql_test joinB-419 {
5786   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5787   FROM t1
5788   FULL JOIN t2 USING(a)
5789   LEFT JOIN t3 USING(a)
5790   INNER JOIN t4 USING(a)
5791   LEFT JOIN t5 USING(a)
5792   ORDER BY 1 NULLS FIRST;
5793 } {
5794   11 11  - 11 11  -
5795   13  - 13 13 13  -
5796   15 15 15 15 15 15
5798 do_execsql_test joinB-420 {
5799   SELECT a, c, d, e, f, g
5800   FROM t1
5801   FULL JOIN (t2 LEFT JOIN t3 USING(a)) USING(a)
5802   INNER JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
5803   WHERE a<=18
5804   ORDER BY 1 NULLS FIRST;
5805 } {
5806   11 31  -  - 31  -
5807   13  - 33 33 33  -
5808   15 35 35 35 35 35
5810 do_execsql_test joinB-421 {
5811   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5812   FROM t1
5813   FULL JOIN t2 USING(a)
5814   LEFT JOIN t3 USING(a)
5815   INNER JOIN t4 USING(a)
5816   RIGHT JOIN t5 USING(a)
5817   ORDER BY 1 NULLS FIRST;
5818 } {
5819   15 15 15 15 15 15
5820   17  -  -  -  - 17
5821   18  -  -  -  - 18
5822   19  -  -  -  - 19
5824 do_execsql_test joinB-422 {
5825   SELECT a, b, c, d, e, f, g
5826   FROM t1
5827   FULL JOIN t2 USING(a,b)
5828   LEFT JOIN t3 USING(a,b)
5829   INNER JOIN t4 USING(a,b)
5830   RIGHT JOIN t5 USING(a,b)
5831   WHERE d<>33 OR d IS NULL
5832   ORDER BY 1 NULLS FIRST;
5833 } {
5834   15 25 35 35 35 35 35
5835   17 27  -  -  -  - 37
5836   18 28  -  -  -  - 38
5837   19 29  -  -  -  - 39
5839 do_execsql_test joinB-423 {
5840   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5841   FROM t1
5842   FULL JOIN t2 USING(a)
5843   LEFT JOIN t3 USING(a)
5844   INNER JOIN t4 USING(a)
5845   FULL JOIN t5 USING(a)
5846   ORDER BY 1 NULLS FIRST;
5847 } {
5848   11 11  - 11 11  -
5849   13  - 13 13 13  -
5850   15 15 15 15 15 15
5851   17  -  -  -  - 17
5852   18  -  -  -  - 18
5853   19  -  -  -  - 19
5855 do_execsql_test joinB-424 {
5856   SELECT b, c, d, e, f, g
5857   FROM t1
5858   NATURAL FULL JOIN t2
5859   NATURAL LEFT JOIN t3
5860   NATURAL INNER JOIN t4
5861   NATURAL FULL JOIN t5
5862   WHERE b BETWEEN 12 AND 17
5863   ORDER BY 1 NULLS FIRST;
5864 } {
5866 do_execsql_test joinB-425 {
5867   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5868   FROM t1
5869   FULL JOIN t2 USING(a)
5870   LEFT JOIN t3 USING(a)
5871   LEFT JOIN t4 USING(a)
5872   INNER JOIN t5 USING(a)
5873   ORDER BY 1 NULLS FIRST;
5874 } {
5875   15 15 15 15 15 15
5876   17 17  - 17  - 17
5877   18  - 18 18  - 18
5879 do_execsql_test joinB-426 {
5880   SELECT a, c, d, e, f, g
5881   FROM t1
5882   FULL JOIN t2 USING(a,b)
5883   LEFT JOIN t3 USING(a,b)
5884   LEFT JOIN t4 USING(a,b)
5885   INNER JOIN t5 USING(a,b)
5886   WHERE a<>13
5887   ORDER BY 1 NULLS FIRST;
5888 } {
5889   15 35 35 35 35 35
5890   17 37  - 37  - 37
5891   18  - 38 38  - 38
5893 do_execsql_test joinB-427 {
5894   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5895   FROM t1
5896   FULL JOIN t2 USING(a)
5897   LEFT JOIN t3 USING(a)
5898   LEFT JOIN t4 USING(a)
5899   LEFT JOIN t5 USING(a)
5900   ORDER BY 1 NULLS FIRST;
5901 } {
5902    -  -  -  -  -  -
5903   11 11  - 11 11  -
5904   12 12 12 12  -  -
5905   13  - 13 13 13  -
5906   15 15 15 15 15 15
5907   17 17  - 17  - 17
5908   18  - 18 18  - 18
5910 do_execsql_test joinB-428 {
5911   SELECT a, c, d, e, f, g
5912   FROM t1
5913   FULL JOIN (t2 LEFT JOIN t3 USING(a)) USING(a)
5914   LEFT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
5915   WHERE a<=18
5916   ORDER BY 1 NULLS FIRST;
5917 } {
5918   11 31  -  - 31  -
5919   12 32 32 32  -  -
5920   13  - 33 33 33  -
5921   15 35 35 35 35 35
5922   17 37  -  -  -  -
5923   18  - 38 38  -  -
5925 do_execsql_test joinB-429 {
5926   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5927   FROM t1
5928   FULL JOIN t2 USING(a)
5929   LEFT JOIN t3 USING(a)
5930   LEFT JOIN t4 USING(a)
5931   RIGHT JOIN t5 USING(a)
5932   ORDER BY 1 NULLS FIRST;
5933 } {
5934   15 15 15 15 15 15
5935   17 17  - 17  - 17
5936   18  - 18 18  - 18
5937   19  -  -  -  - 19
5939 do_execsql_test joinB-430 {
5940   SELECT a, b, c, d, e, f, g
5941   FROM t1
5942   FULL JOIN t2 USING(a,b)
5943   LEFT JOIN t3 USING(a,b)
5944   LEFT JOIN t4 USING(a,b)
5945   RIGHT JOIN t5 USING(a,b)
5946   WHERE d<>33 OR d IS NULL
5947   ORDER BY 1 NULLS FIRST;
5948 } {
5949   15 25 35 35 35 35 35
5950   17 27 37  - 37  - 37
5951   18 28  - 38 38  - 38
5952   19 29  -  -  -  - 39
5954 do_execsql_test joinB-431 {
5955   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5956   FROM t1
5957   FULL JOIN t2 USING(a)
5958   LEFT JOIN t3 USING(a)
5959   LEFT JOIN t4 USING(a)
5960   FULL JOIN t5 USING(a)
5961   ORDER BY 1 NULLS FIRST;
5962 } {
5963    -  -  -  -  -  -
5964   11 11  - 11 11  -
5965   12 12 12 12  -  -
5966   13  - 13 13 13  -
5967   15 15 15 15 15 15
5968   17 17  - 17  - 17
5969   18  - 18 18  - 18
5970   19  -  -  -  - 19
5972 do_execsql_test joinB-432 {
5973   SELECT b, c, d, e, f, g
5974   FROM t1
5975   NATURAL FULL JOIN t2
5976   NATURAL LEFT JOIN t3
5977   NATURAL LEFT JOIN t4
5978   NATURAL FULL JOIN t5
5979   WHERE b BETWEEN 12 AND 17
5980   ORDER BY 1 NULLS FIRST;
5981 } {
5983 do_execsql_test joinB-433 {
5984   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
5985   FROM t1
5986   FULL JOIN t2 USING(a)
5987   LEFT JOIN t3 USING(a)
5988   RIGHT JOIN t4 USING(a)
5989   INNER JOIN t5 USING(a)
5990   ORDER BY 1 NULLS FIRST;
5991 } {
5992   15 15 15 15 15 15
5993   19  -  -  - 19 19
5995 do_execsql_test joinB-434 {
5996   SELECT a, c, d, e, f, g
5997   FROM t1
5998   FULL JOIN t2 USING(a,b)
5999   LEFT JOIN t3 USING(a,b)
6000   RIGHT JOIN t4 USING(a,b)
6001   INNER JOIN t5 USING(a,b)
6002   WHERE a<>13
6003   ORDER BY 1 NULLS FIRST;
6004 } {
6005   15 35 35 35 35 35
6006   19  -  -  - 39 39
6008 do_execsql_test joinB-435 {
6009   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6010   FROM t1
6011   FULL JOIN t2 USING(a)
6012   LEFT JOIN t3 USING(a)
6013   RIGHT JOIN t4 USING(a)
6014   LEFT JOIN t5 USING(a)
6015   ORDER BY 1 NULLS FIRST;
6016 } {
6017   11 11  - 11 11  -
6018   13  - 13 13 13  -
6019   15 15 15 15 15 15
6020   19  -  -  - 19 19
6022 do_execsql_test joinB-436 {
6023   SELECT a, c, d, e, f, g
6024   FROM t1
6025   FULL JOIN (t2 LEFT JOIN t3 USING(a)) USING(a)
6026   RIGHT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
6027   WHERE a<=18
6028   ORDER BY 1 NULLS FIRST;
6029 } {
6030   11 31  -  - 31  -
6031   13  - 33 33 33  -
6032   15 35 35 35 35 35
6034 do_execsql_test joinB-437 {
6035   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6036   FROM t1
6037   FULL JOIN t2 USING(a)
6038   LEFT JOIN t3 USING(a)
6039   RIGHT JOIN t4 USING(a)
6040   RIGHT JOIN t5 USING(a)
6041   ORDER BY 1 NULLS FIRST;
6042 } {
6043   15 15 15 15 15 15
6044   17  -  -  -  - 17
6045   18  -  -  -  - 18
6046   19  -  -  - 19 19
6048 do_execsql_test joinB-438 {
6049   SELECT a, b, c, d, e, f, g
6050   FROM t1
6051   FULL JOIN t2 USING(a,b)
6052   LEFT JOIN t3 USING(a,b)
6053   RIGHT JOIN t4 USING(a,b)
6054   RIGHT JOIN t5 USING(a,b)
6055   WHERE d<>33 OR d IS NULL
6056   ORDER BY 1 NULLS FIRST;
6057 } {
6058   15 25 35 35 35 35 35
6059   17 27  -  -  -  - 37
6060   18 28  -  -  -  - 38
6061   19 29  -  -  - 39 39
6063 do_execsql_test joinB-439 {
6064   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6065   FROM t1
6066   FULL JOIN t2 USING(a)
6067   LEFT JOIN t3 USING(a)
6068   RIGHT JOIN t4 USING(a)
6069   FULL JOIN t5 USING(a)
6070   ORDER BY 1 NULLS FIRST;
6071 } {
6072   11 11  - 11 11  -
6073   13  - 13 13 13  -
6074   15 15 15 15 15 15
6075   17  -  -  -  - 17
6076   18  -  -  -  - 18
6077   19  -  -  - 19 19
6079 do_execsql_test joinB-440 {
6080   SELECT b, c, d, e, f, g
6081   FROM t1
6082   NATURAL FULL JOIN t2
6083   NATURAL LEFT JOIN t3
6084   NATURAL RIGHT JOIN t4
6085   NATURAL FULL JOIN t5
6086   WHERE b BETWEEN 12 AND 17
6087   ORDER BY 1 NULLS FIRST;
6088 } {
6090 do_execsql_test joinB-441 {
6091   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6092   FROM t1
6093   FULL JOIN t2 USING(a)
6094   LEFT JOIN t3 USING(a)
6095   FULL JOIN t4 USING(a)
6096   INNER JOIN t5 USING(a)
6097   ORDER BY 1 NULLS FIRST;
6098 } {
6099   15 15 15 15 15 15
6100   17 17  - 17  - 17
6101   18  - 18 18  - 18
6102   19  -  -  - 19 19
6104 do_execsql_test joinB-442 {
6105   SELECT a, c, d, e, f, g
6106   FROM t1
6107   FULL JOIN t2 USING(a,b)
6108   LEFT JOIN t3 USING(a,b)
6109   FULL JOIN t4 USING(a,b)
6110   INNER JOIN t5 USING(a,b)
6111   WHERE a<>13
6112   ORDER BY 1 NULLS FIRST;
6113 } {
6114   15 35 35 35 35 35
6115   17 37  - 37  - 37
6116   18  - 38 38  - 38
6117   19  -  -  - 39 39
6119 do_execsql_test joinB-443 {
6120   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6121   FROM t1
6122   FULL JOIN t2 USING(a)
6123   LEFT JOIN t3 USING(a)
6124   FULL JOIN t4 USING(a)
6125   LEFT JOIN t5 USING(a)
6126   ORDER BY 1 NULLS FIRST;
6127 } {
6128    -  -  -  -  -  -
6129   11 11  - 11 11  -
6130   12 12 12 12  -  -
6131   13  - 13 13 13  -
6132   15 15 15 15 15 15
6133   17 17  - 17  - 17
6134   18  - 18 18  - 18
6135   19  -  -  - 19 19
6137 do_execsql_test joinB-444 {
6138   SELECT a, c, d, e, f, g
6139   FROM t1
6140   FULL JOIN (t2 LEFT JOIN t3 USING(a)) USING(a)
6141   FULL JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
6142   WHERE a<=18
6143   ORDER BY 1 NULLS FIRST;
6144 } {
6145   11 31  -  - 31  -
6146   12 32 32 32  -  -
6147   13  - 33 33 33  -
6148   15 35 35 35 35 35
6149   17 37  -  -  -  -
6150   18  - 38 38  -  -
6152 do_execsql_test joinB-445 {
6153   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6154   FROM t1
6155   FULL JOIN t2 USING(a)
6156   LEFT JOIN t3 USING(a)
6157   FULL JOIN t4 USING(a)
6158   RIGHT JOIN t5 USING(a)
6159   ORDER BY 1 NULLS FIRST;
6160 } {
6161   15 15 15 15 15 15
6162   17 17  - 17  - 17
6163   18  - 18 18  - 18
6164   19  -  -  - 19 19
6166 do_execsql_test joinB-446 {
6167   SELECT a, b, c, d, e, f, g
6168   FROM t1
6169   FULL JOIN t2 USING(a,b)
6170   LEFT JOIN t3 USING(a,b)
6171   FULL JOIN t4 USING(a,b)
6172   RIGHT JOIN t5 USING(a,b)
6173   WHERE d<>33 OR d IS NULL
6174   ORDER BY 1 NULLS FIRST;
6175 } {
6176   15 25 35 35 35 35 35
6177   17 27 37  - 37  - 37
6178   18 28  - 38 38  - 38
6179   19 29  -  -  - 39 39
6181 do_execsql_test joinB-447 {
6182   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6183   FROM t1
6184   FULL JOIN t2 USING(a)
6185   LEFT JOIN t3 USING(a)
6186   FULL JOIN t4 USING(a)
6187   FULL JOIN t5 USING(a)
6188   ORDER BY 1 NULLS FIRST;
6189 } {
6190    -  -  -  -  -  -
6191   11 11  - 11 11  -
6192   12 12 12 12  -  -
6193   13  - 13 13 13  -
6194   15 15 15 15 15 15
6195   17 17  - 17  - 17
6196   18  - 18 18  - 18
6197   19  -  -  - 19 19
6199 do_execsql_test joinB-448 {
6200   SELECT b, c, d, e, f, g
6201   FROM t1
6202   NATURAL FULL JOIN t2
6203   NATURAL LEFT JOIN t3
6204   NATURAL FULL JOIN t4
6205   NATURAL FULL JOIN t5
6206   WHERE b BETWEEN 12 AND 17
6207   ORDER BY 1 NULLS FIRST;
6208 } {
6210 do_execsql_test joinB-449 {
6211   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6212   FROM t1
6213   FULL JOIN t2 USING(a)
6214   RIGHT JOIN t3 USING(a)
6215   INNER JOIN t4 USING(a)
6216   INNER JOIN t5 USING(a)
6217   ORDER BY 1 NULLS FIRST;
6218 } {
6219   15 15 15 15 15 15
6220   19  -  - 19 19 19
6222 do_execsql_test joinB-450 {
6223   SELECT a, c, d, e, f, g
6224   FROM t1
6225   FULL JOIN t2 USING(a,b)
6226   RIGHT JOIN t3 USING(a,b)
6227   INNER JOIN t4 USING(a,b)
6228   INNER JOIN t5 USING(a,b)
6229   WHERE a<>13
6230   ORDER BY 1 NULLS FIRST;
6231 } {
6232   15 35 35 35 35 35
6233   19  -  - 39 39 39
6235 do_execsql_test joinB-451 {
6236   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6237   FROM t1
6238   FULL JOIN t2 USING(a)
6239   RIGHT JOIN t3 USING(a)
6240   INNER JOIN t4 USING(a)
6241   LEFT JOIN t5 USING(a)
6242   ORDER BY 1 NULLS FIRST;
6243 } {
6244   11 11  - 11 11  -
6245   13  - 13 13 13  -
6246   15 15 15 15 15 15
6247   19  -  - 19 19 19
6249 do_execsql_test joinB-452 {
6250   SELECT a, c, d, e, f, g
6251   FROM t1
6252   FULL JOIN (t2 RIGHT JOIN t3 USING(a)) USING(a)
6253   INNER JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
6254   WHERE a<=18
6255   ORDER BY 1 NULLS FIRST;
6256 } {
6257   11 31  - 31 31  -
6258   13  - 33 33 33  -
6259   15 35 35 35 35 35
6261 do_execsql_test joinB-453 {
6262   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6263   FROM t1
6264   FULL JOIN t2 USING(a)
6265   RIGHT JOIN t3 USING(a)
6266   INNER JOIN t4 USING(a)
6267   RIGHT JOIN t5 USING(a)
6268   ORDER BY 1 NULLS FIRST;
6269 } {
6270   15 15 15 15 15 15
6271   17  -  -  -  - 17
6272   18  -  -  -  - 18
6273   19  -  - 19 19 19
6275 do_execsql_test joinB-454 {
6276   SELECT a, b, c, d, e, f, g
6277   FROM t1
6278   FULL JOIN t2 USING(a,b)
6279   RIGHT JOIN t3 USING(a,b)
6280   INNER JOIN t4 USING(a,b)
6281   RIGHT JOIN t5 USING(a,b)
6282   WHERE d<>33 OR d IS NULL
6283   ORDER BY 1 NULLS FIRST;
6284 } {
6285   15 25 35 35 35 35 35
6286   17 27  -  -  -  - 37
6287   18 28  -  -  -  - 38
6288   19 29  -  - 39 39 39
6290 do_execsql_test joinB-455 {
6291   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6292   FROM t1
6293   FULL JOIN t2 USING(a)
6294   RIGHT JOIN t3 USING(a)
6295   INNER JOIN t4 USING(a)
6296   FULL JOIN t5 USING(a)
6297   ORDER BY 1 NULLS FIRST;
6298 } {
6299   11 11  - 11 11  -
6300   13  - 13 13 13  -
6301   15 15 15 15 15 15
6302   17  -  -  -  - 17
6303   18  -  -  -  - 18
6304   19  -  - 19 19 19
6306 do_execsql_test joinB-456 {
6307   SELECT b, c, d, e, f, g
6308   FROM t1
6309   NATURAL FULL JOIN t2
6310   NATURAL RIGHT JOIN t3
6311   NATURAL INNER JOIN t4
6312   NATURAL FULL JOIN t5
6313   WHERE b BETWEEN 12 AND 17
6314   ORDER BY 1 NULLS FIRST;
6315 } {
6317 do_execsql_test joinB-457 {
6318   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6319   FROM t1
6320   FULL JOIN t2 USING(a)
6321   RIGHT JOIN t3 USING(a)
6322   LEFT JOIN t4 USING(a)
6323   INNER JOIN t5 USING(a)
6324   ORDER BY 1 NULLS FIRST;
6325 } {
6326   15 15 15 15 15 15
6327   17 17  - 17  - 17
6328   18  - 18 18  - 18
6329   19  -  - 19 19 19
6331 do_execsql_test joinB-458 {
6332   SELECT a, c, d, e, f, g
6333   FROM t1
6334   FULL JOIN t2 USING(a,b)
6335   RIGHT JOIN t3 USING(a,b)
6336   LEFT JOIN t4 USING(a,b)
6337   INNER JOIN t5 USING(a,b)
6338   WHERE a<>13
6339   ORDER BY 1 NULLS FIRST;
6340 } {
6341   15 35 35 35 35 35
6342   17 37  - 37  - 37
6343   18  - 38 38  - 38
6344   19  -  - 39 39 39
6346 do_execsql_test joinB-459 {
6347   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6348   FROM t1
6349   FULL JOIN t2 USING(a)
6350   RIGHT JOIN t3 USING(a)
6351   LEFT JOIN t4 USING(a)
6352   LEFT JOIN t5 USING(a)
6353   ORDER BY 1 NULLS FIRST;
6354 } {
6355    -  -  -  -  -  -
6356   11 11  - 11 11  -
6357   12 12 12 12  -  -
6358   13  - 13 13 13  -
6359   15 15 15 15 15 15
6360   17 17  - 17  - 17
6361   18  - 18 18  - 18
6362   19  -  - 19 19 19
6364 do_execsql_test joinB-460 {
6365   SELECT a, c, d, e, f, g
6366   FROM t1
6367   FULL JOIN (t2 RIGHT JOIN t3 USING(a)) USING(a)
6368   LEFT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
6369   WHERE a<=18
6370   ORDER BY 1 NULLS FIRST;
6371 } {
6372   11 31  - 31 31  -
6373   12 32 32 32  -  -
6374   13  - 33 33 33  -
6375   15 35 35 35 35 35
6376   17 37  - 37  -  -
6377   18  - 38 38  -  -
6379 do_execsql_test joinB-461 {
6380   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6381   FROM t1
6382   FULL JOIN t2 USING(a)
6383   RIGHT JOIN t3 USING(a)
6384   LEFT JOIN t4 USING(a)
6385   RIGHT JOIN t5 USING(a)
6386   ORDER BY 1 NULLS FIRST;
6387 } {
6388   15 15 15 15 15 15
6389   17 17  - 17  - 17
6390   18  - 18 18  - 18
6391   19  -  - 19 19 19
6393 do_execsql_test joinB-462 {
6394   SELECT a, b, c, d, e, f, g
6395   FROM t1
6396   FULL JOIN t2 USING(a,b)
6397   RIGHT JOIN t3 USING(a,b)
6398   LEFT JOIN t4 USING(a,b)
6399   RIGHT JOIN t5 USING(a,b)
6400   WHERE d<>33 OR d IS NULL
6401   ORDER BY 1 NULLS FIRST;
6402 } {
6403   15 25 35 35 35 35 35
6404   17 27 37  - 37  - 37
6405   18 28  - 38 38  - 38
6406   19 29  -  - 39 39 39
6408 do_execsql_test joinB-463 {
6409   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6410   FROM t1
6411   FULL JOIN t2 USING(a)
6412   RIGHT JOIN t3 USING(a)
6413   LEFT JOIN t4 USING(a)
6414   FULL JOIN t5 USING(a)
6415   ORDER BY 1 NULLS FIRST;
6416 } {
6417    -  -  -  -  -  -
6418   11 11  - 11 11  -
6419   12 12 12 12  -  -
6420   13  - 13 13 13  -
6421   15 15 15 15 15 15
6422   17 17  - 17  - 17
6423   18  - 18 18  - 18
6424   19  -  - 19 19 19
6426 do_execsql_test joinB-464 {
6427   SELECT b, c, d, e, f, g
6428   FROM t1
6429   NATURAL FULL JOIN t2
6430   NATURAL RIGHT JOIN t3
6431   NATURAL LEFT JOIN t4
6432   NATURAL FULL JOIN t5
6433   WHERE b BETWEEN 12 AND 17
6434   ORDER BY 1 NULLS FIRST;
6435 } {
6437 do_execsql_test joinB-465 {
6438   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6439   FROM t1
6440   FULL JOIN t2 USING(a)
6441   RIGHT JOIN t3 USING(a)
6442   RIGHT JOIN t4 USING(a)
6443   INNER JOIN t5 USING(a)
6444   ORDER BY 1 NULLS FIRST;
6445 } {
6446   15 15 15 15 15 15
6447   19  -  - 19 19 19
6449 do_execsql_test joinB-466 {
6450   SELECT a, c, d, e, f, g
6451   FROM t1
6452   FULL JOIN t2 USING(a,b)
6453   RIGHT JOIN t3 USING(a,b)
6454   RIGHT JOIN t4 USING(a,b)
6455   INNER JOIN t5 USING(a,b)
6456   WHERE a<>13
6457   ORDER BY 1 NULLS FIRST;
6458 } {
6459   15 35 35 35 35 35
6460   19  -  - 39 39 39
6462 do_execsql_test joinB-467 {
6463   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6464   FROM t1
6465   FULL JOIN t2 USING(a)
6466   RIGHT JOIN t3 USING(a)
6467   RIGHT JOIN t4 USING(a)
6468   LEFT JOIN t5 USING(a)
6469   ORDER BY 1 NULLS FIRST;
6470 } {
6471   11 11  - 11 11  -
6472   13  - 13 13 13  -
6473   15 15 15 15 15 15
6474   19  -  - 19 19 19
6476 do_execsql_test joinB-468 {
6477   SELECT a, c, d, e, f, g
6478   FROM t1
6479   FULL JOIN (t2 RIGHT JOIN t3 USING(a)) USING(a)
6480   RIGHT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
6481   WHERE a<=18
6482   ORDER BY 1 NULLS FIRST;
6483 } {
6484   11 31  - 31 31  -
6485   13  - 33 33 33  -
6486   15 35 35 35 35 35
6488 do_execsql_test joinB-469 {
6489   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6490   FROM t1
6491   FULL JOIN t2 USING(a)
6492   RIGHT JOIN t3 USING(a)
6493   RIGHT JOIN t4 USING(a)
6494   RIGHT JOIN t5 USING(a)
6495   ORDER BY 1 NULLS FIRST;
6496 } {
6497   15 15 15 15 15 15
6498   17  -  -  -  - 17
6499   18  -  -  -  - 18
6500   19  -  - 19 19 19
6502 do_execsql_test joinB-470 {
6503   SELECT a, b, c, d, e, f, g
6504   FROM t1
6505   FULL JOIN t2 USING(a,b)
6506   RIGHT JOIN t3 USING(a,b)
6507   RIGHT JOIN t4 USING(a,b)
6508   RIGHT JOIN t5 USING(a,b)
6509   WHERE d<>33 OR d IS NULL
6510   ORDER BY 1 NULLS FIRST;
6511 } {
6512   15 25 35 35 35 35 35
6513   17 27  -  -  -  - 37
6514   18 28  -  -  -  - 38
6515   19 29  -  - 39 39 39
6517 do_execsql_test joinB-471 {
6518   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6519   FROM t1
6520   FULL JOIN t2 USING(a)
6521   RIGHT JOIN t3 USING(a)
6522   RIGHT JOIN t4 USING(a)
6523   FULL JOIN t5 USING(a)
6524   ORDER BY 1 NULLS FIRST;
6525 } {
6526   11 11  - 11 11  -
6527   13  - 13 13 13  -
6528   15 15 15 15 15 15
6529   17  -  -  -  - 17
6530   18  -  -  -  - 18
6531   19  -  - 19 19 19
6533 do_execsql_test joinB-472 {
6534   SELECT b, c, d, e, f, g
6535   FROM t1
6536   NATURAL FULL JOIN t2
6537   NATURAL RIGHT JOIN t3
6538   NATURAL RIGHT JOIN t4
6539   NATURAL FULL JOIN t5
6540   WHERE b BETWEEN 12 AND 17
6541   ORDER BY 1 NULLS FIRST;
6542 } {
6544 do_execsql_test joinB-473 {
6545   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6546   FROM t1
6547   FULL JOIN t2 USING(a)
6548   RIGHT JOIN t3 USING(a)
6549   FULL JOIN t4 USING(a)
6550   INNER JOIN t5 USING(a)
6551   ORDER BY 1 NULLS FIRST;
6552 } {
6553   15 15 15 15 15 15
6554   17 17  - 17  - 17
6555   18  - 18 18  - 18
6556   19  -  - 19 19 19
6558 do_execsql_test joinB-474 {
6559   SELECT a, c, d, e, f, g
6560   FROM t1
6561   FULL JOIN t2 USING(a,b)
6562   RIGHT JOIN t3 USING(a,b)
6563   FULL JOIN t4 USING(a,b)
6564   INNER JOIN t5 USING(a,b)
6565   WHERE a<>13
6566   ORDER BY 1 NULLS FIRST;
6567 } {
6568   15 35 35 35 35 35
6569   17 37  - 37  - 37
6570   18  - 38 38  - 38
6571   19  -  - 39 39 39
6573 do_execsql_test joinB-475 {
6574   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6575   FROM t1
6576   FULL JOIN t2 USING(a)
6577   RIGHT JOIN t3 USING(a)
6578   FULL JOIN t4 USING(a)
6579   LEFT JOIN t5 USING(a)
6580   ORDER BY 1 NULLS FIRST;
6581 } {
6582    -  -  -  -  -  -
6583   11 11  - 11 11  -
6584   12 12 12 12  -  -
6585   13  - 13 13 13  -
6586   15 15 15 15 15 15
6587   17 17  - 17  - 17
6588   18  - 18 18  - 18
6589   19  -  - 19 19 19
6591 do_execsql_test joinB-476 {
6592   SELECT a, c, d, e, f, g
6593   FROM t1
6594   FULL JOIN (t2 RIGHT JOIN t3 USING(a)) USING(a)
6595   FULL JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
6596   WHERE a<=18
6597   ORDER BY 1 NULLS FIRST;
6598 } {
6599   11 31  - 31 31  -
6600   12 32 32 32  -  -
6601   13  - 33 33 33  -
6602   15 35 35 35 35 35
6603   17 37  - 37  -  -
6604   18  - 38 38  -  -
6606 do_execsql_test joinB-477 {
6607   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6608   FROM t1
6609   FULL JOIN t2 USING(a)
6610   RIGHT JOIN t3 USING(a)
6611   FULL JOIN t4 USING(a)
6612   RIGHT JOIN t5 USING(a)
6613   ORDER BY 1 NULLS FIRST;
6614 } {
6615   15 15 15 15 15 15
6616   17 17  - 17  - 17
6617   18  - 18 18  - 18
6618   19  -  - 19 19 19
6620 do_execsql_test joinB-478 {
6621   SELECT a, b, c, d, e, f, g
6622   FROM t1
6623   FULL JOIN t2 USING(a,b)
6624   RIGHT JOIN t3 USING(a,b)
6625   FULL JOIN t4 USING(a,b)
6626   RIGHT JOIN t5 USING(a,b)
6627   WHERE d<>33 OR d IS NULL
6628   ORDER BY 1 NULLS FIRST;
6629 } {
6630   15 25 35 35 35 35 35
6631   17 27 37  - 37  - 37
6632   18 28  - 38 38  - 38
6633   19 29  -  - 39 39 39
6635 do_execsql_test joinB-479 {
6636   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6637   FROM t1
6638   FULL JOIN t2 USING(a)
6639   RIGHT JOIN t3 USING(a)
6640   FULL JOIN t4 USING(a)
6641   FULL JOIN t5 USING(a)
6642   ORDER BY 1 NULLS FIRST;
6643 } {
6644    -  -  -  -  -  -
6645   11 11  - 11 11  -
6646   12 12 12 12  -  -
6647   13  - 13 13 13  -
6648   15 15 15 15 15 15
6649   17 17  - 17  - 17
6650   18  - 18 18  - 18
6651   19  -  - 19 19 19
6653 do_execsql_test joinB-480 {
6654   SELECT b, c, d, e, f, g
6655   FROM t1
6656   NATURAL FULL JOIN t2
6657   NATURAL RIGHT JOIN t3
6658   NATURAL FULL JOIN t4
6659   NATURAL FULL JOIN t5
6660   WHERE b BETWEEN 12 AND 17
6661   ORDER BY 1 NULLS FIRST;
6662 } {
6664 do_execsql_test joinB-481 {
6665   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6666   FROM t1
6667   FULL JOIN t2 USING(a)
6668   FULL JOIN t3 USING(a)
6669   INNER JOIN t4 USING(a)
6670   INNER JOIN t5 USING(a)
6671   ORDER BY 1 NULLS FIRST;
6672 } {
6673   15 15 15 15 15 15
6674   19  -  - 19 19 19
6676 do_execsql_test joinB-482 {
6677   SELECT a, c, d, e, f, g
6678   FROM t1
6679   FULL JOIN t2 USING(a,b)
6680   FULL JOIN t3 USING(a,b)
6681   INNER JOIN t4 USING(a,b)
6682   INNER JOIN t5 USING(a,b)
6683   WHERE a<>13
6684   ORDER BY 1 NULLS FIRST;
6685 } {
6686   15 35 35 35 35 35
6687   19  -  - 39 39 39
6689 do_execsql_test joinB-483 {
6690   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6691   FROM t1
6692   FULL JOIN t2 USING(a)
6693   FULL JOIN t3 USING(a)
6694   INNER JOIN t4 USING(a)
6695   LEFT JOIN t5 USING(a)
6696   ORDER BY 1 NULLS FIRST;
6697 } {
6698   11 11  - 11 11  -
6699   13  - 13 13 13  -
6700   15 15 15 15 15 15
6701   19  -  - 19 19 19
6703 do_execsql_test joinB-484 {
6704   SELECT a, c, d, e, f, g
6705   FROM t1
6706   FULL JOIN (t2 FULL JOIN t3 USING(a)) USING(a)
6707   INNER JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
6708   WHERE a<=18
6709   ORDER BY 1 NULLS FIRST;
6710 } {
6711   11 31  - 31 31  -
6712   13  - 33 33 33  -
6713   15 35 35 35 35 35
6715 do_execsql_test joinB-485 {
6716   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6717   FROM t1
6718   FULL JOIN t2 USING(a)
6719   FULL JOIN t3 USING(a)
6720   INNER JOIN t4 USING(a)
6721   RIGHT JOIN t5 USING(a)
6722   ORDER BY 1 NULLS FIRST;
6723 } {
6724   15 15 15 15 15 15
6725   17  -  -  -  - 17
6726   18  -  -  -  - 18
6727   19  -  - 19 19 19
6729 do_execsql_test joinB-486 {
6730   SELECT a, b, c, d, e, f, g
6731   FROM t1
6732   FULL JOIN t2 USING(a,b)
6733   FULL JOIN t3 USING(a,b)
6734   INNER JOIN t4 USING(a,b)
6735   RIGHT JOIN t5 USING(a,b)
6736   WHERE d<>33 OR d IS NULL
6737   ORDER BY 1 NULLS FIRST;
6738 } {
6739   15 25 35 35 35 35 35
6740   17 27  -  -  -  - 37
6741   18 28  -  -  -  - 38
6742   19 29  -  - 39 39 39
6744 do_execsql_test joinB-487 {
6745   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6746   FROM t1
6747   FULL JOIN t2 USING(a)
6748   FULL JOIN t3 USING(a)
6749   INNER JOIN t4 USING(a)
6750   FULL JOIN t5 USING(a)
6751   ORDER BY 1 NULLS FIRST;
6752 } {
6753   11 11  - 11 11  -
6754   13  - 13 13 13  -
6755   15 15 15 15 15 15
6756   17  -  -  -  - 17
6757   18  -  -  -  - 18
6758   19  -  - 19 19 19
6760 do_execsql_test joinB-488 {
6761   SELECT b, c, d, e, f, g
6762   FROM t1
6763   NATURAL FULL JOIN t2
6764   NATURAL FULL JOIN t3
6765   NATURAL INNER JOIN t4
6766   NATURAL FULL JOIN t5
6767   WHERE b BETWEEN 12 AND 17
6768   ORDER BY 1 NULLS FIRST;
6769 } {
6771 do_execsql_test joinB-489 {
6772   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6773   FROM t1
6774   FULL JOIN t2 USING(a)
6775   FULL JOIN t3 USING(a)
6776   LEFT JOIN t4 USING(a)
6777   INNER JOIN t5 USING(a)
6778   ORDER BY 1 NULLS FIRST;
6779 } {
6780   15 15 15 15 15 15
6781   17 17  - 17  - 17
6782   18  - 18 18  - 18
6783   19  -  - 19 19 19
6785 do_execsql_test joinB-490 {
6786   SELECT a, c, d, e, f, g
6787   FROM t1
6788   FULL JOIN t2 USING(a,b)
6789   FULL JOIN t3 USING(a,b)
6790   LEFT JOIN t4 USING(a,b)
6791   INNER JOIN t5 USING(a,b)
6792   WHERE a<>13
6793   ORDER BY 1 NULLS FIRST;
6794 } {
6795   15 35 35 35 35 35
6796   17 37  - 37  - 37
6797   18  - 38 38  - 38
6798   19  -  - 39 39 39
6800 do_execsql_test joinB-491 {
6801   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6802   FROM t1
6803   FULL JOIN t2 USING(a)
6804   FULL JOIN t3 USING(a)
6805   LEFT JOIN t4 USING(a)
6806   LEFT JOIN t5 USING(a)
6807   ORDER BY 1 NULLS FIRST;
6808 } {
6809    -  -  -  -  -  -
6810    -  -  -  -  -  -
6811   11 11  - 11 11  -
6812   12 12 12 12  -  -
6813   13  - 13 13 13  -
6814   15 15 15 15 15 15
6815   17 17  - 17  - 17
6816   18  - 18 18  - 18
6817   19  -  - 19 19 19
6819 do_execsql_test joinB-492 {
6820   SELECT a, c, d, e, f, g
6821   FROM t1
6822   FULL JOIN (t2 FULL JOIN t3 USING(a)) USING(a)
6823   LEFT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
6824   WHERE a<=18
6825   ORDER BY 1 NULLS FIRST;
6826 } {
6827   11 31  - 31 31  -
6828   12 32 32 32  -  -
6829   13  - 33 33 33  -
6830   15 35 35 35 35 35
6831   17 37  - 37  -  -
6832   18  - 38 38  -  -
6834 do_execsql_test joinB-493 {
6835   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6836   FROM t1
6837   FULL JOIN t2 USING(a)
6838   FULL JOIN t3 USING(a)
6839   LEFT JOIN t4 USING(a)
6840   RIGHT JOIN t5 USING(a)
6841   ORDER BY 1 NULLS FIRST;
6842 } {
6843   15 15 15 15 15 15
6844   17 17  - 17  - 17
6845   18  - 18 18  - 18
6846   19  -  - 19 19 19
6848 do_execsql_test joinB-494 {
6849   SELECT a, b, c, d, e, f, g
6850   FROM t1
6851   FULL JOIN t2 USING(a,b)
6852   FULL JOIN t3 USING(a,b)
6853   LEFT JOIN t4 USING(a,b)
6854   RIGHT JOIN t5 USING(a,b)
6855   WHERE d<>33 OR d IS NULL
6856   ORDER BY 1 NULLS FIRST;
6857 } {
6858   15 25 35 35 35 35 35
6859   17 27 37  - 37  - 37
6860   18 28  - 38 38  - 38
6861   19 29  -  - 39 39 39
6863 do_execsql_test joinB-495 {
6864   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6865   FROM t1
6866   FULL JOIN t2 USING(a)
6867   FULL JOIN t3 USING(a)
6868   LEFT JOIN t4 USING(a)
6869   FULL JOIN t5 USING(a)
6870   ORDER BY 1 NULLS FIRST;
6871 } {
6872    -  -  -  -  -  -
6873    -  -  -  -  -  -
6874   11 11  - 11 11  -
6875   12 12 12 12  -  -
6876   13  - 13 13 13  -
6877   15 15 15 15 15 15
6878   17 17  - 17  - 17
6879   18  - 18 18  - 18
6880   19  -  - 19 19 19
6882 do_execsql_test joinB-496 {
6883   SELECT b, c, d, e, f, g
6884   FROM t1
6885   NATURAL FULL JOIN t2
6886   NATURAL FULL JOIN t3
6887   NATURAL LEFT JOIN t4
6888   NATURAL FULL JOIN t5
6889   WHERE b BETWEEN 12 AND 17
6890   ORDER BY 1 NULLS FIRST;
6891 } {
6893 do_execsql_test joinB-497 {
6894   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6895   FROM t1
6896   FULL JOIN t2 USING(a)
6897   FULL JOIN t3 USING(a)
6898   RIGHT JOIN t4 USING(a)
6899   INNER JOIN t5 USING(a)
6900   ORDER BY 1 NULLS FIRST;
6901 } {
6902   15 15 15 15 15 15
6903   19  -  - 19 19 19
6905 do_execsql_test joinB-498 {
6906   SELECT a, c, d, e, f, g
6907   FROM t1
6908   FULL JOIN t2 USING(a,b)
6909   FULL JOIN t3 USING(a,b)
6910   RIGHT JOIN t4 USING(a,b)
6911   INNER JOIN t5 USING(a,b)
6912   WHERE a<>13
6913   ORDER BY 1 NULLS FIRST;
6914 } {
6915   15 35 35 35 35 35
6916   19  -  - 39 39 39
6918 do_execsql_test joinB-499 {
6919   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6920   FROM t1
6921   FULL JOIN t2 USING(a)
6922   FULL JOIN t3 USING(a)
6923   RIGHT JOIN t4 USING(a)
6924   LEFT JOIN t5 USING(a)
6925   ORDER BY 1 NULLS FIRST;
6926 } {
6927   11 11  - 11 11  -
6928   13  - 13 13 13  -
6929   15 15 15 15 15 15
6930   19  -  - 19 19 19
6932 do_execsql_test joinB-500 {
6933   SELECT a, c, d, e, f, g
6934   FROM t1
6935   FULL JOIN (t2 FULL JOIN t3 USING(a)) USING(a)
6936   RIGHT JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
6937   WHERE a<=18
6938   ORDER BY 1 NULLS FIRST;
6939 } {
6940   11 31  - 31 31  -
6941   13  - 33 33 33  -
6942   15 35 35 35 35 35
6944 do_execsql_test joinB-501 {
6945   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6946   FROM t1
6947   FULL JOIN t2 USING(a)
6948   FULL JOIN t3 USING(a)
6949   RIGHT JOIN t4 USING(a)
6950   RIGHT JOIN t5 USING(a)
6951   ORDER BY 1 NULLS FIRST;
6952 } {
6953   15 15 15 15 15 15
6954   17  -  -  -  - 17
6955   18  -  -  -  - 18
6956   19  -  - 19 19 19
6958 do_execsql_test joinB-502 {
6959   SELECT a, b, c, d, e, f, g
6960   FROM t1
6961   FULL JOIN t2 USING(a,b)
6962   FULL JOIN t3 USING(a,b)
6963   RIGHT JOIN t4 USING(a,b)
6964   RIGHT JOIN t5 USING(a,b)
6965   WHERE d<>33 OR d IS NULL
6966   ORDER BY 1 NULLS FIRST;
6967 } {
6968   15 25 35 35 35 35 35
6969   17 27  -  -  -  - 37
6970   18 28  -  -  -  - 38
6971   19 29  -  - 39 39 39
6973 do_execsql_test joinB-503 {
6974   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
6975   FROM t1
6976   FULL JOIN t2 USING(a)
6977   FULL JOIN t3 USING(a)
6978   RIGHT JOIN t4 USING(a)
6979   FULL JOIN t5 USING(a)
6980   ORDER BY 1 NULLS FIRST;
6981 } {
6982   11 11  - 11 11  -
6983   13  - 13 13 13  -
6984   15 15 15 15 15 15
6985   17  -  -  -  - 17
6986   18  -  -  -  - 18
6987   19  -  - 19 19 19
6989 do_execsql_test joinB-504 {
6990   SELECT b, c, d, e, f, g
6991   FROM t1
6992   NATURAL FULL JOIN t2
6993   NATURAL FULL JOIN t3
6994   NATURAL RIGHT JOIN t4
6995   NATURAL FULL JOIN t5
6996   WHERE b BETWEEN 12 AND 17
6997   ORDER BY 1 NULLS FIRST;
6998 } {
7000 do_execsql_test joinB-505 {
7001   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
7002   FROM t1
7003   FULL JOIN t2 USING(a)
7004   FULL JOIN t3 USING(a)
7005   FULL JOIN t4 USING(a)
7006   INNER JOIN t5 USING(a)
7007   ORDER BY 1 NULLS FIRST;
7008 } {
7009   15 15 15 15 15 15
7010   17 17  - 17  - 17
7011   18  - 18 18  - 18
7012   19  -  - 19 19 19
7014 do_execsql_test joinB-506 {
7015   SELECT a, c, d, e, f, g
7016   FROM t1
7017   FULL JOIN t2 USING(a,b)
7018   FULL JOIN t3 USING(a,b)
7019   FULL JOIN t4 USING(a,b)
7020   INNER JOIN t5 USING(a,b)
7021   WHERE a<>13
7022   ORDER BY 1 NULLS FIRST;
7023 } {
7024   15 35 35 35 35 35
7025   17 37  - 37  - 37
7026   18  - 38 38  - 38
7027   19  -  - 39 39 39
7029 do_execsql_test joinB-507 {
7030   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
7031   FROM t1
7032   FULL JOIN t2 USING(a)
7033   FULL JOIN t3 USING(a)
7034   FULL JOIN t4 USING(a)
7035   LEFT JOIN t5 USING(a)
7036   ORDER BY 1 NULLS FIRST;
7037 } {
7038    -  -  -  -  -  -
7039    -  -  -  -  -  -
7040   11 11  - 11 11  -
7041   12 12 12 12  -  -
7042   13  - 13 13 13  -
7043   15 15 15 15 15 15
7044   17 17  - 17  - 17
7045   18  - 18 18  - 18
7046   19  -  - 19 19 19
7048 do_execsql_test joinB-508 {
7049   SELECT a, c, d, e, f, g
7050   FROM t1
7051   FULL JOIN (t2 FULL JOIN t3 USING(a)) USING(a)
7052   FULL JOIN (t4 LEFT JOIN t5 USING(a)) USING(a)
7053   WHERE a<=18
7054   ORDER BY 1 NULLS FIRST;
7055 } {
7056   11 31  - 31 31  -
7057   12 32 32 32  -  -
7058   13  - 33 33 33  -
7059   15 35 35 35 35 35
7060   17 37  - 37  -  -
7061   18  - 38 38  -  -
7063 do_execsql_test joinB-509 {
7064   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
7065   FROM t1
7066   FULL JOIN t2 USING(a)
7067   FULL JOIN t3 USING(a)
7068   FULL JOIN t4 USING(a)
7069   RIGHT JOIN t5 USING(a)
7070   ORDER BY 1 NULLS FIRST;
7071 } {
7072   15 15 15 15 15 15
7073   17 17  - 17  - 17
7074   18  - 18 18  - 18
7075   19  -  - 19 19 19
7077 do_execsql_test joinB-510 {
7078   SELECT a, b, c, d, e, f, g
7079   FROM t1
7080   FULL JOIN t2 USING(a,b)
7081   FULL JOIN t3 USING(a,b)
7082   FULL JOIN t4 USING(a,b)
7083   RIGHT JOIN t5 USING(a,b)
7084   WHERE d<>33 OR d IS NULL
7085   ORDER BY 1 NULLS FIRST;
7086 } {
7087   15 25 35 35 35 35 35
7088   17 27 37  - 37  - 37
7089   18 28  - 38 38  - 38
7090   19 29  -  - 39 39 39
7092 do_execsql_test joinB-511 {
7093   SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a
7094   FROM t1
7095   FULL JOIN t2 USING(a)
7096   FULL JOIN t3 USING(a)
7097   FULL JOIN t4 USING(a)
7098   FULL JOIN t5 USING(a)
7099   ORDER BY 1 NULLS FIRST;
7100 } {
7101    -  -  -  -  -  -
7102    -  -  -  -  -  -
7103   11 11  - 11 11  -
7104   12 12 12 12  -  -
7105   13  - 13 13 13  -
7106   15 15 15 15 15 15
7107   17 17  - 17  - 17
7108   18  - 18 18  - 18
7109   19  -  - 19 19 19
7111 do_execsql_test joinB-512 {
7112   SELECT b, c, d, e, f, g
7113   FROM t1
7114   NATURAL FULL JOIN t2
7115   NATURAL FULL JOIN t3
7116   NATURAL FULL JOIN t4
7117   NATURAL FULL JOIN t5
7118   WHERE b BETWEEN 12 AND 17
7119   ORDER BY 1 NULLS FIRST;
7120 } {
7122 finish_test
7124 ##############################################################################
7125 # Here is the original TCL script that generated the psql input file:
7128 # puts "
7129 # \\pset border off
7130 # \\pset tuples_only on
7131 # \\pset null -
7133 # DROP TABLE IF EXISTS t1;
7134 # DROP TABLE IF EXISTS t2;
7135 # DROP TABLE IF EXISTS t3;
7136 # DROP TABLE IF EXISTS t4;
7137 # DROP TABLE IF EXISTS t5;
7138 # CREATE TABLE t1(a INT, b INT, c INT);
7139 # CREATE TABLE t2(a INT, b INT, d INT);
7140 # CREATE TABLE t3(a INT, b INT, e INT);
7141 # CREATE TABLE t4(a INT, b INT, f INT);
7142 # CREATE TABLE t5(a INT, b INT, g INT);
7143 # INSERT INTO t1 VALUES(11,21,31),(12,22,32),(15,25,35),(17,27,37);
7144 # INSERT INTO t2 VALUES(12,22,32),(13,23,33),(15,25,35),(18,28,38),(NULL,NULL,36);
7145 # INSERT INTO t4 VALUES(11,21,31),(13,23,33),(15,25,35),(19,29,39);
7146 # INSERT INTO t3 SELECT * FROM t1 UNION SELECT * FROM t2 UNION SELECT * FROM t4;
7147 # INSERT INTO t5 SELECT * FROM t3 WHERE a>=15;
7148 # "
7150 # proc echo {prefix txt} {
7151 #   regsub -all {\n} $txt \n$prefix txt
7152 #   puts "$prefix$txt"
7153 # }
7155 # set n 0
7156 # set k 0
7157 # foreach j1 {INNER LEFT RIGHT FULL} {
7158 #   foreach j2 {INNER LEFT RIGHT FULL} {
7159 #     foreach j3 {INNER LEFT RIGHT FULL} {
7160 #       foreach j4 {INNER LEFT RIGHT FULL} {
7162 # incr n
7163 # incr k
7164 # set q1 ""
7165 # append q1 "SELECT a, t1.a, t2.a, t3.a, t4.a, t5.a\n"
7166 # append q1 "  FROM t1\n"
7167 # append q1 "       $j1 JOIN t2 USING(a)\n"
7168 # append q1 "       $j2 JOIN t3 USING(a)\n"
7169 # append q1 "       $j3 JOIN t4 USING(a)\n"
7170 # append q1 "       $j4 JOIN t5 USING(a)\n"
7171 # append q1 " ORDER BY 1 NULLS FIRST;"
7173 # echo "\\qecho " "do_execsql_test joinB-$n \{"
7174 # echo "\\qecho X  " $q1
7175 # echo "\\qecho " "\} \{"
7176 # puts $q1
7177 # echo "\\qecho " "\}"
7179 # switch [expr {$k%4}] {
7180 #   0 {
7181 #     set q2 ""
7182 #     append q2 "SELECT b, c, d, e, f, g\n"
7183 #     append q2 "  FROM t1\n"
7184 #     append q2 "       NATURAL $j1 JOIN t2\n"
7185 #     append q2 "       NATURAL $j2 JOIN t3\n"
7186 #     append q2 "       NATURAL $j3 JOIN t4\n"
7187 #     append q2 "       NATURAL $j4 JOIN t5\n"
7188 #     append q2 " WHERE b BETWEEN 12 AND 17\n"
7189 #     append q2 " ORDER BY 1 NULLS FIRST;"
7190 #     incr n
7191 #     echo "\\qecho " "do_execsql_test joinB-$n \{"
7192 #     echo "\\qecho X  " $q2
7193 #     echo "\\qecho " "\} \{"
7194 #     puts $q2
7195 #     echo "\\qecho " "\}"
7196 #   }
7197 #   1 {
7198 #     set q2 ""
7199 #     append q2 "SELECT a, c, d, e, f, g\n"
7200 #     append q2 "  FROM t1\n"
7201 #     append q2 "       $j1 JOIN t2 USING(a,b)\n"
7202 #     append q2 "       $j2 JOIN t3 USING(a,b)\n"
7203 #     append q2 "       $j3 JOIN t4 USING(a,b)\n"
7204 #     append q2 "       $j4 JOIN t5 USING(a,b)\n"
7205 #     append q2 " WHERE a<>13\n"
7206 #     append q2 " ORDER BY 1 NULLS FIRST;"
7207 #     incr n
7208 #     echo "\\qecho " "do_execsql_test joinB-$n \{"
7209 #     echo "\\qecho X  " $q2
7210 #     echo "\\qecho " "\} \{"
7211 #     puts $q2
7212 #     echo "\\qecho " "\}"
7213 #   }
7214 #   2 {
7215 #     set q2 ""
7216 #     append q2 "SELECT a, c, d, e, f, g\n"
7217 #     append q2 "  FROM t1\n"
7218 #     append q2 "       $j1 JOIN (t2 $j2 JOIN t3 USING(a)) USING(a)\n"
7219 #     append q2 "       $j3 JOIN (t4 $j4 JOIN t5 USING(a)) USING(a)\n"
7220 #     append q2 " WHERE a<=18\n"
7221 #     append q2 " ORDER BY 1 NULLS FIRST;"
7222 #     incr n
7223 #     echo "\\qecho " "do_execsql_test joinB-$n \{"
7224 #     echo "\\qecho X  " $q2
7225 #     echo "\\qecho " "\} \{"
7226 #     puts $q2
7227 #     echo "\\qecho " "\}"
7228 #   }
7229 #   3 {
7230 #     set q2 ""
7231 #     append q2 "SELECT a, b, c, d, e, f, g\n"
7232 #     append q2 "  FROM t1\n"
7233 #     append q2 "       $j1 JOIN t2 USING(a,b)\n"
7234 #     append q2 "       $j2 JOIN t3 USING(a,b)\n"
7235 #     append q2 "       $j3 JOIN t4 USING(a,b)\n"
7236 #     append q2 "       $j4 JOIN t5 USING(a,b)\n"
7237 #     append q2 " WHERE d<>33 OR d IS NULL\n"
7238 #     append q2 " ORDER BY 1 NULLS FIRST;"
7239 #     incr n
7240 #     echo "\\qecho " "do_execsql_test joinB-$n \{"
7241 #     echo "\\qecho X  " $q2
7242 #     echo "\\qecho " "\} \{"
7243 #     puts $q2
7244 #     echo "\\qecho " "\}"
7245 #   }
7246 # }
7248 #       }
7249 #     }
7250 #   }
7251 # }
7252 ##############################################################################